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.