Public Member Functions | List of all members
SurgSim::Collision::SegmentMeshTriangleMeshContact Class Reference

Class to calculate intersections between a segment mesh and a triangle mesh. More...

#include <SurgSim/Collision/SegmentMeshTriangleMeshContact.h>

Inheritance diagram for SurgSim::Collision::SegmentMeshTriangleMeshContact:
SurgSim::Collision::ShapeShapeContactCalculation< Math::SegmentMeshShape, Math::MeshShape > SurgSim::Collision::ContactCalculation

Public Member Functions

std::pair< int, int > getShapeTypes () override
 Virtual function that returns the shapes that this ContactCalculation class handles. More...
 
std::list< std::shared_ptr< Contact > > calculateDcdContact (const Math::SegmentMeshShape &segmentMeshShape, const Math::RigidTransform3d &segmentMeshPose, const Math::MeshShape &triangleMeshShape, const Math::RigidTransform3d &triangleMeshPose) const override
 Virtual function to be overridden, this provides the typed contact calculation between two shapes it takes two shapes and their respective poses, and will return the contacts between those two shapes for shapes that return true for isTransformable(), the calculation may ignore the pose passed in the function. More...
 
std::list< std::shared_ptr< Contact > > calculateCcdContact (const Math::SegmentMeshShape &shape1AtTime0, const Math::RigidTransform3d &pose1AtTime0, const Math::SegmentMeshShape &shape1AtTime1, const Math::RigidTransform3d &pose1AtTime1, const Math::MeshShape &shape2AtTime0, const Math::RigidTransform3d &pose2AtTime0, const Math::MeshShape &shape2AtTime1, const Math::RigidTransform3d &pose2AtTime1) const override
 
- Public Member Functions inherited from SurgSim::Collision::ContactCalculation
 ContactCalculation ()
 Constructor. More...
 
virtual ~ContactCalculation ()
 Destructor. More...
 
void calculateContact (std::shared_ptr< CollisionPair > pair)
 Calculate the contacts for a given pair. More...
 
std::list< std::shared_ptr< Contact > > calculateDcdContact (const Math::PosedShape< std::shared_ptr< Math::Shape >> posedShape1, const Math::PosedShape< std::shared_ptr< Math::Shape >> posedShape2)
 Calculate the dcd contacts between two posed/transformed shapes. More...
 
std::list< std::shared_ptr< Contact > > calculateCcdContact (const Math::PosedShapeMotion< std::shared_ptr< Math::Shape >> posedShapeMotion1, const Math::PosedShapeMotion< std::shared_ptr< Math::Shape >> posedShapeMotion2)
 Calculate the ccd contacts between two posed/transformed shapes. More...
 

Additional Inherited Members

- Public Types inherited from SurgSim::Collision::ContactCalculation
typedef std::array< std::array< std::shared_ptr< ContactCalculation >, Math::SHAPE_TYPE_COUNT >, Math::SHAPE_TYPE_COUNTTableType
 
- Static Public Member Functions inherited from SurgSim::Collision::ContactCalculation
static void registerDcdContactCalculation (const std::shared_ptr< ContactCalculation > &calculation)
 Register an instance of a contact calculation in the table. More...
 
static void registerCcdContactCalculation (const std::shared_ptr< ContactCalculation > &calculation)
 Register an instance of a contact calculation in the table. More...
 
static const TableTypegetDcdContactTable ()
 
static const TableTypegetCcdContactTable ()
 

Detailed Description

Class to calculate intersections between a segment mesh and a triangle mesh.

Member Function Documentation

◆ calculateCcdContact()

std::list< std::shared_ptr< Contact > > SurgSim::Collision::SegmentMeshTriangleMeshContact::calculateCcdContact ( const Math::SegmentMeshShape shape1AtTime0,
const Math::RigidTransform3d pose1AtTime0,
const Math::SegmentMeshShape shape1AtTime1,
const Math::RigidTransform3d pose1AtTime1,
const Math::MeshShape shape2AtTime0,
const Math::RigidTransform3d pose2AtTime0,
const Math::MeshShape shape2AtTime1,
const Math::RigidTransform3d pose2AtTime1 
) const
overridevirtual

< Barycentric coordinates of P in the segment sv0sv1

< P = sv0 + segmentAlpha.sv0sv1

< Barycentric coordinates of P in triangle tv0tv1tv2

< P = tv0 + triangleAlpha.tv0tv1 + triangleBeta.tv0tv2

Reimplemented from SurgSim::Collision::ShapeShapeContactCalculation< Math::SegmentMeshShape, Math::MeshShape >.

◆ calculateDcdContact()

std::list< std::shared_ptr< Contact > > SurgSim::Collision::SegmentMeshTriangleMeshContact::calculateDcdContact ( const Math::SegmentMeshShape shape1,
const Math::RigidTransform3d pose1,
const Math::MeshShape shape2,
const Math::RigidTransform3d pose2 
) const
overridevirtual

Virtual function to be overridden, this provides the typed contact calculation between two shapes it takes two shapes and their respective poses, and will return the contacts between those two shapes for shapes that return true for isTransformable(), the calculation may ignore the pose passed in the function.

Reimplemented from SurgSim::Collision::ShapeShapeContactCalculation< Math::SegmentMeshShape, Math::MeshShape >.

◆ getShapeTypes()

std::pair< int, int > SurgSim::Collision::SegmentMeshTriangleMeshContact::getShapeTypes ( )
overridevirtual

Virtual function that returns the shapes that this ContactCalculation class handles.

Returns
Return the shape types this class handles.

Implements SurgSim::Collision::ContactCalculation.


The documentation for this class was generated from the following files: