| 
    iMSTK
    
   Interactive Medical Simulation Toolkit 
   | 
 
Collision detection that supports a geometry consisting of multiple subgeometries. For the actual calcualation the information gets passed to the appropriate shape/subshape CD algorithm. Currently Does not support adding/removing a shape during runtime. More...
#include <imstkCompoundCD.h>


Public Member Functions | |
| IMSTK_TYPE_NAME (CompoundCD) | |
| void | requestUpdate () override | 
| Compute the collision data.  | |
  Public Member Functions inherited from imstk::CollisionDetectionAlgorithm | |
| 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) | 
  Public Member Functions inherited from imstk::GeometryAlgorithm | |
| 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.  | |
Protected Member Functions | |
| bool | areInputsValid () override | 
| Check inputs are correct (always works reversibly)  More... | |
  Protected Member Functions inherited from imstk::CollisionDetectionAlgorithm | |
| virtual void | computeCollisionDataAB (std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsA, std::vector< CollisionElement > &elementsB) | 
| Compute collision data for both sides at once, default implementation just calls computeCollisionDataA and computeCollisionDataB.  | |
| 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)  | |
  Protected Member Functions inherited from imstk::GeometryAlgorithm | |
| 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 | |
  Protected Types inherited from imstk::GeometryAlgorithm | |
| using | GeometryCheck = std::function< bool(Geometry *)> | 
| using | TypeCheckContainer = std::unordered_map< size_t, GeometryCheck > | 
  Protected Attributes inherited from imstk::CollisionDetectionAlgorithm | |
| 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 | 
  Protected Attributes inherited from imstk::GeometryAlgorithm | |
| TypeCheckContainer | m_requiredTypeChecks | 
| TypeCheckContainer | m_optionalTypeChecks | 
Collision detection that supports a geometry consisting of multiple subgeometries. For the actual calcualation the information gets passed to the appropriate shape/subshape CD algorithm. Currently Does not support adding/removing a shape during runtime.
Definition at line 23 of file imstkCompoundCD.h.
      
  | 
  overrideprotectedvirtual | 
Check inputs are correct (always works reversibly)
Reimplemented from imstk::CollisionDetectionAlgorithm.
Definition at line 35 of file imstkCompoundCD.cpp.

 1.8.13