38 #ifndef FCL_SHAPE_HALFSPACE_INL_H 39 #define FCL_SHAPE_HALFSPACE_INL_H 41 #include "fcl/geometry/shape/halfspace.h" 48 class Halfspace<double>;
52 Halfspace<double> transform(
const Halfspace<double>& a,
const Transform3<double>& tf);
88 return std::abs(
n.dot(p) -
d);
95 this->
aabb_local.min_.setConstant(-std::numeric_limits<S>::max());
96 this->
aabb_local.max_.setConstant(std::numeric_limits<S>::max());
97 if(
n[1] == (S)0.0 &&
n[2] == (S)0.0)
105 else if(
n[0] == (S)0.0 &&
n[2] == (S)0.0)
113 else if(
n[0] == (S)0.0 &&
n[1] == (S)0.0)
127 template <
typename S>
130 return GEOM_HALFSPACE;
134 template <
typename S>
152 template <
typename S>
161 Vector3<S>
n = tf.linear() * a.
n;
162 S
d = a.
d + n.dot(tf.translation());
Vector3< S_ > aabb_center
AABB center in local coordinate.
Definition: collision_geometry.h:91
NODE_TYPE
traversal node type: bounding volume (AABB, OBB, RSS, kIOS, OBBRSS, KDOP16, KDOP18, kDOP24), basic shape (box, sphere, ellipsoid, capsule, cone, cylinder, convex, plane, halfspace, triangle), and octree
Definition: collision_geometry.h:54
Half Space: this is equivalent to the Planed in ODE. The separation plane is defined as n * x = d; Po...
Definition: halfspace.h:55
Main namespace.
Definition: broadphase_bruteforce-inl.h:45
Base class for all basic geometric shapes.
Definition: shape_base.h:48
S_ aabb_radius
AABB radius.
Definition: collision_geometry.h:94
S d
Planed offset.
Definition: halfspace.h:83
NODE_TYPE getNodeType() const override
Get node type: a half space.
Definition: halfspace-inl.h:128
void unitNormalTest()
Turn non-unit normal into unit.
Definition: halfspace-inl.h:135
AABB< S_ > aabb_local
AABB in local coordinate, used for tight AABB when only translation transform.
Definition: collision_geometry.h:97
void computeLocalAABB() override
Compute AABB.
Definition: halfspace-inl.h:93
Vector3< S > n
Planed normal.
Definition: halfspace.h:80