38 #ifndef FCL_SHAPE_PLANE_INL_H 39 #define FCL_SHAPE_PLANE_INL_H 41 #include "fcl/geometry/shape/plane.h" 52 Plane<double> transform(
const Plane<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>
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());
void unitNormalTest()
Turn non-unit normal into unit.
Definition: plane-inl.h:135
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
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
NODE_TYPE getNodeType() const override
Get node type: a plane.
Definition: plane-inl.h:128
AABB< S_ > aabb_local
AABB in local coordinate, used for tight AABB when only translation transform.
Definition: collision_geometry.h:97
Infinite plane.
Definition: plane.h:48
S d
Plane offset.
Definition: plane.h:76
void computeLocalAABB() override
Compute AABB.
Definition: plane-inl.h:93
Vector3< S > n
Plane normal.
Definition: plane.h:73