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) More... | |
AABB (const Vec3f &v) | |
Creating an AABB at position v with zero size. More... | |
AABB (const Vec3f &a, const Vec3f &b) | |
Creating an AABB with two endpoints a and b. More... | |
AABB (const AABB &core, const Vec3f &delta) | |
Creating an AABB centered as core and is of half-dimension delta. More... | |
AABB (const Vec3f &a, const Vec3f &b, const Vec3f &c) | |
Creating an AABB contains three points. More... | |
bool | overlap (const AABB &other) const |
Check whether two AABB are overlap. More... | |
bool | overlap (const AABB &, FCL_REAL &) const |
Not implemented. More... | |
bool | contain (const AABB &other) const |
Check whether the AABB contains another AABB. More... | |
bool | axisOverlap (const AABB &other, int axis_id) const |
Check whether two AABB are overlapped along specific axis. More... | |
bool | overlap (const AABB &other, AABB &overlap_part) const |
Check whether two AABB are overlap and return the overlap part. More... | |
bool | contain (const Vec3f &p) const |
Check whether the AABB contains a point. More... | |
AABB & | operator+= (const Vec3f &p) |
Merge the AABB and a point. More... | |
AABB & | operator+= (const AABB &other) |
Merge the AABB and another AABB. More... | |
AABB | operator+ (const AABB &other) const |
Return the merged AABB of current AABB and the other one. More... | |
FCL_REAL | width () const |
Width of the AABB. More... | |
FCL_REAL | height () const |
Height of the AABB. More... | |
FCL_REAL | depth () const |
Depth of the AABB. More... | |
FCL_REAL | volume () const |
Volume of the AABB. More... | |
FCL_REAL | size () const |
Size of the AABB (used in BV_Splitter to order two AABBs) More... | |
FCL_REAL | radius () const |
Radius of the AABB. More... | |
Vec3f | center () const |
Center of the AABB. More... | |
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. More... | |
FCL_REAL | distance (const AABB &other) const |
Distance between two AABBs. More... | |
bool | equal (const AABB &other) const |
whether two AABB are equal More... | |
AABB & | expand (const Vec3f &delta) |
expand the half size of the AABB by delta, and keep the center unchanged. More... | |
AABB & | expand (const AABB &core, FCL_REAL ratio) |
expand the aabb by increase the thickness of the plate by a ratio More... | |
Public Attributes | |
Vec3f | min_ |
The min point in the AABB. More... | |
Vec3f | max_ |
The max point in the AABB. More... | |
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.
|
inline |
|
inline |
Center of the AABB.
Referenced by fcl::OcTree::computeLocalAABB().
|
inline |
|
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_().
|
inline |
whether two AABB are equal
References fcl::Vec3fX< T >::equal(), 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_().
|
inline |
Height of the AABB.
Referenced by fcl::SpatialHash::SpatialHash(), and volume().
Merge the AABB and a point.
References fcl::Vec3fX< T >::lbound(), and fcl::Vec3fX< T >::ubound().
Merge the AABB and another AABB.
References fcl::Vec3fX< T >::lbound(), max_, min_, and fcl::Vec3fX< T >::ubound().
|
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().
Check whether two AABB are overlap and return the overlap part.
References fcl::max(), max_, fcl::min(), min_, and overlap().
|
inline |
|
inline |
Width of the AABB.
Referenced by fcl::SpatialHash::SpatialHash(), and volume().
Vec3f fcl::AABB::max_ |
The max point in the AABB.
Referenced by axisOverlap(), fcl::CollisionObject::computeAABB(), fcl::ContinuousCollisionObject::computeAABB(), fcl::SpatialHashingCollisionManager< HashTable >::computeBound(), fcl::computeChildBV(), contain(), fcl::SpatialHashingCollisionManager< HashTable >::distance_(), equal(), expand(), fcl::SaPCollisionManager::EndPoint::getVal(), fcl::SpatialHash::operator()(), operator+=(), overlap(), and fcl::translate().
Vec3f fcl::AABB::min_ |
The min point in the AABB.
Referenced by axisOverlap(), fcl::CollisionObject::computeAABB(), fcl::ContinuousCollisionObject::computeAABB(), fcl::SpatialHashingCollisionManager< HashTable >::computeBound(), fcl::computeChildBV(), fcl::OcTree::computeLocalAABB(), contain(), fcl::SpatialHashingCollisionManager< HashTable >::distance_(), equal(), expand(), fcl::SaPCollisionManager::EndPoint::getVal(), fcl::SpatialHash::operator()(), operator+=(), overlap(), and fcl::translate().