iMSTK
Interactive Medical Simulation Toolkit
|
PointSet to Capsule collision detection. Generates point-direction contact data. By default only generates contact data for the pointset. More...
#include <imstkPointSetToCapsuleCD.h>
Protected Member Functions | |
void | computeCollisionDataAB (std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsA, std::vector< CollisionElement > &elementsB) override |
Compute collision data for AB simultaneously. | |
void | computeCollisionDataA (std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsA) override |
Compute collision data for side A. | |
void | computeCollisionDataB (std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsB) override |
Compute collision data for side B. | |
![]() | |
virtual bool | areInputsValid () override |
Check inputs are correct (always works reversibly) More... | |
virtual void | requestUpdate () override |
Compute the collision data. | |
virtual void | computeCollisionDataA (std::shared_ptr< Geometry > imstkNotUsed(geomA), std::shared_ptr< Geometry > imstkNotUsed(geomB), std::vector< CollisionElement > &imstkNotUsed(elementsA)) |
Compute collision data for side A (implement as if flip=true) | |
virtual void | computeCollisionDataB (std::shared_ptr< Geometry > imstkNotUsed(geomA), std::shared_ptr< Geometry > imstkNotUsed(geomB), std::vector< CollisionElement > &imstkNotUsed(elementsB)) |
Compute collision data for side B (implement as if flip=true) | |
![]() | |
void | setOutput (std::shared_ptr< Geometry > inputGeometry, const size_t port=0) |
Set the output at the port. | |
template<typename T > | |
void | setRequiredInputType (const size_t port) |
Declares the type for the port with the given number, also defines that the give port is required for the filter to run correctly. | |
template<typename T > | |
void | setOptionalInputType (const size_t port) |
Declares the type for the port with the given number, the data for this port is optional and may be omitted. | |
void | setNumInputPorts (const size_t numPorts) |
Get/Set the amount of input ports. | |
imstkGetMacro (NumInputPorts, size_t) | |
void | setNumOutputPorts (const size_t numPorts) |
Get/Set the amount of output ports. | |
imstkGetMacro (NumOutputPorts, size_t) | |
Additional Inherited Members | |
![]() | |
virtual const std::string | getTypeName () const =0 |
Returns collision detection type string name. | |
const std::shared_ptr< CollisionData > | getCollisionData () const |
Returns output collision data. | |
const std::shared_ptr< CollisionData > | getCollisionData (int i) const |
const std::shared_ptr< std::vector< std::shared_ptr< CollisionData > > > & | getCollisionDataVector () const |
size_t | getCollisionDataVectorSize () const |
void | setGenerateCD (const bool generateA, const bool generateB) |
If generateA is false, CD data will not be generated for input0,A Similarly, if generateB is false, CD data will not be generated for input1,B. | |
void | setInputGeometryA (std::shared_ptr< Geometry > geometryA) |
void | setInputGeometryB (std::shared_ptr< Geometry > geometryB) |
![]() | |
std::shared_ptr< Geometry > | getInput (size_t port=0) const |
Returns input geometry given port, returns nullptr if doesn't exist. | |
std::shared_ptr< Geometry > | getOutput (size_t port=0) const |
Returns output geometry given port, returns nullptr if doesn't exist. | |
void | setInput (std::shared_ptr< Geometry > inputGeometry, size_t port=0) |
Set the input at the port. | |
void | update () |
Do the actual algorithm. | |
![]() | |
using | GeometryCheck = std::function< bool(Geometry *)> |
using | TypeCheckContainer = std::unordered_map< size_t, GeometryCheck > |
![]() | |
std::shared_ptr< std::vector< std::shared_ptr< CollisionData > > > | m_collisionDataVector |
bool | m_flipOutput = false |
bool | m_generateCD_A = true |
bool | m_generateCD_B = true |
bool | m_computeColDataAImplemented = true |
bool | m_computeColDataBImplemented = true |
![]() | |
TypeCheckContainer | m_requiredTypeChecks |
TypeCheckContainer | m_optionalTypeChecks |
PointSet to Capsule collision detection. Generates point-direction contact data. By default only generates contact data for the pointset.
Definition at line 21 of file imstkPointSetToCapsuleCD.h.