Classes of different types of bounding volume. More...
Classes | |
class | hpp::fcl::AABB |
A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points. More... | |
class | hpp::fcl::KDOP< N > |
KDOP class describes the KDOP collision structures. More... | |
class | hpp::fcl::kIOS |
A class describing the kIOS collision structure, which is a set of spheres. More... | |
class | hpp::fcl::OBB |
Oriented bounding box class. More... | |
class | hpp::fcl::OBBRSS |
Class merging the OBB and RSS, can handle collision and distance simultaneously. More... | |
class | hpp::fcl::RSS |
A class for rectangle sphere-swept bounding volume. More... | |
Functions | |
hpp::fcl::AABB::AABB () | |
Creating an AABB with zero size (low bound +inf, upper bound -inf) More... | |
hpp::fcl::AABB::AABB (const Vec3f &v) | |
Creating an AABB at position v with zero size. More... | |
hpp::fcl::AABB::AABB (const Vec3f &a, const Vec3f &b) | |
Creating an AABB with two endpoints a and b. More... | |
hpp::fcl::AABB::AABB (const AABB &core, const Vec3f &delta) | |
Creating an AABB centered as core and is of half-dimension delta. More... | |
hpp::fcl::AABB::AABB (const Vec3f &a, const Vec3f &b, const Vec3f &c) | |
Creating an AABB contains three points. More... | |
bool | hpp::fcl::AABB::contain (const AABB &other) const |
Check whether the AABB contains another AABB. More... | |
bool | hpp::fcl::AABB::overlap (const AABB &other, AABB &overlap_part) const |
Check whether two AABB are overlap and return the overlap part. More... | |
AABB & | hpp::fcl::AABB::expand (const Vec3f &delta) |
expand the half size of the AABB by delta, and keep the center unchanged. More... | |
AABB & | hpp::fcl::AABB::expand (const AABB &core, FCL_REAL ratio) |
expand the aabb by increase the thickness of the plate by a ratio More... | |
static AABB | hpp::fcl::translate (const AABB &aabb, const Vec3f &t) |
translate the center of AABB by t More... | |
static AABB | hpp::fcl::rotate (const AABB &aabb, const Matrix3f &R) |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const AABB &b1, const AABB &b2) |
Check collision between two aabbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const AABB &b1, const AABB &b2, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) |
Check collision between two aabbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
hpp::fcl::KDOP< N >::KDOP () | |
Creating kDOP containing nothing. More... | |
hpp::fcl::KDOP< N >::KDOP (const Vec3f &v) | |
Creating kDOP containing only one point. More... | |
hpp::fcl::KDOP< N >::KDOP (const Vec3f &a, const Vec3f &b) | |
Creating kDOP containing two points. More... | |
bool | hpp::fcl::KDOP< N >::overlap (const KDOP< N > &other) const |
Check whether two KDOPs overlap. More... | |
bool | hpp::fcl::KDOP< N >::overlap (const KDOP< N > &other, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) const |
Check whether two KDOPs overlap. More... | |
FCL_REAL | hpp::fcl::KDOP< N >::distance (const KDOP< N > &other, Vec3f *P=NULL, Vec3f *Q=NULL) const |
The distance between two KDOP<N>. Not implemented. More... | |
KDOP< N > & | hpp::fcl::KDOP< N >::operator+= (const Vec3f &p) |
Merge the point and the KDOP. More... | |
KDOP< N > & | hpp::fcl::KDOP< N >::operator+= (const KDOP< N > &other) |
Merge two KDOPs. More... | |
KDOP< N > | hpp::fcl::KDOP< N >::operator+ (const KDOP< N > &other) const |
Create a KDOP by mergin two KDOPs. More... | |
FCL_REAL | hpp::fcl::KDOP< N >::size () const |
Size of the kDOP (used in BV_Splitter to order two kDOPs) More... | |
Vec3f | hpp::fcl::KDOP< N >::center () const |
The (AABB) center. More... | |
FCL_REAL | hpp::fcl::KDOP< N >::width () const |
The (AABB) width. More... | |
FCL_REAL | hpp::fcl::KDOP< N >::height () const |
The (AABB) height. More... | |
FCL_REAL | hpp::fcl::KDOP< N >::depth () const |
The (AABB) depth. More... | |
FCL_REAL | hpp::fcl::KDOP< N >::volume () const |
The (AABB) volume. More... | |
FCL_REAL | hpp::fcl::KDOP< N >::dist (short i) const |
FCL_REAL & | hpp::fcl::KDOP< N >::dist (short i) |
bool | hpp::fcl::KDOP< N >::inside (const Vec3f &p) const |
template<short N> | |
bool | hpp::fcl::overlap (const Matrix3f &, const Vec3f &, const KDOP< N > &, const KDOP< N > &) |
template<short N> | |
bool | hpp::fcl::overlap (const Matrix3f &, const Vec3f &, const KDOP< N > &, const KDOP< N > &, const CollisionRequest &, FCL_REAL &) |
template<short N> | |
KDOP< N > | hpp::fcl::translate (const KDOP< N > &bv, const Vec3f &t) |
translate the KDOP BV More... | |
bool | hpp::fcl::kIOS::contain (const Vec3f &p) const |
Check whether the kIOS contains a point. More... | |
bool | hpp::fcl::kIOS::overlap (const kIOS &other) const |
Check collision between two kIOS. More... | |
bool | hpp::fcl::kIOS::overlap (const kIOS &other, const CollisionRequest &, FCL_REAL &sqrDistLowerBound) const |
Check collision between two kIOS. More... | |
FCL_REAL | hpp::fcl::kIOS::distance (const kIOS &other, Vec3f *P=NULL, Vec3f *Q=NULL) const |
The distance between two kIOS. More... | |
kIOS & | hpp::fcl::kIOS::operator+= (const Vec3f &p) |
A simple way to merge the kIOS and a point. More... | |
kIOS & | hpp::fcl::kIOS::operator+= (const kIOS &other) |
Merge the kIOS and another kIOS. More... | |
kIOS | hpp::fcl::kIOS::operator+ (const kIOS &other) const |
Return the merged kIOS of current kIOS and the other one. More... | |
FCL_REAL | hpp::fcl::kIOS::size () const |
size of the kIOS (used in BV_Splitter to order two kIOSs) More... | |
const Vec3f & | hpp::fcl::kIOS::center () const |
Center of the kIOS. More... | |
FCL_REAL | hpp::fcl::kIOS::width () const |
Width of the kIOS. More... | |
FCL_REAL | hpp::fcl::kIOS::height () const |
Height of the kIOS. More... | |
FCL_REAL | hpp::fcl::kIOS::depth () const |
Depth of the kIOS. More... | |
FCL_REAL | hpp::fcl::kIOS::volume () const |
Volume of the kIOS. More... | |
kIOS | hpp::fcl::translate (const kIOS &bv, const Vec3f &t) |
Translate the kIOS BV. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const kIOS &b1, const kIOS &b2) |
Check collision between two kIOSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const kIOS &b1, const kIOS &b2, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) |
Check collision between two kIOSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
FCL_REAL | hpp::fcl::distance (const Matrix3f &R0, const Vec3f &T0, const kIOS &b1, const kIOS &b2, Vec3f *P=NULL, Vec3f *Q=NULL) |
Approximate distance between two kIOS bounding volumes. More... | |
bool | hpp::fcl::OBB::contain (const Vec3f &p) const |
Check whether the OBB contains a point. More... | |
bool | hpp::fcl::OBB::overlap (const OBB &other) const |
Check collision between two OBB. More... | |
bool | hpp::fcl::OBB::overlap (const OBB &other, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) const |
Check collision between two OBB. More... | |
FCL_REAL | hpp::fcl::OBB::distance (const OBB &other, Vec3f *P=NULL, Vec3f *Q=NULL) const |
Distance between two OBBs, not implemented. More... | |
OBB & | hpp::fcl::OBB::operator+= (const Vec3f &p) |
A simple way to merge the OBB and a point (the result is not compact). More... | |
OBB & | hpp::fcl::OBB::operator+= (const OBB &other) |
Merge the OBB and another OBB (the result is not compact). More... | |
OBB | hpp::fcl::OBB::operator+ (const OBB &other) const |
Return the merged OBB of current OBB and the other one (the result is not compact). More... | |
FCL_REAL | hpp::fcl::OBB::size () const |
Size of the OBB (used in BV_Splitter to order two OBBs) More... | |
const Vec3f & | hpp::fcl::OBB::center () const |
Center of the OBB. More... | |
FCL_REAL | hpp::fcl::OBB::width () const |
Width of the OBB. More... | |
FCL_REAL | hpp::fcl::OBB::height () const |
Height of the OBB. More... | |
FCL_REAL | hpp::fcl::OBB::depth () const |
Depth of the OBB. More... | |
FCL_REAL | hpp::fcl::OBB::volume () const |
Volume of the OBB. More... | |
OBB | hpp::fcl::translate (const OBB &bv, const Vec3f &t) |
Translate the OBB bv. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const OBB &b1, const OBB &b2) |
Check collision between two obbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const OBB &b1, const OBB &b2, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) |
Check collision between two obbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
bool | hpp::fcl::obbDisjoint (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b) |
Check collision between two boxes. More... | |
bool | hpp::fcl::OBBRSS::contain (const Vec3f &p) const |
Check whether the OBBRSS contains a point. More... | |
bool | hpp::fcl::OBBRSS::overlap (const OBBRSS &other) const |
Check collision between two OBBRSS. More... | |
bool | hpp::fcl::OBBRSS::overlap (const OBBRSS &other, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) const |
Check collision between two OBBRSS. More... | |
FCL_REAL | hpp::fcl::OBBRSS::distance (const OBBRSS &other, Vec3f *P=NULL, Vec3f *Q=NULL) const |
Distance between two OBBRSS; P and Q , is not NULL, returns the nearest points. More... | |
OBBRSS & | hpp::fcl::OBBRSS::operator+= (const Vec3f &p) |
Merge the OBBRSS and a point. More... | |
OBBRSS & | hpp::fcl::OBBRSS::operator+= (const OBBRSS &other) |
Merge two OBBRSS. More... | |
OBBRSS | hpp::fcl::OBBRSS::operator+ (const OBBRSS &other) const |
Merge two OBBRSS. More... | |
FCL_REAL | hpp::fcl::OBBRSS::size () const |
Size of the OBBRSS (used in BV_Splitter to order two OBBRSS) More... | |
const Vec3f & | hpp::fcl::OBBRSS::center () const |
Center of the OBBRSS. More... | |
FCL_REAL | hpp::fcl::OBBRSS::width () const |
Width of the OBRSS. More... | |
FCL_REAL | hpp::fcl::OBBRSS::height () const |
Height of the OBBRSS. More... | |
FCL_REAL | hpp::fcl::OBBRSS::depth () const |
Depth of the OBBRSS. More... | |
FCL_REAL | hpp::fcl::OBBRSS::volume () const |
Volume of the OBBRSS. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const OBBRSS &b1, const OBBRSS &b2) |
Check collision between two OBBRSS, b1 is in configuration (R0, T0) and b2 is in indentity. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const OBBRSS &b1, const OBBRSS &b2, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) |
Check collision between two OBBRSS. More... | |
FCL_REAL | hpp::fcl::distance (const Matrix3f &R0, const Vec3f &T0, const OBBRSS &b1, const OBBRSS &b2, Vec3f *P=NULL, Vec3f *Q=NULL) |
Computate distance between two OBBRSS, b1 is in configuation (R0, T0) and b2 is in indentity; P and Q, is not NULL, returns the nearest points. More... | |
bool | hpp::fcl::RSS::contain (const Vec3f &p) const |
Check whether the RSS contains a point. More... | |
bool | hpp::fcl::RSS::overlap (const RSS &other) const |
Check collision between two RSS. More... | |
bool | hpp::fcl::RSS::overlap (const RSS &other, const CollisionRequest &, FCL_REAL &sqrDistLowerBound) const |
Not implemented. More... | |
FCL_REAL | hpp::fcl::RSS::distance (const RSS &other, Vec3f *P=NULL, Vec3f *Q=NULL) const |
the distance between two RSS; P and Q, if not NULL, return the nearest points More... | |
RSS & | hpp::fcl::RSS::operator+= (const Vec3f &p) |
A simple way to merge the RSS and a point, not compact. More... | |
RSS & | hpp::fcl::RSS::operator+= (const RSS &other) |
Merge the RSS and another RSS. More... | |
RSS | hpp::fcl::RSS::operator+ (const RSS &other) const |
Return the merged RSS of current RSS and the other one. More... | |
FCL_REAL | hpp::fcl::RSS::size () const |
Size of the RSS (used in BV_Splitter to order two RSSs) More... | |
const Vec3f & | hpp::fcl::RSS::center () const |
The RSS center. More... | |
FCL_REAL | hpp::fcl::RSS::width () const |
Width of the RSS. More... | |
FCL_REAL | hpp::fcl::RSS::height () const |
Height of the RSS. More... | |
FCL_REAL | hpp::fcl::RSS::depth () const |
Depth of the RSS. More... | |
FCL_REAL | hpp::fcl::RSS::volume () const |
Volume of the RSS. More... | |
bool | hpp::fcl::RSS::overlap (const RSS &other, RSS &) const |
Check collision between two RSS and return the overlap part. More... | |
FCL_REAL | hpp::fcl::distance (const Matrix3f &R0, const Vec3f &T0, const RSS &b1, const RSS &b2, Vec3f *P=NULL, Vec3f *Q=NULL) |
distance between two RSS bounding volumes P and Q (optional return values) are the closest points in the rectangles, not the RSS. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const RSS &b1, const RSS &b2) |
Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
bool | hpp::fcl::overlap (const Matrix3f &R0, const Vec3f &T0, const RSS &b1, const RSS &b2, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) |
Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
Bounding volume API | |
bool | hpp::fcl::AABB::contain (const Vec3f &p) const |
Check whether the AABB contains a point. More... | |
bool | hpp::fcl::AABB::overlap (const AABB &other) const |
Check whether two AABB are overlap. More... | |
bool | hpp::fcl::AABB::overlap (const AABB &other, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) const |
Check whether two AABB are overlap. More... | |
FCL_REAL | hpp::fcl::AABB::distance (const AABB &other) const |
Distance between two AABBs. More... | |
FCL_REAL | hpp::fcl::AABB::distance (const AABB &other, Vec3f *P, Vec3f *Q) const |
Distance between two AABBs; P and Q, should not be NULL, return the nearest points. More... | |
AABB & | hpp::fcl::AABB::operator+= (const Vec3f &p) |
Merge the AABB and a point. More... | |
AABB & | hpp::fcl::AABB::operator+= (const AABB &other) |
Merge the AABB and another AABB. More... | |
AABB | hpp::fcl::AABB::operator+ (const AABB &other) const |
Return the merged AABB of current AABB and the other one. More... | |
FCL_REAL | hpp::fcl::AABB::size () const |
Size of the AABB (used in BV_Splitter to order two AABBs) More... | |
Vec3f | hpp::fcl::AABB::center () const |
Center of the AABB. More... | |
FCL_REAL | hpp::fcl::AABB::width () const |
Width of the AABB. More... | |
FCL_REAL | hpp::fcl::AABB::height () const |
Height of the AABB. More... | |
FCL_REAL | hpp::fcl::AABB::depth () const |
Depth of the AABB. More... | |
FCL_REAL | hpp::fcl::AABB::volume () const |
Volume of the AABB. More... | |
Classes of different types of bounding volume.
hpp::fcl::AABB::AABB | ( | ) |
Creating an AABB with zero size (low bound +inf, upper bound -inf)
Creating an AABB with two endpoints a and b.
Creating an AABB centered as core and is of half-dimension delta.
Creating an AABB contains three points.
|
inline |
|
inline |
The RSS center.
References hpp::fcl::RSS::Tr.
|
inline |
Center of the OBBRSS.
References hpp::fcl::OBB::center().
|
inline |
Center of the kIOS.
References hpp::fcl::kIOS::depth(), hpp::fcl::kIOS::distance(), hpp::fcl::kIOS::height(), hpp::fcl::kIOS::overlap(), hpp::fcl::translate(), hpp::fcl::kIOS::volume(), and hpp::fcl::kIOS::width().
|
inline |
The (AABB) center.
|
inline |
Center of the AABB.
Referenced by hpp::fcl::OcTree::computeLocalAABB().
|
inline |
Check whether the OBBRSS contains a point.
References hpp::fcl::OBB::contain().
bool hpp::fcl::OBB::contain | ( | const Vec3f & | p | ) | const |
Check whether the OBB contains a point.
Referenced by hpp::fcl::OBBRSS::contain().
|
inline |
Check whether the AABB contains a point.
|
inline |
Check whether the AABB contains another AABB.
References hpp::fcl::AABB::max_, and hpp::fcl::AABB::min_.
|
inline |
Depth of the OBB.
Referenced by hpp::fcl::OBBRSS::depth(), and hpp::fcl::OBB::volume().
|
inline |
Depth of the RSS.
References hpp::fcl::RSS::radius.
|
inline |
Depth of the OBBRSS.
References hpp::fcl::OBB::depth().
FCL_REAL hpp::fcl::kIOS::depth | ( | ) | const |
Depth of the kIOS.
Referenced by hpp::fcl::kIOS::center().
|
inline |
The (AABB) depth.
Referenced by hpp::fcl::KDOP< N >::size(), and hpp::fcl::KDOP< N >::volume().
|
inline |
Depth of the AABB.
Referenced by hpp::fcl::AABB::volume().
|
inline |
|
inline |
References hpp::fcl::KDOP< N >::inside().
Distance between two OBBs, not implemented.
the distance between two RSS; P and Q, if not NULL, return the nearest points
Referenced by hpp::fcl::OBBRSS::distance(), and hpp::fcl::RSS::overlap().
|
inline |
Distance between two OBBRSS; P and Q , is not NULL, returns the nearest points.
References hpp::fcl::RSS::distance(), and hpp::fcl::OBBRSS::rss.
Referenced by hpp::fcl::distance().
The distance between two kIOS.
Referenced by hpp::fcl::kIOS::center().
FCL_REAL hpp::fcl::KDOP< N >::distance | ( | const KDOP< N > & | other, |
Vec3f * | P = NULL , |
||
Vec3f * | Q = NULL |
||
) | const |
The distance between two KDOP<N>. Not implemented.
Distance between two AABBs.
Referenced by hpp::fcl::AABB::overlap().
Distance between two AABBs; P and Q, should not be NULL, return the nearest points.
FCL_REAL hpp::fcl::distance | ( | const Matrix3f & | R0, |
const Vec3f & | T0, | ||
const RSS & | b1, | ||
const RSS & | b2, | ||
Vec3f * | P = NULL , |
||
Vec3f * | Q = NULL |
||
) |
distance between two RSS bounding volumes P and Q (optional return values) are the closest points in the rectangles, not the RSS.
But the direction P - Q is the correct direction for cloest points Notice that P and Q are both in the local frame of the first RSS (not global frame and not even the local frame of object 1)
FCL_REAL hpp::fcl::distance | ( | const Matrix3f & | R0, |
const Vec3f & | T0, | ||
const kIOS & | b1, | ||
const kIOS & | b2, | ||
Vec3f * | P = NULL , |
||
Vec3f * | Q = NULL |
||
) |
Approximate distance between two kIOS bounding volumes.
Referenced by hpp::fcl::details::boxPlaneIntersect(), MeshShapeDistanceTraversalNodeRSS< S >::BVDistanceLowerBound(), MeshShapeDistanceTraversalNodekIOS< S >::BVDistanceLowerBound(), MeshShapeDistanceTraversalNodeOBBRSS< S >::BVDistanceLowerBound(), ShapeMeshDistanceTraversalNodeRSS< S >::BVDistanceLowerBound(), ShapeMeshDistanceTraversalNodekIOS< S >::BVDistanceLowerBound(), ShapeMeshDistanceTraversalNodeOBBRSS< S >::BVDistanceLowerBound(), hpp::fcl::details::capsuleHalfspaceIntersect(), hpp::fcl::details::coneHalfspaceIntersect(), hpp::fcl::details::cylinderHalfspaceIntersect(), ShapeMeshDistanceTraversalNode< S, RSS >::leafComputeDistance(), and hpp::fcl::DistanceResult::update().
|
inline |
Computate distance between two OBBRSS, b1 is in configuation (R0, T0) and b2 is in indentity; P and Q, is not NULL, returns the nearest points.
References hpp::fcl::OBBRSS::distance(), and hpp::fcl::OBBRSS::rss.
expand the half size of the AABB by delta, and keep the center unchanged.
expand the aabb by increase the thickness of the plate by a ratio
References hpp::fcl::AABB::max_, and hpp::fcl::AABB::min_.
|
inline |
Height of the OBB.
Referenced by hpp::fcl::OBBRSS::height(), and hpp::fcl::OBB::volume().
|
inline |
Height of the RSS.
References hpp::fcl::RSS::radius.
|
inline |
Height of the OBBRSS.
References hpp::fcl::OBB::height().
FCL_REAL hpp::fcl::kIOS::height | ( | ) | const |
Height of the kIOS.
Referenced by hpp::fcl::kIOS::center().
|
inline |
The (AABB) height.
Referenced by hpp::fcl::KDOP< N >::size(), and hpp::fcl::KDOP< N >::volume().
|
inline |
Height of the AABB.
Referenced by hpp::fcl::AABB::volume().
bool hpp::fcl::KDOP< N >::inside | ( | const Vec3f & | p | ) | const |
Referenced by hpp::fcl::KDOP< N >::dist().
hpp::fcl::KDOP< N >::KDOP | ( | ) |
Creating kDOP containing nothing.
hpp::fcl::KDOP< N >::KDOP | ( | const Vec3f & | v | ) |
Creating kDOP containing only one point.
hpp::fcl::KDOP< N >::KDOP | ( | const Vec3f & | a, |
const Vec3f & | b | ||
) |
Creating kDOP containing two points.
bool hpp::fcl::obbDisjoint | ( | const Matrix3f & | B, |
const Vec3f & | T, | ||
const Vec3f & | a, | ||
const Vec3f & | b | ||
) |
Check collision between two boxes.
B,T | orientation and position of first box, |
a | half dimensions of first box, |
b | half dimensions of second box. The second box is in identity configuration. |
Referenced by hpp::fcl::OBB::volume().
Return the merged OBB of current OBB and the other one (the result is not compact).
Referenced by hpp::fcl::OBB::operator+=().
Return the merged RSS of current RSS and the other one.
Referenced by hpp::fcl::RSS::operator+=().
Merge two OBBRSS.
References hpp::fcl::OBBRSS::obb, and hpp::fcl::OBBRSS::rss.
Return the merged kIOS of current kIOS and the other one.
Referenced by hpp::fcl::kIOS::operator+=().
KDOP<N> hpp::fcl::KDOP< N >::operator+ | ( | const KDOP< N > & | other | ) | const |
Create a KDOP by mergin two KDOPs.
A simple way to merge the OBB and a point (the result is not compact).
Merge the OBB and another OBB (the result is not compact).
References hpp::fcl::OBB::operator+().
A simple way to merge the RSS and a point, not compact.
Referenced by hpp::fcl::RSS::overlap().
Merge the RSS and another RSS.
References hpp::fcl::RSS::operator+().
Merge the kIOS and another kIOS.
References hpp::fcl::kIOS::operator+(), and hpp::fcl::kIOS::size().
KDOP<N>& hpp::fcl::KDOP< N >::operator+= | ( | const Vec3f & | p | ) |
Merge the point and the KDOP.
KDOP<N>& hpp::fcl::KDOP< N >::operator+= | ( | const KDOP< N > & | other | ) |
Merge two KDOPs.
Merge the AABB and another AABB.
References hpp::fcl::AABB::max_, and hpp::fcl::AABB::min_.
bool hpp::fcl::OBB::overlap | ( | const OBB & | other | ) | const |
Check collision between two OBB.
Referenced by hpp::fcl::OBBRSS::overlap(), and hpp::fcl::OBB::volume().
|
inline |
Check collision between two OBBRSS.
References hpp::fcl::OBBRSS::obb, and hpp::fcl::OBB::overlap().
Referenced by hpp::fcl::overlap().
bool hpp::fcl::RSS::overlap | ( | const RSS & | other | ) | const |
Check collision between two RSS.
Referenced by hpp::fcl::RSS::overlap().
bool hpp::fcl::OBB::overlap | ( | const OBB & | other, |
const CollisionRequest & | request, | ||
FCL_REAL & | sqrDistLowerBound | ||
) | const |
Check collision between two OBB.
sqrDistLowerBound | squared lower bound on distance between boxes if they do not overlap. |
|
inline |
Not implemented.
References hpp::fcl::RSS::distance(), hpp::fcl::RSS::operator+=(), and hpp::fcl::RSS::overlap().
|
inline |
Check collision between two OBBRSS.
sqrDistLowerBound | squared lower bound on distance between objects if they do not overlap. |
References hpp::fcl::OBBRSS::obb, and hpp::fcl::OBB::overlap().
bool hpp::fcl::kIOS::overlap | ( | const kIOS & | other | ) | const |
Check collision between two kIOS.
Referenced by hpp::fcl::kIOS::center().
|
inline |
Check whether two AABB are overlap.
References hpp::fcl::AABB::distance(), hpp::fcl::AABB::max_, and hpp::fcl::AABB::min_.
Referenced by hpp::fcl::AABB::overlap(), and hpp::fcl::rotate().
bool hpp::fcl::kIOS::overlap | ( | const kIOS & | other, |
const CollisionRequest & | , | ||
FCL_REAL & | sqrDistLowerBound | ||
) | const |
Check collision between two kIOS.
bool hpp::fcl::KDOP< N >::overlap | ( | const KDOP< N > & | other | ) | const |
Check whether two KDOPs overlap.
bool hpp::fcl::KDOP< N >::overlap | ( | const KDOP< N > & | other, |
const CollisionRequest & | request, | ||
FCL_REAL & | sqrDistLowerBound | ||
) | const |
Check whether two KDOPs overlap.
sqrDistLowerBound | squared lower bound on distance between boxes if they do not overlap. |
bool hpp::fcl::AABB::overlap | ( | const AABB & | other, |
const CollisionRequest & | request, | ||
FCL_REAL & | sqrDistLowerBound | ||
) | const |
Check whether two AABB are overlap.
Check collision between two obbs, b1 is in configuration (R0, T0) and b2 is in identity.
bool hpp::fcl::overlap | ( | const Matrix3f & | R0, |
const Vec3f & | T0, | ||
const OBB & | b1, | ||
const OBB & | b2, | ||
const CollisionRequest & | request, | ||
FCL_REAL & | sqrDistLowerBound | ||
) |
Check collision between two obbs, b1 is in configuration (R0, T0) and b2 is in identity.
Check collision between two RSS and return the overlap part.
For RSS, we return nothing, as the overlap part of two RSSs usually is not a RSS.
References hpp::fcl::RSS::distance(), and hpp::fcl::RSS::overlap().
Check collision between two kIOSs, b1 is in configuration (R0, T0) and b2 is in identity.
|
inline |
Check collision between two OBBRSS, b1 is in configuration (R0, T0) and b2 is in indentity.
References hpp::fcl::OBBRSS::obb, and hpp::fcl::OBBRSS::overlap().
Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity.
bool hpp::fcl::overlap | ( | const Matrix3f & | R0, |
const Vec3f & | T0, | ||
const RSS & | b1, | ||
const RSS & | b2, | ||
const CollisionRequest & | request, | ||
FCL_REAL & | sqrDistLowerBound | ||
) |
Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity.
bool hpp::fcl::overlap | ( | const Matrix3f & | R0, |
const Vec3f & | T0, | ||
const kIOS & | b1, | ||
const kIOS & | b2, | ||
const CollisionRequest & | request, | ||
FCL_REAL & | sqrDistLowerBound | ||
) |
Check collision between two kIOSs, b1 is in configuration (R0, T0) and b2 is in identity.
|
inline |
Check collision between two OBBRSS.
R0,T0 | configuration of b1 |
b1 | first OBBRSS in configuration (R0, T0) |
b2 | second OBBRSS in identity position |
sqrDistLowerBound | squared lower bound on the distance if OBBRSS do not overlap. |
References hpp::fcl::OBBRSS::obb, and hpp::fcl::OBBRSS::overlap().
bool hpp::fcl::overlap | ( | const Matrix3f & | , |
const Vec3f & | , | ||
const KDOP< N > & | , | ||
const KDOP< N > & | |||
) |
bool hpp::fcl::overlap | ( | const Matrix3f & | , |
const Vec3f & | , | ||
const KDOP< N > & | , | ||
const KDOP< N > & | , | ||
const CollisionRequest & | , | ||
FCL_REAL & | |||
) |
References hpp::fcl::translate().
Check whether two AABB are overlap and return the overlap part.
References hpp::fcl::AABB::max_, hpp::fcl::AABB::min_, and hpp::fcl::AABB::overlap().
Check collision between two aabbs, b1 is in configuration (R0, T0) and b2 is in identity.
bool hpp::fcl::overlap | ( | const Matrix3f & | R0, |
const Vec3f & | T0, | ||
const AABB & | b1, | ||
const AABB & | b2, | ||
const CollisionRequest & | request, | ||
FCL_REAL & | sqrDistLowerBound | ||
) |
Check collision between two aabbs, b1 is in configuration (R0, T0) and b2 is in identity.
References hpp::fcl::AABB::max_, hpp::fcl::AABB::min_, and hpp::fcl::AABB::overlap().
|
inline |
Size of the OBB (used in BV_Splitter to order two OBBs)
Referenced by hpp::fcl::OBBRSS::size().
|
inline |
Size of the RSS (used in BV_Splitter to order two RSSs)
|
inline |
Size of the OBBRSS (used in BV_Splitter to order two OBBRSS)
References hpp::fcl::OBB::size().
FCL_REAL hpp::fcl::kIOS::size | ( | ) | const |
size of the kIOS (used in BV_Splitter to order two kIOSs)
Referenced by hpp::fcl::kIOS::operator+=().
|
inline |
Size of the kDOP (used in BV_Splitter to order two kDOPs)
References hpp::fcl::KDOP< N >::depth(), hpp::fcl::KDOP< N >::height(), and hpp::fcl::KDOP< N >::width().
|
inline |
Size of the AABB (used in BV_Splitter to order two AABBs)
translate the KDOP BV
translate the center of AABB by t
References hpp::fcl::AABB::max_, and hpp::fcl::AABB::min_.
Referenced by hpp::fcl::kIOS::center(), hpp::fcl::CollisionObject::computeAABB(), hpp::fcl::BVHModel< BV >::makeParentRelative(), hpp::fcl::overlap(), and hpp::fcl::OBB::volume().
|
inline |
Volume of the OBB.
References hpp::fcl::OBB::depth(), hpp::fcl::OBB::height(), hpp::fcl::obbDisjoint(), hpp::fcl::OBB::overlap(), hpp::fcl::translate(), and hpp::fcl::OBB::width().
Referenced by hpp::fcl::OBBRSS::volume().
FCL_REAL hpp::fcl::kIOS::volume | ( | ) | const |
Volume of the kIOS.
Referenced by hpp::fcl::kIOS::center().
|
inline |
Volume of the OBBRSS.
References hpp::fcl::OBB::volume().
|
inline |
The (AABB) volume.
References hpp::fcl::KDOP< N >::depth(), hpp::fcl::KDOP< N >::height(), and hpp::fcl::KDOP< N >::width().
|
inline |
Volume of the AABB.
References hpp::fcl::AABB::depth(), hpp::fcl::AABB::height(), and hpp::fcl::AABB::width().
|
inline |
Width of the OBB.
Referenced by hpp::fcl::OBB::volume(), and hpp::fcl::OBBRSS::width().
|
inline |
Width of the RSS.
References hpp::fcl::RSS::radius.
|
inline |
Width of the OBRSS.
References hpp::fcl::OBB::width().
FCL_REAL hpp::fcl::kIOS::width | ( | ) | const |
Width of the kIOS.
Referenced by hpp::fcl::kIOS::center().
|
inline |
The (AABB) width.
Referenced by hpp::fcl::KDOP< N >::size(), and hpp::fcl::KDOP< N >::volume().
|
inline |
Width of the AABB.
Referenced by hpp::fcl::AABB::volume().
Matrix3f hpp::fcl::OBB::axes |
Orientation of OBB.
axis[i] is the ith column of the orientation matrix for the box; it is also the i-th principle direction of the box. We assume that axis[0] corresponds to the axis with the longest box edge, axis[1] corresponds to the shorter one and axis[2] corresponds to the shortest one.
Matrix3f hpp::fcl::RSS::axes |
FCL_REAL hpp::fcl::RSS::length[2] |
Side lengths of rectangle.
Vec3f hpp::fcl::AABB::max_ |
The max point in the AABB.
Referenced by hpp::fcl::computeChildBV(), hpp::fcl::AABB::contain(), hpp::fcl::AABB::expand(), hpp::fcl::AABB::operator+=(), hpp::fcl::AABB::overlap(), hpp::fcl::rotate(), and hpp::fcl::translate().
Vec3f hpp::fcl::AABB::min_ |
The min point in the AABB.
Referenced by hpp::fcl::computeChildBV(), hpp::fcl::OcTree::computeLocalAABB(), hpp::fcl::AABB::contain(), hpp::fcl::AABB::expand(), hpp::fcl::AABB::operator+=(), hpp::fcl::AABB::overlap(), hpp::fcl::rotate(), and hpp::fcl::translate().
unsigned int hpp::fcl::kIOS::num_spheres |
The number of spheres, no larger than 5.
Vec3f hpp::fcl::kIOS::kIOS_Sphere::o |
OBB hpp::fcl::OBBRSS::obb |
OBB member, for rotation.
Referenced by hpp::fcl::OBBRSS::operator+(), hpp::fcl::OBBRSS::overlap(), and hpp::fcl::overlap().
FCL_REAL hpp::fcl::kIOS::kIOS_Sphere::r |
FCL_REAL hpp::fcl::RSS::radius |
Radius of sphere summed with rectangle to form RSS.
Referenced by hpp::fcl::RSS::depth(), hpp::fcl::RSS::height(), and hpp::fcl::RSS::width().
RSS hpp::fcl::OBBRSS::rss |
RSS member, for distance.
Referenced by hpp::fcl::OBBRSS::distance(), hpp::fcl::distance(), and hpp::fcl::OBBRSS::operator+().
kIOS_Sphere hpp::fcl::kIOS::spheres[5] |
The (at most) five spheres for intersection.
Vec3f hpp::fcl::OBB::To |
Center of OBB.
Referenced by hpp::fcl::OBB::center().
Vec3f hpp::fcl::RSS::Tr |
Origin of the rectangle in RSS.
Referenced by hpp::fcl::RSS::center().