Classes of different types of bounding volume. More...
Classes | |
class | coal::AABB |
A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points. More... | |
class | coal::KDOP< N > |
KDOP class describes the KDOP collision structures. K is set as the template parameter, which should be 16, 18, or 24 The KDOP structure is defined by some pairs of parallel planes defined by some axes. For K = 16, the planes are 6 AABB planes and 10 diagonal planes that cut off some space of the edges: (-1,0,0) and (1,0,0) -> indices 0 and 8 (0,-1,0) and (0,1,0) -> indices 1 and 9 (0,0,-1) and (0,0,1) -> indices 2 and 10 (-1,-1,0) and (1,1,0) -> indices 3 and 11 (-1,0,-1) and (1,0,1) -> indices 4 and 12 (0,-1,-1) and (0,1,1) -> indices 5 and 13 (-1,1,0) and (1,-1,0) -> indices 6 and 14 (-1,0,1) and (1,0,-1) -> indices 7 and 15 For K = 18, the planes are 6 AABB planes and 12 diagonal planes that cut off some space of the edges: (-1,0,0) and (1,0,0) -> indices 0 and 9 (0,-1,0) and (0,1,0) -> indices 1 and 10 (0,0,-1) and (0,0,1) -> indices 2 and 11 (-1,-1,0) and (1,1,0) -> indices 3 and 12 (-1,0,-1) and (1,0,1) -> indices 4 and 13 (0,-1,-1) and (0,1,1) -> indices 5 and 14 (-1,1,0) and (1,-1,0) -> indices 6 and 15 (-1,0,1) and (1,0,-1) -> indices 7 and 16 (0,-1,1) and (0,1,-1) -> indices 8 and 17 For K = 18, the planes are 6 AABB planes and 18 diagonal planes that cut off some space of the edges: (-1,0,0) and (1,0,0) -> indices 0 and 12 (0,-1,0) and (0,1,0) -> indices 1 and 13 (0,0,-1) and (0,0,1) -> indices 2 and 14 (-1,-1,0) and (1,1,0) -> indices 3 and 15 (-1,0,-1) and (1,0,1) -> indices 4 and 16 (0,-1,-1) and (0,1,1) -> indices 5 and 17 (-1,1,0) and (1,-1,0) -> indices 6 and 18 (-1,0,1) and (1,0,-1) -> indices 7 and 19 (0,-1,1) and (0,1,-1) -> indices 8 and 20 (-1, -1, 1) and (1, 1, -1) --> indices 9 and 21 (-1, 1, -1) and (1, -1, 1) --> indices 10 and 22 (1, -1, -1) and (-1, 1, 1) --> indices 11 and 23. More... | |
class | coal::kIOS |
A class describing the kIOS collision structure, which is a set of spheres. More... | |
struct | coal::kIOS::kIOS_Sphere |
One sphere in kIOS. More... | |
struct | coal::OBB |
Oriented bounding box class. More... | |
struct | coal::OBBRSS |
Class merging the OBB and RSS, can handle collision and distance simultaneously. More... | |
struct | coal::RSS |
A class for rectangle sphere-swept bounding volume. More... | |
Functions | |
coal::AABB::AABB () | |
Creating an AABB with zero size (low bound +inf, upper bound -inf) More... | |
coal::AABB::AABB (const AABB &core, const Vec3s &delta) | |
Creating an AABB centered as core and is of half-dimension delta. More... | |
coal::AABB::AABB (const AABB &other)=default | |
coal::AABB::AABB (const Vec3s &a, const Vec3s &b) | |
Creating an AABB with two endpoints a and b. More... | |
coal::AABB::AABB (const Vec3s &a, const Vec3s &b, const Vec3s &c) | |
Creating an AABB contains three points. More... | |
coal::AABB::AABB (const Vec3s &v) | |
Creating an AABB at position v with zero size. More... | |
bool | coal::AABB::axisOverlap (const AABB &other, int axis_id) const |
Check whether two AABB are overlapped along specific axis. More... | |
const Vec3s & | coal::OBB::center () const |
Center of the OBB. More... | |
const Vec3s & | coal::OBBRSS::center () const |
Center of the OBBRSS. More... | |
const Vec3s & | coal::RSS::center () const |
The RSS center. More... | |
Vec3s | coal::KDOP< N >::center () const |
The (AABB) center. More... | |
const Vec3s & | coal::kIOS::center () const |
Center of the kIOS. More... | |
bool | coal::AABB::contain (const AABB &other) const |
Check whether the AABB contains another AABB. More... | |
bool | coal::OBBRSS::contain (const Vec3s &p) const |
Check whether the OBBRSS contains a point. More... | |
bool | coal::OBB::contain (const Vec3s &p) const |
Check whether the OBB contains a point. More... | |
bool | coal::RSS::contain (const Vec3s &p) const |
Check whether the RSS contains a point. More... | |
bool | coal::kIOS::contain (const Vec3s &p) const |
Check whether the kIOS contains a point. More... | |
CoalScalar | coal::OBB::depth () const |
Depth of the OBB. More... | |
CoalScalar | coal::OBBRSS::depth () const |
Depth of the OBBRSS. More... | |
CoalScalar | coal::RSS::depth () const |
Depth of the RSS. More... | |
CoalScalar | coal::KDOP< N >::depth () const |
The (AABB) depth. More... | |
CoalScalar | coal::kIOS::depth () const |
Depth of the kIOS. More... | |
CoalScalar & | coal::KDOP< N >::dist (short i) |
CoalScalar | coal::KDOP< N >::dist (short i) const |
CoalScalar | coal::KDOP< N >::distance (const KDOP< N > &other, Vec3s *P=NULL, Vec3s *Q=NULL) const |
The distance between two KDOP<N>. Not implemented. More... | |
CoalScalar | coal::kIOS::distance (const kIOS &other, Vec3s *P=NULL, Vec3s *Q=NULL) const |
The distance between two kIOS. More... | |
COAL_DLLAPI CoalScalar | coal::distance (const Matrix3s &R0, const Vec3s &T0, const kIOS &b1, const kIOS &b2, Vec3s *P=NULL, Vec3s *Q=NULL) |
Approximate distance between two kIOS bounding volumes. More... | |
CoalScalar | coal::distance (const Matrix3s &R0, const Vec3s &T0, const OBBRSS &b1, const OBBRSS &b2, Vec3s *P=NULL, Vec3s *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... | |
COAL_DLLAPI CoalScalar | coal::distance (const Matrix3s &R0, const Vec3s &T0, const RSS &b1, const RSS &b2, Vec3s *P=NULL, Vec3s *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) More... | |
CoalScalar | coal::OBB::distance (const OBB &other, Vec3s *P=NULL, Vec3s *Q=NULL) const |
Distance between two OBBs, not implemented. More... | |
CoalScalar | coal::OBBRSS::distance (const OBBRSS &other, Vec3s *P=NULL, Vec3s *Q=NULL) const |
Distance between two OBBRSS; P and Q , is not NULL, returns the nearest points. More... | |
CoalScalar | coal::RSS::distance (const RSS &other, Vec3s *P=NULL, Vec3s *Q=NULL) const |
the distance between two RSS; P and Q, if not NULL, return the nearest points More... | |
static kIOS_Sphere | coal::kIOS::encloseSphere (const kIOS_Sphere &s0, const kIOS_Sphere &s1) |
generate one sphere enclosing two spheres More... | |
AABB & | coal::AABB::expand (const AABB &core, CoalScalar ratio) |
expand the aabb by increase the thickness of the plate by a ratio More... | |
AABB & | coal::AABB::expand (const CoalScalar delta) |
expand the half size of the AABB by a scalar delta, and keep the center unchanged. More... | |
AABB & | coal::AABB::expand (const Vec3s &delta) |
expand the half size of the AABB by delta, and keep the center unchanged. More... | |
CoalScalar | coal::OBB::height () const |
Height of the OBB. More... | |
CoalScalar | coal::OBBRSS::height () const |
Height of the OBBRSS. More... | |
CoalScalar | coal::RSS::height () const |
Height of the RSS. More... | |
CoalScalar | coal::KDOP< N >::height () const |
The (AABB) height. More... | |
CoalScalar | coal::kIOS::height () const |
Height of the kIOS. More... | |
bool | coal::KDOP< N >::inside (const Vec3s &p) const |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | coal::KDOP< N >::KDOP () |
Creating kDOP containing nothing. More... | |
coal::KDOP< N >::KDOP (const Vec3s &a, const Vec3s &b) | |
Creating kDOP containing two points. More... | |
coal::KDOP< N >::KDOP (const Vec3s &v) | |
Creating kDOP containing only one point. More... | |
coal::OBB::OBB () | |
COAL_DLLAPI bool | coal::obbDisjoint (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b) |
bool | coal::AABB::operator!= (const AABB &other) const |
bool | coal::KDOP< N >::operator!= (const KDOP &other) const |
Difference operator. More... | |
bool | coal::kIOS::operator!= (const kIOS &other) const |
Difference operator. More... | |
bool | coal::kIOS::kIOS_Sphere::operator!= (const kIOS_Sphere &other) const |
bool | coal::OBB::operator!= (const OBB &other) const |
Difference operator. More... | |
bool | coal::OBBRSS::operator!= (const OBBRSS &other) const |
Difference operator. More... | |
bool | coal::RSS::operator!= (const RSS &other) const |
Difference operator. More... | |
KDOP< N > | coal::KDOP< N >::operator+ (const KDOP< N > &other) const |
Create a KDOP by mergin two KDOPs. More... | |
kIOS | coal::kIOS::operator+ (const kIOS &other) const |
Return the merged kIOS of current kIOS and the other one. More... | |
OBB | coal::OBB::operator+ (const OBB &other) const |
Return the merged OBB of current OBB and the other one (the result is not compact). More... | |
OBBRSS | coal::OBBRSS::operator+ (const OBBRSS &other) const |
Merge two OBBRSS. More... | |
RSS | coal::RSS::operator+ (const RSS &other) const |
Return the merged RSS of current RSS and the other one. More... | |
KDOP< N > & | coal::KDOP< N >::operator+= (const KDOP< N > &other) |
Merge two KDOPs. More... | |
kIOS & | coal::kIOS::operator+= (const kIOS &other) |
Merge the kIOS and another kIOS. More... | |
OBB & | coal::OBB::operator+= (const OBB &other) |
Merge the OBB and another OBB (the result is not compact). More... | |
OBBRSS & | coal::OBBRSS::operator+= (const OBBRSS &other) |
Merge two OBBRSS. More... | |
RSS & | coal::RSS::operator+= (const RSS &other) |
Merge the RSS and another RSS. More... | |
OBBRSS & | coal::OBBRSS::operator+= (const Vec3s &p) |
Merge the OBBRSS and a point. More... | |
OBB & | coal::OBB::operator+= (const Vec3s &p) |
A simple way to merge the OBB and a point (the result is not compact). More... | |
RSS & | coal::RSS::operator+= (const Vec3s &p) |
A simple way to merge the RSS and a point, not compact. More... | |
KDOP< N > & | coal::KDOP< N >::operator+= (const Vec3s &p) |
Merge the point and the KDOP. More... | |
kIOS & | coal::kIOS::operator+= (const Vec3s &p) |
A simple way to merge the kIOS and a point. More... | |
AABB & | coal::AABB::operator= (const AABB &other)=default |
bool | coal::AABB::operator== (const AABB &other) const |
Comparison operator. More... | |
bool | coal::KDOP< N >::operator== (const KDOP &other) const |
Equality operator. More... | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW bool | coal::kIOS::operator== (const kIOS &other) const |
Equality operator. More... | |
bool | coal::kIOS::kIOS_Sphere::operator== (const kIOS_Sphere &other) const |
bool | coal::OBB::operator== (const OBB &other) const |
Equality operator. More... | |
bool | coal::OBBRSS::operator== (const OBBRSS &other) const |
Equality operator. More... | |
bool | coal::RSS::operator== (const RSS &other) const |
Equality operator. More... | |
bool | coal::AABB::overlap (const AABB &other, AABB &overlap_part) const |
Check whether two AABB are overlap and return the overlap part. More... | |
bool | coal::KDOP< N >::overlap (const KDOP< N > &other) const |
Check whether two KDOPs overlap. More... | |
bool | coal::KDOP< N >::overlap (const KDOP< N > &other, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) const |
Check whether two KDOPs overlap. More... | |
bool | coal::kIOS::overlap (const kIOS &other) const |
Check collision between two kIOS. More... | |
bool | coal::kIOS::overlap (const kIOS &other, const CollisionRequest &, CoalScalar &sqrDistLowerBound) const |
Check collision between two kIOS. More... | |
template<short N> | |
bool | coal::overlap (const Matrix3s &, const Vec3s &, const KDOP< N > &, const KDOP< N > &) |
template<short N> | |
bool | coal::overlap (const Matrix3s &, const Vec3s &, const KDOP< N > &, const KDOP< N > &, const CollisionRequest &, CoalScalar &) |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const AABB &b1, const AABB &b2) |
Check collision between two aabbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const AABB &b1, const AABB &b2, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) |
Check collision between two aabbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const kIOS &b1, const kIOS &b2) |
Check collision between two kIOSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const kIOS &b1, const kIOS &b2, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) |
Check collision between two kIOSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const OBB &b1, const OBB &b2) |
Check collision between two obbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const OBB &b1, const OBB &b2, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) |
Check collision between two obbs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
bool | coal::overlap (const Matrix3s &R0, const Vec3s &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 | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const OBBRSS &b1, const OBBRSS &b2, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const RSS &b1, const RSS &b2) |
Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const RSS &b1, const RSS &b2, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) |
Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |
bool | coal::OBB::overlap (const OBB &other) const |
bool | coal::OBB::overlap (const OBB &other, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) const |
bool | coal::OBBRSS::overlap (const OBBRSS &other) const |
Check collision between two OBBRSS. More... | |
bool | coal::OBBRSS::overlap (const OBBRSS &other, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) const |
bool | coal::RSS::overlap (const RSS &other) const |
Check collision between two RSS. More... | |
bool | coal::RSS::overlap (const RSS &other, const CollisionRequest &, CoalScalar &sqrDistLowerBound) const |
Not implemented. More... | |
bool | coal::RSS::overlap (const RSS &other, RSS &) const |
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. More... | |
static AABB | coal::rotate (const AABB &aabb, const Matrix3s &R) |
coal::RSS::RSS () | |
More... | |
CoalScalar | coal::OBB::size () const |
Size of the OBB (used in BV_Splitter to order two OBBs) More... | |
CoalScalar | coal::OBBRSS::size () const |
Size of the OBBRSS (used in BV_Splitter to order two OBBRSS) More... | |
CoalScalar | coal::RSS::size () const |
Size of the RSS (used in BV_Splitter to order two RSSs) More... | |
CoalScalar | coal::KDOP< N >::size () const |
Size of the kDOP (used in BV_Splitter to order two kDOPs) More... | |
CoalScalar | coal::kIOS::size () const |
size of the kIOS (used in BV_Splitter to order two kIOSs) More... | |
static AABB | coal::translate (const AABB &aabb, const Vec3s &t) |
translate the center of AABB by t More... | |
template<short N> | |
COAL_DLLAPI KDOP< N > | coal::translate (const KDOP< N > &bv, const Vec3s &t) |
translate the KDOP BV More... | |
COAL_DLLAPI kIOS | coal::translate (const kIOS &bv, const Vec3s &t) |
Translate the kIOS BV. More... | |
COAL_DLLAPI OBB | coal::translate (const OBB &bv, const Vec3s &t) |
Translate the OBB bv. More... | |
AABB & | coal::AABB::update (const Vec3s &a, const Vec3s &b) |
CoalScalar | coal::OBB::volume () const |
Volume of the OBB. More... | |
CoalScalar | coal::OBBRSS::volume () const |
Volume of the OBBRSS. More... | |
CoalScalar | coal::RSS::volume () const |
Volume of the RSS. More... | |
CoalScalar | coal::KDOP< N >::volume () const |
The (AABB) volume. More... | |
CoalScalar | coal::kIOS::volume () const |
Volume of the kIOS. More... | |
CoalScalar | coal::OBB::width () const |
Width of the OBB. More... | |
CoalScalar | coal::OBBRSS::width () const |
Width of the OBRSS. More... | |
CoalScalar | coal::RSS::width () const |
Width of the RSS. More... | |
CoalScalar | coal::KDOP< N >::width () const |
The (AABB) width. More... | |
CoalScalar | coal::kIOS::width () const |
Width of the kIOS. More... | |
Variables | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Matrix3s | coal::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. More... | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Matrix3s | coal::RSS::axes |
Orientation of RSS. axis[i] is the ith column of the orientation matrix for the RSS; it is also the i-th principle direction of the RSS. We assume that axis[0] corresponds to the axis with the longest length, axis[1] corresponds to the shorter one and axis[2] corresponds to the shortest one. More... | |
Eigen::Array< CoalScalar, N, 1 > | coal::KDOP< N >::dist_ |
Origin's distances to N KDOP planes. More... | |
Vec3s | coal::OBB::extent |
Half dimensions of OBB. More... | |
CoalScalar | coal::RSS::length [2] |
Side lengths of rectangle. More... | |
Vec3s | coal::AABB::max_ |
The max point in the AABB. More... | |
static constexpr size_t | coal::kIOS::max_num_spheres = 5 |
Vec3s | coal::AABB::min_ |
The min point in the AABB. More... | |
unsigned int | coal::kIOS::num_spheres |
The number of spheres, no larger than 5. More... | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Vec3s | coal::kIOS::kIOS_Sphere::o |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW OBB | coal::OBBRSS::obb |
OBB member, for rotation. More... | |
OBB | coal::kIOS::obb |
@ OBB related with kIOS More... | |
CoalScalar | coal::kIOS::kIOS_Sphere::r |
CoalScalar | coal::RSS::radius |
Radius of sphere summed with rectangle to form RSS. More... | |
RSS | coal::OBBRSS::rss |
RSS member, for distance. More... | |
kIOS_Sphere | coal::kIOS::spheres [max_num_spheres] |
The (at most) five spheres for intersection. More... | |
Vec3s | coal::OBB::To |
Center of OBB. More... | |
Vec3s | coal::RSS::Tr |
Origin of the rectangle in RSS. More... | |
Bounding volume API | |
bool | coal::AABB::contain (const Vec3s &p) const |
Check whether the AABB contains a point. More... | |
bool | coal::AABB::overlap (const AABB &other) const |
Check whether two AABB are overlap. More... | |
bool | coal::AABB::overlap (const Plane &p) const |
Check whether AABB overlaps a plane. More... | |
bool | coal::AABB::overlap (const Halfspace &hs) const |
Check whether AABB overlaps a halfspace. More... | |
bool | coal::AABB::overlap (const AABB &other, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) const |
Check whether two AABB are overlap. More... | |
CoalScalar | coal::AABB::distance (const AABB &other) const |
Distance between two AABBs. More... | |
CoalScalar | coal::AABB::distance (const AABB &other, Vec3s *P, Vec3s *Q) const |
Distance between two AABBs; P and Q, should not be NULL, return the nearest points. More... | |
AABB & | coal::AABB::operator+= (const Vec3s &p) |
Merge the AABB and a point. More... | |
AABB & | coal::AABB::operator+= (const AABB &other) |
Merge the AABB and another AABB. More... | |
AABB | coal::AABB::operator+ (const AABB &other) const |
Return the merged AABB of current AABB and the other one. More... | |
CoalScalar | coal::AABB::size () const |
Size of the AABB (used in BV_Splitter to order two AABBs) More... | |
Vec3s | coal::AABB::center () const |
Center of the AABB. More... | |
CoalScalar | coal::AABB::width () const |
Width of the AABB. More... | |
CoalScalar | coal::AABB::height () const |
Height of the AABB. More... | |
CoalScalar | coal::AABB::depth () const |
Depth of the AABB. More... | |
CoalScalar | coal::AABB::volume () const |
Volume of the AABB. More... | |
Classes of different types of bounding volume.
coal::AABB::AABB | ( | ) |
Creating an AABB centered as core and is of half-dimension delta.
Definition at line 73 of file coal/BV/AABB.h.
|
default |
Creating an AABB with two endpoints a and b.
Definition at line 69 of file coal/BV/AABB.h.
Creating an AABB contains three points.
Definition at line 77 of file coal/BV/AABB.h.
|
inline |
Creating an AABB at position v with zero size.
Definition at line 66 of file coal/BV/AABB.h.
|
inline |
Check whether two AABB are overlapped along specific axis.
Definition at line 199 of file coal/BV/AABB.h.
|
inline |
Center of the OBB.
Definition at line 112 of file include/coal/BV/OBB.h.
|
inline |
Center of the OBBRSS.
Definition at line 116 of file coal/BV/OBBRSS.h.
|
inline |
The RSS center.
Definition at line 125 of file coal/BV/RSS.h.
|
inline |
The (AABB) center.
Definition at line 147 of file coal/BV/kDOP.h.
|
inline |
Center of the kIOS.
Definition at line 154 of file coal/BV/kIOS.h.
|
inline |
Center of the AABB.
Definition at line 164 of file coal/BV/AABB.h.
|
inline |
Check whether the AABB contains another AABB.
Definition at line 181 of file coal/BV/AABB.h.
|
inline |
Check whether the OBBRSS contains a point.
Definition at line 71 of file coal/BV/OBBRSS.h.
bool coal::OBB::contain | ( | const Vec3s & | p | ) | const |
bool coal::RSS::contain | ( | const Vec3s & | p | ) | const |
|
inline |
Check whether the AABB contains a point.
Definition at line 102 of file coal/BV/AABB.h.
bool coal::kIOS::contain | ( | const Vec3s & | p | ) | const |
|
inline |
Depth of the OBB.
Definition at line 121 of file include/coal/BV/OBB.h.
|
inline |
Depth of the OBBRSS.
Definition at line 125 of file coal/BV/OBBRSS.h.
|
inline |
Depth of the RSS.
Definition at line 134 of file coal/BV/RSS.h.
|
inline |
The (AABB) depth.
Definition at line 158 of file coal/BV/kDOP.h.
CoalScalar coal::kIOS::depth | ( | ) | const |
|
inline |
Depth of the AABB.
Definition at line 173 of file coal/BV/AABB.h.
|
inline |
Definition at line 165 of file coal/BV/kDOP.h.
|
inline |
Definition at line 163 of file coal/BV/kDOP.h.
CoalScalar coal::AABB::distance | ( | const AABB & | other | ) | const |
CoalScalar coal::AABB::distance | ( | const AABB & | other, |
Vec3s * | P, | ||
Vec3s * | Q | ||
) | const |
CoalScalar coal::KDOP< N >::distance | ( | const KDOP< N > & | other, |
Vec3s * | P = NULL , |
||
Vec3s * | Q = NULL |
||
) | const |
CoalScalar coal::kIOS::distance | ( | const kIOS & | other, |
Vec3s * | P = NULL , |
||
Vec3s * | Q = NULL |
||
) | const |
|
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.
Definition at line 152 of file coal/BV/OBBRSS.h.
CoalScalar coal::distance | ( | const Matrix3s & | R0, |
const Vec3s & | T0, | ||
const RSS & | b1, | ||
const RSS & | b2, | ||
Vec3s * | P = NULL , |
||
Vec3s * | 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)
CoalScalar coal::OBB::distance | ( | const OBB & | other, |
Vec3s * | P = NULL , |
||
Vec3s * | Q = NULL |
||
) | const |
|
inline |
Distance between two OBBRSS; P and Q , is not NULL, returns the nearest points.
Definition at line 86 of file coal/BV/OBBRSS.h.
CoalScalar coal::RSS::distance | ( | const RSS & | other, |
Vec3s * | P = NULL , |
||
Vec3s * | Q = NULL |
||
) | const |
|
inlinestaticprivate |
generate one sphere enclosing two spheres
The sphere with the larger radius encloses the other
spheres partially overlapping or disjoint
Definition at line 70 of file coal/BV/kIOS.h.
|
inline |
expand the aabb by increase the thickness of the plate by a ratio
Definition at line 223 of file coal/BV/AABB.h.
|
inline |
expand the half size of the AABB by a scalar delta, and keep the center unchanged.
Definition at line 216 of file coal/BV/AABB.h.
expand the half size of the AABB by delta, and keep the center unchanged.
Definition at line 208 of file coal/BV/AABB.h.
|
inline |
Height of the OBB.
Definition at line 118 of file include/coal/BV/OBB.h.
|
inline |
Height of the OBBRSS.
Definition at line 122 of file coal/BV/OBBRSS.h.
|
inline |
Height of the RSS.
Definition at line 131 of file coal/BV/RSS.h.
|
inline |
The (AABB) height.
Definition at line 155 of file coal/BV/kDOP.h.
CoalScalar coal::kIOS::height | ( | ) | const |
|
inline |
Height of the AABB.
Definition at line 170 of file coal/BV/AABB.h.
bool coal::KDOP< N >::inside | ( | const Vec3s & | p | ) | const |
coal::KDOP< N >::KDOP |
coal::KDOP< N >::KDOP | ( | const Vec3s & | a, |
const Vec3s & | b | ||
) |
coal::KDOP< N >::KDOP | ( | const Vec3s & | v | ) |
|
inline |
Definition at line 67 of file include/coal/BV/OBB.h.
|
inline |
Definition at line 95 of file coal/BV/AABB.h.
|
inline |
Difference operator.
Definition at line 114 of file coal/BV/kDOP.h.
|
inline |
Difference operator.
Definition at line 111 of file coal/BV/kIOS.h.
|
inline |
Definition at line 64 of file coal/BV/kIOS.h.
|
inline |
Difference operator.
Definition at line 75 of file include/coal/BV/OBB.h.
|
inline |
Difference operator.
Definition at line 68 of file coal/BV/OBBRSS.h.
|
inline |
Difference operator.
Definition at line 86 of file coal/BV/RSS.h.
Return the merged AABB of current AABB and the other one.
Definition at line 155 of file coal/BV/AABB.h.
KDOP< N > coal::KDOP< N >::operator+ | ( | const KDOP< N > & | other | ) | const |
Merge two OBBRSS.
Definition at line 105 of file coal/BV/OBBRSS.h.
Merge the AABB and another AABB.
Definition at line 148 of file coal/BV/AABB.h.
KDOP< N > & coal::KDOP< N >::operator+= | ( | const KDOP< N > & | other | ) |
Merge the kIOS and another kIOS.
Definition at line 142 of file coal/BV/kIOS.h.
Merge the OBB and another OBB (the result is not compact).
Definition at line 99 of file include/coal/BV/OBB.h.
Merge two OBBRSS.
Definition at line 99 of file coal/BV/OBBRSS.h.
Merge the RSS and another RSS.
Definition at line 110 of file coal/BV/RSS.h.
Merge the OBBRSS and a point.
Definition at line 92 of file coal/BV/OBBRSS.h.
KDOP< N > & coal::KDOP< N >::operator+= | ( | const Vec3s & | p | ) |
Merge the AABB and a point.
Definition at line 141 of file coal/BV/AABB.h.
|
inline |
Comparison operator.
Definition at line 91 of file coal/BV/AABB.h.
|
inline |
Equality operator.
Definition at line 109 of file coal/BV/kDOP.h.
|
inline |
Equality operator.
Definition at line 99 of file coal/BV/kIOS.h.
|
inline |
Definition at line 60 of file coal/BV/kIOS.h.
|
inline |
Equality operator.
Definition at line 70 of file include/coal/BV/OBB.h.
|
inline |
Equality operator.
Definition at line 63 of file coal/BV/OBBRSS.h.
|
inline |
Equality operator.
Definition at line 79 of file coal/BV/RSS.h.
|
inline |
Check whether two AABB are overlap.
Definition at line 111 of file coal/BV/AABB.h.
Check whether two AABB are overlap and return the overlap part.
Definition at line 188 of file coal/BV/AABB.h.
bool coal::AABB::overlap | ( | const AABB & | other, |
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) | const |
bool coal::AABB::overlap | ( | const Halfspace & | hs | ) | const |
bool coal::KDOP< N >::overlap | ( | const KDOP< N > & | other | ) | const |
bool coal::KDOP< N >::overlap | ( | const KDOP< N > & | other, |
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) | const |
bool coal::kIOS::overlap | ( | const kIOS & | other | ) | const |
bool coal::kIOS::overlap | ( | const kIOS & | other, |
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) | const |
bool coal::overlap | ( | const Matrix3s & | , |
const Vec3s & | , | ||
const KDOP< N > & | , | ||
const KDOP< N > & | |||
) |
Definition at line 172 of file coal/BV/kDOP.h.
bool coal::overlap | ( | const Matrix3s & | , |
const Vec3s & | , | ||
const KDOP< N > & | , | ||
const KDOP< N > & | , | ||
const CollisionRequest & | , | ||
CoalScalar & | |||
) |
Definition at line 178 of file coal/BV/kDOP.h.
bool coal::overlap | ( | const Matrix3s & | R0, |
const Vec3s & | T0, | ||
const AABB & | b1, | ||
const AABB & | b2, | ||
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) |
bool coal::overlap | ( | const Matrix3s & | R0, |
const Vec3s & | T0, | ||
const kIOS & | b1, | ||
const kIOS & | b2, | ||
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) |
bool coal::overlap | ( | const Matrix3s & | R0, |
const Vec3s & | T0, | ||
const OBB & | b1, | ||
const OBB & | b2, | ||
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) |
|
inline |
Check collision between two OBBRSS, b1 is in configuration (R0, T0) and b2 is in indentity.
Definition at line 133 of file coal/BV/OBBRSS.h.
|
inline |
bool coal::overlap | ( | const Matrix3s & | R0, |
const Vec3s & | T0, | ||
const RSS & | b1, | ||
const RSS & | b2, | ||
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) |
bool coal::OBB::overlap | ( | const OBB & | other | ) | const |
bool coal::OBB::overlap | ( | const OBB & | other, |
const CollisionRequest & | request, | ||
CoalScalar & | sqrDistLowerBound | ||
) | const |
Check collision between two OBB
sqrDistLowerBound | squared lower bound on distance between boxes if they do not overlap. |
compute what transform [R,T] that takes us from cs1 to cs2. [R,T] = [R1,T1]'[R2,T2] = [R1',-R1'T][R2,T2] = [R1'R2, R1'(T2-T1)] First compute the rotation part, then translation part
|
inline |
Check collision between two OBBRSS.
Definition at line 74 of file coal/BV/OBBRSS.h.
|
inline |
Check collision between two OBBRSS
sqrDistLowerBound | squared lower bound on distance between objects if they do not overlap. |
Definition at line 79 of file coal/BV/OBBRSS.h.
bool coal::AABB::overlap | ( | const Plane & | p | ) | const |
bool coal::RSS::overlap | ( | const RSS & | other | ) | const |
|
inline |
Not implemented.
Definition at line 95 of file coal/BV/RSS.h.
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.
Definition at line 146 of file coal/BV/RSS.h.
Definition at line 240 of file coal/BV/AABB.h.
|
inline |
|
inline |
Size of the OBB (used in BV_Splitter to order two OBBs)
Definition at line 109 of file include/coal/BV/OBB.h.
|
inline |
Size of the OBBRSS (used in BV_Splitter to order two OBBRSS)
Definition at line 113 of file coal/BV/OBBRSS.h.
|
inline |
Size of the RSS (used in BV_Splitter to order two RSSs)
Definition at line 119 of file coal/BV/RSS.h.
|
inline |
Size of the kDOP (used in BV_Splitter to order two kDOPs)
Definition at line 142 of file coal/BV/kDOP.h.
CoalScalar coal::kIOS::size | ( | ) | const |
|
inline |
Size of the AABB (used in BV_Splitter to order two AABBs)
Definition at line 161 of file coal/BV/AABB.h.
translate the center of AABB by t
Definition at line 233 of file coal/BV/AABB.h.
Definition at line 84 of file coal/BV/AABB.h.
|
inline |
Volume of the OBB.
Definition at line 124 of file include/coal/BV/OBB.h.
|
inline |
Volume of the OBBRSS.
Definition at line 128 of file coal/BV/OBBRSS.h.
|
inline |
Volume of the RSS.
Definition at line 137 of file coal/BV/RSS.h.
|
inline |
The (AABB) volume.
Definition at line 161 of file coal/BV/kDOP.h.
CoalScalar coal::kIOS::volume | ( | ) | const |
|
inline |
Volume of the AABB.
Definition at line 176 of file coal/BV/AABB.h.
|
inline |
Width of the OBB.
Definition at line 115 of file include/coal/BV/OBB.h.
|
inline |
Width of the OBRSS.
Definition at line 119 of file coal/BV/OBBRSS.h.
|
inline |
Width of the RSS.
Definition at line 128 of file coal/BV/RSS.h.
|
inline |
The (AABB) width.
Definition at line 152 of file coal/BV/kDOP.h.
CoalScalar coal::kIOS::width | ( | ) | const |
|
inline |
Width of the AABB.
Definition at line 167 of file coal/BV/AABB.h.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Matrix3s coal::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.
Definition at line 59 of file include/coal/BV/OBB.h.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Matrix3s coal::RSS::axes |
Orientation of RSS. axis[i] is the ith column of the orientation matrix for the RSS; it is also the i-th principle direction of the RSS. We assume that axis[0] corresponds to the axis with the longest length, axis[1] corresponds to the shorter one and axis[2] corresponds to the shortest one.
Definition at line 61 of file coal/BV/RSS.h.
|
protected |
Origin's distances to N KDOP planes.
Definition at line 94 of file coal/BV/kDOP.h.
Vec3s coal::OBB::extent |
Half dimensions of OBB.
Definition at line 65 of file include/coal/BV/OBB.h.
CoalScalar coal::RSS::length[2] |
Side lengths of rectangle.
Definition at line 67 of file coal/BV/RSS.h.
Vec3s coal::AABB::max_ |
The max point in the AABB.
Definition at line 60 of file coal/BV/AABB.h.
|
staticconstexpr |
Definition at line 113 of file coal/BV/kIOS.h.
Vec3s coal::AABB::min_ |
The min point in the AABB.
Definition at line 58 of file coal/BV/AABB.h.
unsigned int coal::kIOS::num_spheres |
The number of spheres, no larger than 5.
Definition at line 119 of file coal/BV/kIOS.h.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Vec3s coal::kIOS::kIOS_Sphere::o |
Definition at line 57 of file coal/BV/kIOS.h.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW OBB coal::OBBRSS::obb |
OBB member, for rotation.
Definition at line 57 of file coal/BV/OBBRSS.h.
OBB coal::kIOS::obb |
Definition at line 122 of file coal/BV/kIOS.h.
CoalScalar coal::kIOS::kIOS_Sphere::r |
Definition at line 58 of file coal/BV/kIOS.h.
CoalScalar coal::RSS::radius |
Radius of sphere summed with rectangle to form RSS.
Definition at line 70 of file coal/BV/RSS.h.
RSS coal::OBBRSS::rss |
RSS member, for distance.
Definition at line 60 of file coal/BV/OBBRSS.h.
kIOS_Sphere coal::kIOS::spheres[max_num_spheres] |
The (at most) five spheres for intersection.
Definition at line 116 of file coal/BV/kIOS.h.
Vec3s coal::OBB::To |
Center of OBB.
Definition at line 62 of file include/coal/BV/OBB.h.
Vec3s coal::RSS::Tr |
Origin of the rectangle in RSS.
Definition at line 64 of file coal/BV/RSS.h.