iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
imstk::CollisionHandling Class Referenceabstract

Base class for all collision handling classes. More...

#include <imstkCollisionHandling.h>

Inheritance diagram for imstk::CollisionHandling:
Inheritance graph
[legend]

Public Member Functions

virtual const std::string getTypeName () const =0
 
void setInputObjectA (std::shared_ptr< CollidingObject > objectA)
 Set the input objects.
 
void setInputObjectB (std::shared_ptr< CollidingObject > objectB)
 
std::shared_ptr< CollidingObjectgetInputObjectA () const
 Get the input objects.
 
std::shared_ptr< CollidingObjectgetInputObjectB () const
 
virtual std::shared_ptr< GeometrygetHandlingGeometryA ()
 Get the geometry used for handling defaults to the collision geometry.
 
virtual std::shared_ptr< GeometrygetHandlingGeometryB ()
 
void setInputCollisionData (std::shared_ptr< CollisionData > collisionData)
 Set/Get the input collision data used for handling.
 
void setInputCollisionData (std::shared_ptr< std::vector< std::shared_ptr< CollisionData >>> collisionVectorData)
 Set/Get the input collision data used for handling This supports collating information from multiple collision detect algorithms.
 
std::shared_ptr< const CollisionDatagetInputCollisionData () const
 
void update ()
 Handle the input collision data.
 

Protected Member Functions

virtual void handle (const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB)=0
 Handle the input collision data. Elements will be flipped (if needed) such that elementsA corresponds with inputObjectA and B with inputObjectB in the case CD is backwards from CH. More...
 
void updateCollisionData (std::shared_ptr< const CollisionData > data)
 

Protected Attributes

std::shared_ptr< CollidingObjectm_inputObjectA
 
std::shared_ptr< CollidingObjectm_inputObjectB
 
std::shared_ptr< const CollisionDatam_colData
 Collision data.
 
std::shared_ptr< std::vector< std::shared_ptr< CollisionData > > > m_colVectorData
 Expansion to allow collision detection to return multiple types of collision data.
 
std::function< void()> m_updateFunction = []() {}
 
bool m_clearData = true
 
bool m_processConstraints = true
 

Detailed Description

Base class for all collision handling classes.

Todo:
: Abstract both GeometryAlgorithm and this together

Definition at line 22 of file imstkCollisionHandling.h.

Member Function Documentation

◆ handle()

virtual void imstk::CollisionHandling::handle ( const std::vector< CollisionElement > &  elementsA,
const std::vector< CollisionElement > &  elementsB 
)
protectedpure virtual

Handle the input collision data. Elements will be flipped (if needed) such that elementsA corresponds with inputObjectA and B with inputObjectB in the case CD is backwards from CH.

Parameters
CDelements to resolve geomA
CDelements to resolve geomB

Implemented in imstk::PbdCollisionHandling, imstk::LevelSetCH, imstk::RigidBodyCH, imstk::NeedlePbdCH, imstk::BoneDrillingCH, imstk::PenaltyCH, imstk::SphCollisionHandling, NeedleRigidBodyCH, NeedlePbdCH, NeedleRigidBodyCH, and NeedleRigidBodyCH.

Here is the caller graph for this function:

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