![]() |
Class to calculate intersections between a segment mesh and a triangle mesh. More...
#include <SurgSim/Collision/SegmentMeshTriangleMeshContact.h>
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 |
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... | |
![]() | |
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 | |
![]() | |
typedef std::array< std::array< std::shared_ptr< ContactCalculation >, Math::SHAPE_TYPE_COUNT >, Math::SHAPE_TYPE_COUNT > | TableType |
![]() | |
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 TableType & | getDcdContactTable () |
static const TableType & | getCcdContactTable () |
Class to calculate intersections between a segment mesh and a triangle mesh.
|
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 >.
std::list< std::shared_ptr< Contact > > SurgSim::Collision::ContactCalculation::calculateDcdContact |
Calculate the dcd contacts between two posed/transformed shapes.
posedShape1,posedShape2 | The two posed shape to consider for this dcd contact calculation |
|
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 >.
|
overridevirtual |
Virtual function that returns the shapes that this ContactCalculation class handles.
Implements SurgSim::Collision::ContactCalculation.