| 
| 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::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...
  | 
|   | 
 | 
|   | coal::AABB::AABB () | 
|   | Creating an AABB with zero size (low bound +inf, upper bound -inf)  More...
  | 
|   | 
|   | coal::AABB::AABB (const Vec3s &v) | 
|   | Creating an AABB at position v with zero size.  More...
  | 
|   | 
|   | coal::AABB::AABB (const Vec3s &a, const Vec3s &b) | 
|   | Creating an AABB with two endpoints a and b.  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 Vec3s &a, const Vec3s &b, const Vec3s &c) | 
|   | Creating an AABB contains three points.  More...
  | 
|   | 
|   | coal::AABB::AABB (const AABB &other)=default | 
|   | 
| AABB &  | coal::AABB::operator= (const AABB &other)=default | 
|   | 
| AABB &  | coal::AABB::update (const Vec3s &a, const Vec3s &b) | 
|   | 
| bool  | coal::AABB::operator== (const AABB &other) const | 
|   | Comparison operator.  More...
  | 
|   | 
| bool  | coal::AABB::operator!= (const AABB &other) const | 
|   | 
| bool  | coal::AABB::contain (const AABB &other) const | 
|   | Check whether the AABB contains another AABB.  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::AABB::axisOverlap (const AABB &other, int axis_id) const | 
|   | Check whether two AABB are overlapped along specific axis.  More...
  | 
|   | 
| AABB &  | coal::AABB::expand (const Vec3s &delta) | 
|   | expand the half size of the AABB by delta, and keep the center unchanged.  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 AABB &core, CoalScalar ratio) | 
|   | expand the aabb by increase the thickness of the plate by a ratio  More...
  | 
|   | 
| 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...
  | 
|   | 
| 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...
  | 
|   | 
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW  | coal::KDOP< N >::KDOP () | 
|   | Creating kDOP containing nothing.  More...
  | 
|   | 
|   | coal::KDOP< N >::KDOP (const Vec3s &v) | 
|   | Creating kDOP containing only one point.  More...
  | 
|   | 
|   | coal::KDOP< N >::KDOP (const Vec3s &a, const Vec3s &b) | 
|   | Creating kDOP containing two points.  More...
  | 
|   | 
| bool  | coal::KDOP< N >::operator== (const KDOP &other) const | 
|   | Equality operator.  More...
  | 
|   | 
| bool  | coal::KDOP< N >::operator!= (const KDOP &other) const | 
|   | Difference operator.  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...
  | 
|   | 
| 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...
  | 
|   | 
| KDOP< N > &  | coal::KDOP< N >::operator+= (const Vec3s &p) | 
|   | Merge the point and the KDOP.  More...
  | 
|   | 
| KDOP< N > &  | coal::KDOP< N >::operator+= (const KDOP< N > &other) | 
|   | Merge two KDOPs.  More...
  | 
|   | 
| KDOP< N >  | coal::KDOP< N >::operator+ (const KDOP< N > &other) const | 
|   | Create a KDOP by mergin two KDOPs.  More...
  | 
|   | 
| CoalScalar  | coal::KDOP< N >::size () const | 
|   | Size of the kDOP (used in BV_Splitter to order two kDOPs)  More...
  | 
|   | 
| Vec3s  | coal::KDOP< N >::center () const | 
|   | The (AABB) center.  More...
  | 
|   | 
| CoalScalar  | coal::KDOP< N >::width () const | 
|   | The (AABB) width.  More...
  | 
|   | 
| CoalScalar  | coal::KDOP< N >::height () const | 
|   | The (AABB) height.  More...
  | 
|   | 
| CoalScalar  | coal::KDOP< N >::depth () const | 
|   | The (AABB) depth.  More...
  | 
|   | 
| CoalScalar  | coal::KDOP< N >::volume () const | 
|   | The (AABB) volume.  More...
  | 
|   | 
| CoalScalar  | coal::KDOP< N >::dist (short i) const | 
|   | 
| CoalScalar &  | coal::KDOP< N >::dist (short i) | 
|   | 
| bool  | coal::KDOP< N >::inside (const Vec3s &p) const | 
|   | 
| 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 &) | 
|   | 
| template<short N>  | 
| KDOP< N >  | coal::translate (const KDOP< N > &bv, const Vec3s &t) | 
|   | translate the KDOP BV  More...
  | 
|   | 
| bool  | coal::kIOS::kIOS_Sphere::operator== (const kIOS_Sphere &other) const | 
|   | 
| bool  | coal::kIOS::kIOS_Sphere::operator!= (const kIOS_Sphere &other) const | 
|   | 
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW bool  | coal::kIOS::operator== (const kIOS &other) const | 
|   | Equality operator.  More...
  | 
|   | 
| bool  | coal::kIOS::operator!= (const kIOS &other) const | 
|   | Difference operator.  More...
  | 
|   | 
| bool  | coal::kIOS::contain (const Vec3s &p) const | 
|   | Check whether the kIOS contains a point.  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...
  | 
|   | 
| CoalScalar  | coal::kIOS::distance (const kIOS &other, Vec3s *P=NULL, Vec3s *Q=NULL) const | 
|   | The distance between two kIOS.  More...
  | 
|   | 
| kIOS &  | coal::kIOS::operator+= (const Vec3s &p) | 
|   | A simple way to merge the kIOS and a point.  More...
  | 
|   | 
| kIOS &  | coal::kIOS::operator+= (const kIOS &other) | 
|   | Merge the kIOS and another kIOS.  More...
  | 
|   | 
| kIOS  | coal::kIOS::operator+ (const kIOS &other) const | 
|   | Return the merged kIOS of current kIOS and the other one.  More...
  | 
|   | 
| CoalScalar  | coal::kIOS::size () const | 
|   | size of the kIOS (used in BV_Splitter to order two kIOSs)  More...
  | 
|   | 
| const Vec3s &  | coal::kIOS::center () const | 
|   | Center of the kIOS.  More...
  | 
|   | 
| CoalScalar  | coal::kIOS::width () const | 
|   | Width of the kIOS.  More...
  | 
|   | 
| CoalScalar  | coal::kIOS::height () const | 
|   | Height of the kIOS.  More...
  | 
|   | 
| CoalScalar  | coal::kIOS::depth () const | 
|   | Depth of the kIOS.  More...
  | 
|   | 
| CoalScalar  | coal::kIOS::volume () const | 
|   | Volume of the kIOS.  More...
  | 
|   | 
| kIOS  | coal::translate (const kIOS &bv, const Vec3s &t) | 
|   | Translate the kIOS BV.  More...
  | 
|   | 
| 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...
  | 
|   | 
| 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...
  | 
|   | 
| 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...
  | 
|   | 
|   | coal::OBB::OBB () | 
|   | 
| bool  | coal::OBB::operator== (const OBB &other) const | 
|   | Equality operator.  More...
  | 
|   | 
| bool  | coal::OBB::operator!= (const OBB &other) const | 
|   | Difference operator.  More...
  | 
|   | 
| bool  | coal::OBB::contain (const Vec3s &p) const | 
|   | Check whether the OBB contains a point.  More...
  | 
|   | 
| bool  | coal::OBB::overlap (const OBB &other) const | 
|   | 
| bool  | coal::OBB::overlap (const OBB &other, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) const | 
|   | 
| CoalScalar  | coal::OBB::distance (const OBB &other, Vec3s *P=NULL, Vec3s *Q=NULL) const | 
|   | Distance between two OBBs, not implemented.  More...
  | 
|   | 
| OBB &  | coal::OBB::operator+= (const Vec3s &p) | 
|   | A simple way to merge the OBB and a point (the result is not compact).  More...
  | 
|   | 
| OBB &  | coal::OBB::operator+= (const OBB &other) | 
|   | Merge the OBB and another OBB (the result is not compact).  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...
  | 
|   | 
| CoalScalar  | coal::OBB::size () const | 
|   | Size of the OBB (used in BV_Splitter to order two OBBs)  More...
  | 
|   | 
| const Vec3s &  | coal::OBB::center () const | 
|   | Center of the OBB.  More...
  | 
|   | 
| CoalScalar  | coal::OBB::width () const | 
|   | Width of the OBB.  More...
  | 
|   | 
| CoalScalar  | coal::OBB::height () const | 
|   | Height of the OBB.  More...
  | 
|   | 
| CoalScalar  | coal::OBB::depth () const | 
|   | Depth of the OBB.  More...
  | 
|   | 
| CoalScalar  | coal::OBB::volume () const | 
|   | Volume of the OBB.  More...
  | 
|   | 
| OBB  | coal::translate (const OBB &bv, const Vec3s &t) | 
|   | Translate the OBB bv.  More...
  | 
|   | 
| 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...
  | 
|   | 
| 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::obbDisjoint (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b) | 
|   | 
| bool  | coal::OBBRSS::operator== (const OBBRSS &other) const | 
|   | Equality operator.  More...
  | 
|   | 
| bool  | coal::OBBRSS::operator!= (const OBBRSS &other) const | 
|   | Difference operator.  More...
  | 
|   | 
| bool  | coal::OBBRSS::contain (const Vec3s &p) const | 
|   | Check whether the OBBRSS contains a point.  More...
  | 
|   | 
| 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 | 
|   | 
| 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...
  | 
|   | 
| OBBRSS &  | coal::OBBRSS::operator+= (const Vec3s &p) | 
|   | Merge the OBBRSS and a point.  More...
  | 
|   | 
| OBBRSS &  | coal::OBBRSS::operator+= (const OBBRSS &other) | 
|   | Merge two OBBRSS.  More...
  | 
|   | 
| OBBRSS  | coal::OBBRSS::operator+ (const OBBRSS &other) const | 
|   | Merge two OBBRSS.  More...
  | 
|   | 
| CoalScalar  | coal::OBBRSS::size () const | 
|   | Size of the OBBRSS (used in BV_Splitter to order two OBBRSS)  More...
  | 
|   | 
| const Vec3s &  | coal::OBBRSS::center () const | 
|   | Center of the OBBRSS.  More...
  | 
|   | 
| CoalScalar  | coal::OBBRSS::width () const | 
|   | Width of the OBRSS.  More...
  | 
|   | 
| CoalScalar  | coal::OBBRSS::height () const | 
|   | Height of the OBBRSS.  More...
  | 
|   | 
| CoalScalar  | coal::OBBRSS::depth () const | 
|   | Depth of the OBBRSS.  More...
  | 
|   | 
| CoalScalar  | coal::OBBRSS::volume () const | 
|   | Volume of the OBBRSS.  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) | 
|   | 
| 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::RSS::RSS () | 
|   |    More...
  | 
|   | 
| bool  | coal::RSS::operator== (const RSS &other) const | 
|   | Equality operator.  More...
  | 
|   | 
| bool  | coal::RSS::operator!= (const RSS &other) const | 
|   | Difference operator.  More...
  | 
|   | 
| bool  | coal::RSS::contain (const Vec3s &p) const | 
|   | Check whether the RSS contains a point.  More...
  | 
|   | 
| 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...
  | 
|   | 
| 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...
  | 
|   | 
| RSS &  | coal::RSS::operator+= (const Vec3s &p) | 
|   | A simple way to merge the RSS and a point, not compact.  More...
  | 
|   | 
| RSS &  | coal::RSS::operator+= (const RSS &other) | 
|   | Merge the RSS and another RSS.  More...
  | 
|   | 
| RSS  | coal::RSS::operator+ (const RSS &other) const | 
|   | Return the merged RSS of current RSS and the other one.  More...
  | 
|   | 
| CoalScalar  | coal::RSS::size () const | 
|   | Size of the RSS (used in BV_Splitter to order two RSSs)  More...
  | 
|   | 
| const Vec3s &  | coal::RSS::center () const | 
|   | The RSS center.  More...
  | 
|   | 
| CoalScalar  | coal::RSS::width () const | 
|   | Width of the RSS.  More...
  | 
|   | 
| CoalScalar  | coal::RSS::height () const | 
|   | Height of the RSS.  More...
  | 
|   | 
| CoalScalar  | coal::RSS::depth () const | 
|   | Depth of the RSS.  More...
  | 
|   | 
| CoalScalar  | coal::RSS::volume () const | 
|   | Volume of the RSS.  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...
  | 
|   | 
| 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...
  | 
|   | 
| 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...
  | 
|   | 
| 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...
  | 
|   | 
Classes of different types of bounding volume.