iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
NeedleEmbedder Class Reference

Implements PBD embedded tissue handling for when the needle is embedded in the tissue. More...

#include <NeedleEmbedder.h>

Collaboration diagram for NeedleEmbedder:
Collaboration graph
[legend]

Public Member Functions

void setTissueObject (std::shared_ptr< PbdObject > tissueObject)
 
std::shared_ptr< PbdObjectgetTissueObject () const
 
void setNeedleObject (std::shared_ptr< PbdObject > needleObject)
 
std::shared_ptr< PbdObjectgetNeedleObject () 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< PbdObjectm_tissueObject = nullptr
 
std::shared_ptr< PbdObjectm_needleObject = nullptr
 
std::shared_ptr< TaskNodem_pbdCHNode = nullptr
 
std::shared_ptr< CollisionDatam_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
 

Detailed Description

Implements PBD embedded tissue handling for when the needle is embedded in the tissue.

Definition at line 62 of file NeedleEmbedder.h.


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