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

  T | the member type

Parameters

  p | the pair
  i | the 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

  T | the member type

Parameters

  p | the pair
  i | the index to access

Returns
  p.first if index == 0 and p.second if index == 1