|
iMSTK
Interactive Medical Simulation Toolkit
|
Implements PBD embedded tissue handling for when the needle is embedded in the tissue. More...
#include <NeedleEmbedder.h>

Public Member Functions | |
| void | setTissueObject (std::shared_ptr< PbdObject > tissueObject) |
| std::shared_ptr< PbdObject > | getTissueObject () const |
| void | setNeedleObject (std::shared_ptr< PbdObject > needleObject) |
| std::shared_ptr< PbdObject > | getNeedleObject () const |
| void | setCollisionData (std::shared_ptr< CollisionData > cdData) |
| void | setCollisionHandleNode (std::shared_ptr< TaskNode > pbdCHNode) |
| void | setFriction (const double friction) |
| double | getFriction () const |
| void | setCompliance (const double compliance) |
| double | getCompliance () const |
| void | setStaticFrictionForceThreshold (const double force) |
| const double | getStaticFrictionForceThreshold () const |
| void | setPunctureForceThreshold (const double forceThreshold) |
| const double | getPunctureForceThreshold () const |
| void | update () |
| Add embedding constraints based off contact data We need to add the constraint once and then update it later. | |
Public Attributes | |
| std::vector< Vec3d > | m_debugEmbeddingPoints |
| Used for debug visualization. | |
| std::vector< Vec3i > | m_debugEmbeddedTriangles |
Protected Member Functions | |
| virtual void | addFaceEmbeddingConstraint (TissueData &tissueData, NeedleData &needleData, int v1, int v2, int v3, const Vec3d &iPt) |
| Adds embedding constraint (ie: The constraint maintained after puncture) | |
Protected Attributes | |
| std::shared_ptr< PbdObject > | m_tissueObject = nullptr |
| std::shared_ptr< PbdObject > | m_needleObject = nullptr |
| std::shared_ptr< TaskNode > | m_pbdCHNode = nullptr |
| std::shared_ptr< CollisionData > | m_cdData = nullptr |
| std::unordered_map< TriCell, std::shared_ptr< EmbeddingConstraint > > | m_faceConstraints |
| std::vector< PbdConstraint * > | m_constraints |
| List of PBD constraints. | |
| double | m_friction = 0.0 |
| Coefficient of friction (1.0 = full frictional force, 0.0 = none) | |
| double | m_compliance = 0.000001 |
| double | m_staticFrictionForceThreshold = 0.0 |
| double | m_forceThreshold = 10.0 |
| VecDataArray< double, 3 > | tissuePrevVertices |
| VecDataArray< double, 3 > | needlePrevVertices |
Implements PBD embedded tissue handling for when the needle is embedded in the tissue.
Definition at line 62 of file NeedleEmbedder.h.
1.8.13