A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points. More...
#include <hpp/fcl/BV/AABB.h>
Public Member Functions | |
AABB () | |
Creating an AABB with zero size (low bound +inf, upper bound -inf) | |
AABB (const Vec3f &v) | |
Creating an AABB at position v with zero size. | |
AABB (const Vec3f &a, const Vec3f &b) | |
Creating an AABB with two endpoints a and b. | |
AABB (const AABB &core, const Vec3f &delta) | |
Creating an AABB centered as core and is of half-dimension delta. | |
AABB (const Vec3f &a, const Vec3f &b, const Vec3f &c) | |
Creating an AABB contains three points. | |
bool | overlap (const AABB &other) const |
Check whether two AABB are overlap. | |
bool | overlap (const AABB &, FCL_REAL &) const |
Not implemented. | |
bool | contain (const AABB &other) const |
Check whether the AABB contains another AABB. | |
bool | axisOverlap (const AABB &other, int axis_id) const |
Check whether two AABB are overlapped along specific axis. | |
bool | overlap (const AABB &other, AABB &overlap_part) const |
Check whether two AABB are overlap and return the overlap part. | |
bool | contain (const Vec3f &p) const |
Check whether the AABB contains a point. | |
AABB & | operator+= (const Vec3f &p) |
Merge the AABB and a point. | |
AABB & | operator+= (const AABB &other) |
Merge the AABB and another AABB. | |
AABB | operator+ (const AABB &other) const |
Return the merged AABB of current AABB and the other one. | |
FCL_REAL | width () const |
Width of the AABB. | |
FCL_REAL | height () const |
Height of the AABB. | |
FCL_REAL | depth () const |
Depth of the AABB. | |
FCL_REAL | volume () const |
Volume of the AABB. | |
FCL_REAL | size () const |
Size of the AABB (used in BV_Splitter to order two AABBs) | |
FCL_REAL | radius () const |
Radius of the AABB. | |
Vec3f | center () const |
Center of the AABB. | |
FCL_REAL | distance (const AABB &other, Vec3f *P, Vec3f *Q) const |
Distance between two AABBs; P and Q, should not be NULL, return the nearest points. | |
FCL_REAL | distance (const AABB &other) const |
Distance between two AABBs. | |
bool | equal (const AABB &other) const |
whether two AABB are equal | |
AABB & | expand (const Vec3f &delta) |
expand the half size of the AABB by delta, and keep the center unchanged. | |
AABB & | expand (const AABB &core, FCL_REAL ratio) |
expand the aabb by increase the thickness of the plate by a ratio | |
Public Attributes | |
Vec3f | min_ |
The min point in the AABB. | |
Vec3f | max_ |
The max point in the AABB. |
A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points.
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.
bool fcl::AABB::axisOverlap | ( | const AABB & | other, |
int | axis_id | ||
) | const [inline] |
Vec3f fcl::AABB::center | ( | ) | const [inline] |
bool fcl::AABB::contain | ( | const AABB & | other | ) | const [inline] |
bool fcl::AABB::contain | ( | const Vec3f & | p | ) | const [inline] |
FCL_REAL fcl::AABB::depth | ( | ) | const [inline] |
Depth of the AABB.
Referenced by fcl::SpatialHash::SpatialHash(), and volume().
Distance between two AABBs; P and Q, should not be NULL, return the nearest points.
Referenced by fcl::SpatialHashingCollisionManager< HashTable >::distance_().
bool fcl::AABB::equal | ( | const AABB & | other | ) | const [inline] |
whether two AABB are equal
References fcl::isEqual(), max_, and min_.
Referenced by fcl::SpatialHashingCollisionManager< HashTable >::distance_().
expand the half size of the AABB by delta, and keep the center unchanged.
Referenced by fcl::SpatialHashingCollisionManager< HashTable >::distance_().
FCL_REAL fcl::AABB::height | ( | ) | const [inline] |
Height of the AABB.
Referenced by fcl::SpatialHash::SpatialHash(), and volume().
bool fcl::AABB::overlap | ( | const AABB & | other | ) | const [inline] |
Check whether two AABB are overlap.
Referenced by fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >::leafTesting(), fcl::MeshCollisionTraversalNode< OBBRSS >::leafTesting(), fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >::leafTesting(), and overlap().
FCL_REAL fcl::AABB::size | ( | ) | const [inline] |
FCL_REAL fcl::AABB::volume | ( | ) | const [inline] |
FCL_REAL fcl::AABB::width | ( | ) | const [inline] |
Width of the AABB.
Referenced by fcl::SpatialHash::SpatialHash(), and volume().
The max point in the AABB.
Referenced by axisOverlap(), center(), fcl::CollisionObject::computeAABB(), fcl::SpatialHashingCollisionManager< HashTable >::computeBound(), fcl::computeChildBV(), contain(), depth(), fcl::SpatialHashingCollisionManager< HashTable >::distance_(), equal(), expand(), fcl::SaPCollisionManager::EndPoint::getVal(), height(), fcl::SpatialHash::operator()(), operator+=(), overlap(), radius(), fcl::rotate(), size(), fcl::translate(), and width().
The min point in the AABB.
Referenced by axisOverlap(), center(), fcl::CollisionObject::computeAABB(), fcl::SpatialHashingCollisionManager< HashTable >::computeBound(), fcl::computeChildBV(), fcl::OcTree::computeLocalAABB(), contain(), depth(), fcl::SpatialHashingCollisionManager< HashTable >::distance_(), equal(), expand(), fcl::SaPCollisionManager::EndPoint::getVal(), height(), fcl::SpatialHash::operator()(), operator+=(), overlap(), radius(), fcl::rotate(), size(), fcl::translate(), and width().