Classes | Typedefs | Functions
SurgSim::Collision Namespace Reference

Classes

class  BoxCapsuleContact
 Class to calculate intersections between Boxes and Capsules. More...
 
class  BoxDoubleSidedPlaneContact
 Class to calculate intersections between Boxes and Planes. More...
 
class  BoxPlaneContact
 Class to calculate intersections between Boxes and Planes. More...
 
class  BoxSphereContact
 Class to calculate intersections between a box and a sphere. More...
 
class  CapsuleSphereContact
 Class to calculate intersections between a capsule and a sphere. More...
 
class  CollisionPair
 Collision Pair class, it signifies a pair of items that should be checked with the collision algorithm, this structure will be used for input as well as output, as contacts get appended to the contacts list when found. More...
 
class  CompoundShapeContact
 
struct  Contact
 Contact data structure used when two representations touch each other The convention is that if body 1 is moved along the normal vector by a distance depth (or equivalently if body 2 is moved the same distance in the opposite direction) then the penetration depth will be reduced to zero. More...
 
class  ContactCalculation
 Base class responsible for calculating contact data between two objects. More...
 
class  ContactFilter
 Base class to implement a contact filter, the job of this class is to be executed by the ContactFiltering stage in the PhysicsManager. More...
 
class  DefaultContactCalculation
 A default calculation, it does nothing and can be used as a placeholder. More...
 
class  ElementContactFilter
 Given a DeformableCollisionRepresentation this filter can remove contacts on specific elements of that representation. More...
 
class  OctreeCapsuleContact
 
class  OctreeContact
 Abstract base class to calculate intersections between an Octree and other shapes. More...
 
class  OctreeDoubleSidedPlaneContact
 
class  OctreePlaneContact
 
class  OctreeSphereContact
 
class  Representation
 The type of collision detection. More...
 
class  SegmentMeshTriangleMeshContact
 Class to calculate intersections between a segment mesh and a triangle mesh. More...
 
class  SegmentSegmentCcdIntervalCheck
 SegmentSegmentCcdIntervalCheck uses the Interval classes including the LinearMotion and Polynomial families to quickly determine if there is a possible collision between two moving segments over a specified time interval. More...
 
class  SegmentSegmentCcdMovingContact
 SegmentSegmentCcdMovingContact computes the self collisions among a SegmentMesh under motion at two time points parametrized over the time interval [0,1]. More...
 
class  SegmentSegmentCcdStaticContact
 SegmentSegmentCcdStaticContact computes if there is contact between two segments at a specific point in time in support of the CCD calculations for moving intervals. More...
 
class  SegmentSelfContact
 SegmentSelfContact computes the self collisions among a SegmentMesh under motion at two time points parametrized over the time interval [0,1]. More...
 
class  ShapeCollisionRepresentation
 Use a Shape as a Collision Representation, any SurgSim::Physics::Representation can be used as a backing representation. More...
 
class  ShapeShapeContactCalculation
 Class that can automate the type conversion and provides a consistent interface to the typed call Takes the shapes to convert as template parameters. More...
 
class  SphereDoubleSidedPlaneContact
 Class to calculate intersections between Spheres and DoubleSidedPlanes. More...
 
class  SpherePlaneContact
 Class to calculate intersections between Spheres and Planes. More...
 
class  SphereSphereContact
 Class to calculate intersections between spheres. More...
 
class  TriangleMeshParticlesContact
 Class to calculate intersections between a triangle mesh and particles. More...
 
class  TriangleMeshPlaneContact
 Class to calculate intersections between a triangle mesh and a plane. More...
 
class  TriangleMeshSurfaceMeshContact
 Class to calculate intersections between a surface mesh and a triangle/surface mesh. More...
 
class  TriangleMeshTriangleMeshContact
 Class to calculate intersections between a triangle mesh and a triangle mesh. More...
 

Typedefs

typedef std::unordered_map< std::shared_ptr< SurgSim::Collision::Representation >, std::list< std::shared_ptr< SurgSim::Collision::Contact > > > ContactMapType
 

Functions

template<class T >
const T & pairAt (const std::pair< T, T > &p, size_t i)
 Get member of pair data via indexed access, the members of the pair have to have the same type const version. More...
 
template<class T >
T & pairAt (std::pair< T, T > &p, size_t i)
 Get member of pair data via indexed access, the members of the pair have to have the same type non-const version. More...
 

Typedef Documentation

◆ ContactMapType

typedef std::unordered_map<std::shared_ptr<SurgSim::Collision::Representation>, std::list<std::shared_ptr<SurgSim::Collision::Contact> > > SurgSim::Collision::ContactMapType

Function Documentation

◆ pairAt() [1/2]

template<class T >
const T& SurgSim::Collision::pairAt ( const std::pair< T, T > &  p,
size_t  i 
)

Get member of pair data via indexed access, the members of the pair have to have the same type const version.

Template Parameters
Tthe member type
Parameters
pthe pair
ithe index to access
Returns
p.first if index == 0 and p.second if index == 1

◆ pairAt() [2/2]

template<class T >
T& SurgSim::Collision::pairAt ( std::pair< T, T > &  p,
size_t  i 
)

Get member of pair data via indexed access, the members of the pair have to have the same type non-const version.

Template Parameters
Tthe member type
Parameters
pthe pair
ithe index to access
Returns
p.first if index == 0 and p.second if index == 1