Oriented bounding box class. More...
#include <hpp/fcl/BV/OBB.h>
Public Member Functions | |
bool | overlap (const OBB &other) const |
Check collision between two OBB. More... | |
bool | overlap (const OBB &other, FCL_REAL &sqrDistLowerBound) const |
Check collision between two OBB. More... | |
bool | overlap (const OBB &other, OBB &overlap_part) const |
Check collision between two OBB and return the overlap part. For OBB, the overlap_part return value is NOT used as the overlap part of two obbs usually is not an obb. More... | |
bool | contain (const Vec3f &p) const |
Check whether the OBB contains a point. More... | |
OBB & | operator+= (const Vec3f &p) |
A simple way to merge the OBB and a point (the result is not compact). More... | |
OBB & | operator+= (const OBB &other) |
Merge the OBB and another OBB (the result is not compact). More... | |
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 | width () const |
Width of the OBB. More... | |
FCL_REAL | height () const |
Height of the OBB. More... | |
FCL_REAL | depth () const |
Depth of the OBB. More... | |
FCL_REAL | volume () const |
Volume of the OBB. More... | |
FCL_REAL | size () const |
Size of the OBB (used in BV_Splitter to order two OBBs) More... | |
const Vec3f & | center () const |
Center of the OBB. More... | |
FCL_REAL | distance (const OBB &other, Vec3f *P=NULL, Vec3f *Q=NULL) const |
Distance between two OBBs, not implemented. More... | |
Public Attributes | |
Vec3f | axis [3] |
Orientation of OBB. More... | |
Vec3f | To |
Center of OBB. More... | |
Vec3f | extent |
Half dimensions of OBB. More... | |
Oriented bounding box class.
|
inline |
bool fcl::OBB::contain | ( | const Vec3f & | p | ) | const |
Check whether the OBB contains a point.
Referenced by fcl::OBBRSS::contain().
|
inline |
Depth of the OBB.
Referenced by fcl::OBBRSS::depth(), and volume().
Distance between two OBBs, not implemented.
|
inline |
Height of the OBB.
Referenced by fcl::OBBRSS::height(), and volume().
A simple way to merge the OBB and a point (the result is not compact).
bool fcl::OBB::overlap | ( | const OBB & | other | ) | const |
Check collision between two OBB.
Referenced by fcl::OBBRSS::overlap(), and overlap().
Check collision between two OBB.
sqrDistLowerBound | squared lower bound on distance between boxes if they do not overlap. |
|
inline |
Size of the OBB (used in BV_Splitter to order two OBBs)
References fcl::Vec3fX< T >::sqrLength().
Referenced by fcl::OBBRSS::size().
|
inline |
|
inline |
Width of the OBB.
Referenced by volume(), and fcl::OBBRSS::width().
Vec3f fcl::OBB::axis[3] |
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.