coal
3.0.1
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
|
►Nboost | |
►Nserialization | |
►Ninternal | |
CBVSplitterAccessor | |
CBVHModelBaseAccessor | |
CBVHModelAccessor | |
CConvexBaseAccessor | |
CConvexAccessor | |
CHeightFieldAccessor | |
CKDOPAccessor | |
COcTreeAccessor | |
►Ncoal | Main namespace |
►Ndetail | |
►Nimplementation_array | |
CSelectImpl | |
CSelectImpl< S, AABB > | |
CHierarchyTree | Class for hierarchy tree structure |
CnodeBaseLess | Functor comparing two nodes |
CNodeBase | |
CUpdateImpl | |
CSelectImpl | |
CSelectImpl< S, AABB > | |
CHierarchyTree | Class for hierarchy tree structure |
Cit_recursion_node | Class describes the information needed when we take the right branch in searching for intervals but possibly come back and check the left branch as well |
CIntervalTree | Interval tree |
CIntervalTreeNode | The node for interval tree |
CNodeBase | Dynamic AABB tree node |
CSimpleHashTable | A simple hash table implemented as multiple buckets. HashFnc is any extended hash function: HashFnc(key) = {index1, index2, ..., } |
CSimpleInterval | Interval trees implemented using red-black-trees as described in the book Introduction_To_Algorithms_ by Cormen, Leisserson, and Rivest |
Cunordered_map_hash_table | |
CSparseHashTable | A hash table implemented using unordered_map |
CSpatialHash | Spatial hash function: hash an AABB to a set of integer values |
►Ndetails | |
CUpdateBoundingVolume | |
CUpdateBoundingVolume< AABB > | |
►CGJK | Class for GJK algorithm |
CSimplex | A simplex is a set of up to 4 vertices. Its rank is the number of vertices it contains |
CSimplexV | |
►CEPA | Class for EPA algorithm |
CSimplexFace | |
CSimplexFaceList | The simplex list of EPA is a linked list of faces. Note: EPA's linked list does not own any memory. The memory it refers to is contiguous and owned by a std::vector |
CSimplexHorizon | |
CMinkowskiDiff | Minkowski difference class of two shapes |
CShapeSupportData | Stores temporary data for the computation of support points |
CLargeConvex | Cast a ConvexBase to a LargeConvex to use the log version of getShapeSupport . This is much faster than the linear version of getShapeSupport when a ConvexBase has more than a few dozen of vertices |
CSmallConvex | See LargeConvex |
►Ninternal | |
CTriangleAndVertices | |
CLoader | |
Cmemory_footprint_evaluator<::coal::BVHModel< BV > > | |
Cmemory_footprint_evaluator | |
►Nserialization | |
►Ndetail | |
Cinit_cast_register | |
Ccast_register_initializer | |
Cregister_type< CollisionGeometry > | |
Cregister_type | |
CSerializer | |
CNaiveCollisionManager | Brute force N-body collision manager |
CCollisionCallBackBase | Base callback class for collision queries. This class can be supersed by child classes to provide desired behaviors according to the application (e.g, only listing the potential CollisionObjects in collision) |
CDistanceCallBackBase | Base callback class for distance queries. This class can be supersed by child classes to provide desired behaviors according to the application (e.g, only listing the potential CollisionObjects in collision) |
CBroadPhaseCollisionManager | Base class for broad phase collision. It helps to accelerate the collision/distance between N objects. Also support self collision, self distance and collision/distance with another M objects |
CBroadPhaseContinuousCollisionManager | Base class for broad phase continuous collision. It helps to accelerate the continuous collision/distance between N objects. Also support self collision, self distance and collision/distance with another M objects |
CDynamicAABBTreeCollisionManager | |
CDynamicAABBTreeArrayCollisionManager | |
►CIntervalTreeCollisionManager | Collision manager based on interval tree |
CEndPoint | SAP end point |
CSAPInterval | Extention interval tree's interval to SAP interval, adding more information |
►CSaPCollisionManager | Rigorous SAP collision manager |
CEndPoint | End point for an interval |
CisNotValidPair | Functor to help remove collision pairs no longer valid (i.e., should be culled away) |
CisUnregistered | Functor to help unregister one object |
CSaPAABB | SAP interval for one object |
CSaPPair | A pair of objects that are not culling away and should further check collision |
CSpatialHashingCollisionManager | Spatial hashing collision mananger |
CSSaPCollisionManager | Simple SAP collision manager |
CCollisionData | Collision data stores the collision request and the result given by collision algorithm |
CDistanceData | Distance data stores the distance request and the result given by distance algorithm |
CCollisionCallBackDefault | Default collision callback to check collision between collision objects |
CDistanceCallBackDefault | Default distance callback to check collision between collision objects |
CCollisionCallBackCollect | Collision callback to collect collision pairs potentially in contacts |
CAABB | A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points |
CBVNodeBase | BVNodeBase encodes the tree structure for BVH |
CBVNode | A class describing a bounding volume node. It includes the tree structure providing in BVNodeBase and also the geometry data provided in BV template parameter |
CKDOP | 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 |
CkIOS | A class describing the kIOS collision structure, which is a set of spheres |
COBB | Oriented bounding box class |
COBBRSS | Class merging the OBB and RSS, can handle collision and distance simultaneously |
CRSS | A class for rectangle sphere-swept bounding volume |
CBVHFrontNode | Front list acceleration for collision Front list is a set of internal and leaf nodes in the BVTT hierarchy, where the traversal terminates while performing a query during a given time instance. The front list reflects the subset of a BVTT that is traversed for that particular proximity query |
CBVFitter | The class for the default algorithm fitting a bounding volume to a set of points |
CBVSplitter | A class describing the split rule that splits each BV node |
CBVHModelBase | A base class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as a degraded version of mesh) |
CBVHModel | A class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as a degraded version of mesh) |
CComputeCollision | This class reduces the cost of identifying the geometry pair. This is mostly useful for repeated shape-shape queries |
CContact | Contact information returned by collision |
CQueryRequest | Base class for all query requests |
CQueryResult | Base class for all query results |
CCollisionRequest | Request to the collision algorithm |
CCollisionResult | Collision result |
CContactPatch | This structure allows to encode contact patches. A contact patch is defined by a set of points belonging to a subset of a plane passing by p and supported by n , where n = Contact::normal and p = Contact::pos . If we denote by P this plane and by S1 and S2 the first and second shape of a collision pair, a contact patch is represented as a polytope which vertices all belong to P & S1 & S2 , where & denotes the set-intersection. Since a contact patch is a subset of a plane supported by n , it has a preferred direction. In Coal, the Contact::normal points from S1 to S2. In the same way, a contact patch points by default from S1 to S2 |
CContactPatchRequest | Request for a contact patch computation |
CContactPatchResult | Result for a contact patch computation |
CDistanceRequest | Request to the distance computation |
CDistanceResult | Distance result |
CCollisionFunctionMatrix | Collision matrix stores the functions for collision between different types of objects and provides a uniform call interface |
CCollisionGeometry | The geometry for the object for collision or distance computation |
CCollisionObject | Object for collision or distance computation, contains the geometry and the transform information |
CContactPatchSolver | Solver to compute contact patches, i.e. the intersection between two contact surfaces projected onto the shapes' separating plane. Otherwise said, a contact patch is simply the intersection between two support sets: the support set of shape S1 in direction n and the support set of shape S2 in direction -n , where n is the contact normal (satisfying the optimality conditions of GJK/EPA) |
CComputeContactPatch | This class reduces the cost of identifying the geometry pair. This is usefull for repeated shape-shape queries |
CContactPatchFunctionMatrix | The contact patch matrix stores the functions for contact patches computation between different types of objects and provides a uniform call interface |
CTriangle | Triangle with 3 indices for points |
CQuadrilateral | Quadrilateral with 4 indices for points |
CComputeDistance | |
CDistanceFunctionMatrix | Distance matrix stores the functions for distance between different types of objects and provides a uniform call interface |
CHFNodeBase | |
CHFNode | |
CHeightField | Data structure depicting a height field given by the base grid dimensions and the elevation along the grid |
CBVFitterTpl | The class for the default algorithm fitting a bounding volume to a set of points |
CBVFitter< OBB > | Specification of BVFitter for OBB bounding volume |
CBVFitter< RSS > | Specification of BVFitter for RSS bounding volume |
CBVFitter< kIOS > | Specification of BVFitter for kIOS bounding volume |
CBVFitter< OBBRSS > | Specification of BVFitter for OBBRSS bounding volume |
CBVFitter< AABB > | Specification of BVFitter for AABB bounding volume |
CComputeShapeShapeContactPatch | Shape-shape contact patch computation. Assumes that csolver and the ContactPatchResult have already been set up by the ContactPatchRequest |
CComputeShapeShapeContactPatch< OtherShapeType, Plane > | |
CComputeShapeShapeContactPatch< Plane, OtherShapeType > | |
CComputeShapeShapeContactPatch< OtherShapeType, Halfspace > | |
CComputeShapeShapeContactPatch< Halfspace, OtherShapeType > | |
CComputeShapeShapeContactPatch< Plane, Plane > | |
CComputeShapeShapeContactPatch< Plane, Halfspace > | |
CComputeShapeShapeContactPatch< Halfspace, Plane > | |
CComputeShapeShapeContactPatch< Halfspace, Halfspace > | |
CTransform3s | Simple transform class used locally by InterpMotion |
CMeshLoader | |
►CCachedMeshLoader | |
CKey | |
CValue | |
CGJKSolver | Collision and distance solver based on the GJK and EPA algorithms. Originally, GJK and EPA were implemented in fcl which itself took inspiration from the code of the GJK in bullet. Since then, both GJK and EPA have been largely modified to be faster and more robust to numerical accuracy and edge cases |
COcTree | Octree is one type of collision geometry which can encode uncertainty information in the sensor data |
CConvex | Convex polytope |
CShapeBase | Base class for all basic geometric shapes |
CTriangleP | Triangle stores the points instead of only indices of points |
CBox | Center at zero point, axis aligned box |
CSphere | Center at zero point sphere |
CEllipsoid | Ellipsoid centered at point zero |
CCapsule | Capsule It is \( { x~\in~\mathbb{R}^3, d(x, AB) \leq radius } \) where \( d(x, AB) \) is the distance between the point x and the capsule segment AB, with \( A = (0,0,-halfLength), B = (0,0,halfLength) \) |
CCone | Cone The base of the cone is at \( z = - halfLength \) and the top is at \( z = halfLength \) |
CCylinder | Cylinder along Z axis. The cylinder is defined at its centroid |
►CConvexBase | Base for convex polytope |
CNeighbors | |
CSupportWarmStartPolytope | The support warm start polytope contains certain points of this which are support points in specific directions of space. This struct is used to warm start the support function computation for large meshes (num_points > 32) |
CHalfspace | Half Space: this is equivalent to the Plane in ODE. A Half space has a priviledged direction: the direction of the normal. The separation plane is defined as n * x = d; Points in the negative side of the separation plane (i.e. {x | n * x < d}) are inside the half space and points in the positive side of the separation plane (i.e. {x | n * x > d}) are outside the half space. Note: prefer using a Halfspace instead of a Plane if possible, it has better behavior w.r.t. collision detection algorithms |
CPlane | Infinite plane. A plane can be viewed as two half spaces; it has no priviledged direction. Note: prefer using a Halfspace instead of a Plane if possible, it has better behavior w.r.t. collision detection algorithms |
Cshape_traits_base | |
Cshape_traits | |
Cshape_traits< TriangleP > | |
Cshape_traits< Box > | |
Cshape_traits< Sphere > | |
Cshape_traits< Ellipsoid > | |
Cshape_traits< Capsule > | |
Cshape_traits< Cone > | |
Cshape_traits< Cylinder > | |
Cshape_traits< ConvexBase > | |
Cshape_traits< Halfspace > | |
CCPUTimes | |
CTimer | This class mimics the way "boost/timer/timer.hpp" operates while using the modern std::chrono library. Importantly, this class will only have an effect for C++11 and more |
CTraversalTraitsCollision | |
CTraversalTraitsDistance | |
CMeshShapeDistanceTraversalNodekIOS | |
CMeshShapeDistanceTraversalNodeOBBRSS | |
CMeshShapeDistanceTraversalNodeRSS | Traversal node for distance between mesh and shape, when mesh BVH is one of the oriented node (RSS, kIOS, OBBRSS) |