25 template <
typename NT>
32 std::invalid_argument);
47 return extractBVHtpl<AABB>(model, pose, aabb);
49 return extractBVHtpl<OBB>(model, pose, aabb);
51 return extractBVHtpl<RSS>(model, pose, aabb);
53 return extractBVHtpl<kIOS>(model, pose, aabb);
55 return extractBVHtpl<OBBRSS>(model, pose, aabb);
57 return extractBVHtpl<KDOP<16> >(model, pose, aabb);
59 return extractBVHtpl<KDOP<18> >(model, pose, aabb);
61 return extractBVHtpl<KDOP<24> >(model, pose, aabb);
63 throw std::runtime_error(
"Unknown type of bounding volume");
75 throw std::runtime_error(
76 "Extraction is not implemented for this type of object");
HPP_FCL_DLLAPI CollisionGeometry * extract(const CollisionGeometry *model, const Transform3f &pose, const AABB &aabb)
bool overlap(const AABB &other) const
Check whether two AABB are overlap.
CollisionGeometry * extractBVH(const CollisionGeometry *model, const Transform3f &pose, const AABB &aabb)
static AABB rotate(const AABB &aabb, const Matrix3f &R)
virtual NODE_TYPE getNodeType() const
get the node type
AABB aabb_local
AABB in local coordinate, used for tight AABB when only translation transform.
virtual OBJECT_TYPE getObjectType() const
get the type of the object
BVHModel< BV > * BVHExtract(const BVHModel< BV > &model, const Transform3f &pose, const AABB &_aabb)
Extract the part of the BVHModel that is inside an AABB. A triangle in collision with the AABB is con...
A class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as ...
A class describing the AABB collision structure, which is a box in 3D space determined by two diagona...
FCL_REAL aabb_radius
AABB radius.
static AABB translate(const AABB &aabb, const Vec3f &t)
translate the center of AABB by t
CollisionGeometry * extractBVHtpl(const CollisionGeometry *model, const Transform3f &pose, const AABB &aabb)
The geometry for the object for collision or distance computation.
#define HPP_FCL_THROW_PRETTY(message, exception)