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

Defines interaction between NeedleObject and PbdObject. More...

#include <NeedleInteraction.h>

Inheritance diagram for NeedleInteraction:
Inheritance graph
[legend]
Collaboration diagram for NeedleInteraction:
Collaboration graph
[legend]

Public Member Functions

 NeedleInteraction (std::shared_ptr< CollidingObject > tissueObj, std::shared_ptr< RigidObject2 > needleObj, const std::string &collisionName="")
 
 NeedleInteraction (std::shared_ptr< PbdObject > tissueObj, std::shared_ptr< RigidObject2 > needleObj, const std::string &collisionName="")
 
 NeedleInteraction (std::shared_ptr< PbdObject > tissueObj, std::shared_ptr< PbdObject > needleObj, const std::string &collisionName="")
 
std::shared_ptr< NeedleEmbeddergetEmbedder () const
 
void setFriction (const double friction)
 
double getFriction () const
 
void setNeedleCompliance (const double compliance)
 
double getNeedleCompliance () const
 
void setStaticFrictionForceThreshold (const double force)
 
const double getStaticFrictionForceThreshold () const
 
void setPunctureForceThreshold (const double forceThreshold)
 
const double getPunctureForceThreshold () const
 
void initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override
 Setup connectivity of task graph.
 
 NeedleInteraction (std::shared_ptr< CollidingObject > tissueObj, std::shared_ptr< RigidObject2 > needleObj, const std::string &collisionName="")
 
- Public Member Functions inherited from imstk::RigidObjectCollision
 RigidObjectCollision (std::shared_ptr< RigidObject2 > obj1, std::shared_ptr< CollidingObject > obj2, std::string cdType="")
 
void setBaumgarteStabilization (double stiffness)
 
const double getBeta () const
 
void setFriction (double frictionalCoefficient)
 
const double getFriction () const
 
void initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override
 Setup connectivity of task graph.
 
void copyVertsToPrevious ()
 
void measureDisplacementFromPrevious ()
 
- Public Member Functions inherited from imstk::CollisionInteraction
void setCollisionDetection (std::shared_ptr< CollisionDetectionAlgorithm > colDetect)
 
void setCollisionHandlingA (std::shared_ptr< CollisionHandling > colHandlingA)
 Set the Collision Handling for object A.
 
void setCollisionHandlingB (std::shared_ptr< CollisionHandling > colHandlingB)
 Set the Collision Handling for object B.
 
void setCollisionHandlingAB (std::shared_ptr< CollisionHandling > colHandlingAB)
 Set the two-way Collision Handling for both objects.
 
std::shared_ptr< CollisionDetectionAlgorithmgetCollisionDetection () const
 
std::shared_ptr< CollisionHandlinggetCollisionHandlingA () const
 
std::shared_ptr< CollisionHandlinggetCollisionHandlingB () const
 
std::shared_ptr< CollisionHandlinggetCollisionHandlingAB () const
 
std::shared_ptr< TaskNodegetCollisionDetectionNode () const
 
std::shared_ptr< TaskNodegetCollisionHandlingANode () const
 
std::shared_ptr< TaskNodegetCollisionHandlingBNode () const
 
void updateCollisionGeometry ()
 
void visualUpdate () override
 Update the visuals, called before render.
 
virtual void setEnabled (const bool enabled)
 Enable or disable the interaction, when disabled the interaction isn't executed and no response will happen.
 
virtual bool getEnabled () const
 
- Public Member Functions inherited from imstk::SceneObject
 SceneObject (const std::string &name="SceneObject")
 
std::shared_ptr< TaskGraphgetTaskGraph () const
 Get the computational graph.
 
std::shared_ptr< GeometrygetVisualGeometry () const
 Sets the visual geometry, adds (sets the first) VisualModel.
 
void setVisualGeometry (std::shared_ptr< Geometry > geometry)
 
std::shared_ptr< VisualModelgetVisualModel (const int index) const
 Get/add visual model.
 
void addVisualModel (std::shared_ptr< VisualModel > visualModel)
 
void removeVisualModel (std::shared_ptr< VisualModel > visualModel)
 
std::shared_ptr< TaskNodegetUpdateNode () const
 Returns the computational node for updating.
 
std::shared_ptr< TaskNodegetUpdateGeometryNode () const
 Returns the computational node for updating geometry.
 
virtual void update ()
 Update the SceneObject, called during scene update.
 
virtual void updateGeometries ()
 Update the geometries.
 
virtual bool initialize ()
 Initialize the scene object.
 
void initGraphEdges ()
 Initializes the edges of the SceneObject's computational graph.
 
virtual void reset ()
 
- Public Member Functions inherited from imstk::Entity
 Entity (const std::string &name="Entity")
 
 SIGNAL (Entity, modified)
 
EntityID getID () const
 Get ID (ALWAYS query the ID in your code, DO NOT hardcode it) More...
 
virtual const std::string getTypeName () const
 
template<typename T >
std::shared_ptr< T > addComponent ()
 Create and return a component on this entity.
 
template<typename T >
std::shared_ptr< T > addComponent (std::string name)
 
void addComponent (std::shared_ptr< Component > component)
 Add existing component to entity.
 
std::shared_ptr< ComponentgetComponent (const unsigned int index) const
 Get a component by index.
 
template<typename T >
std::shared_ptr< T > getComponent () const
 Get the first component of type T.
 
template<typename T >
std::shared_ptr< T > getComponentN (const int index) const
 Get's the Nth component of type T.
 
template<class T >
bool containsComponent () const
 Check if contains component of type T.
 
bool containsComponent (std::shared_ptr< Component > component) const
 Check if contains given component.
 
template<typename T >
std::vector< std::shared_ptr< T > > getComponents () const
 Get all components of type T.
 
const std::vector< std::shared_ptr< Component > > & getComponents ()
 
void removeComponent (std::shared_ptr< Component > component)
 Remove component if it exists.
 
const std::string & getName () const
 Get/Set the name of the entity.
 
void setName (const std::string &name)
 
- Public Member Functions inherited from imstk::EventObject
template<typename T >
void postEvent (const T &e)
 Emits the event Direct observers will be immediately called, in sync Queued observers will receive the Command in their queue for later execution, reciever must implement doEvent.
 
template<typename T >
void queueEvent (const T &e)
 Queues event directly to this.
 
void doEvent ()
 Do an event, if none exists return.
 
void doAllEvents ()
 Do all the events in the event queue.
 
void foreachEvent (std::function< void(Command cmd)> func)
 Thread safe loop over all event commands, one can implement a custom handler.
 
void rforeachEvent (std::function< void(Command cmd)> func)
 thread safe reverse loop over all event commands, one can implement a custom handler
 
void clearEvents ()
 Removes all events from queue cleans up copies of the event.
 
- Public Member Functions inherited from imstk::PbdObjectCollision
 PbdObjectCollision (std::shared_ptr< PbdObject > obj1, std::shared_ptr< CollidingObject > obj2, std::string cdType="")
 Constructor for PbdObject-PbdObject or PbdObject-CollidingObject collisions.
 
void initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override
 Setup connectivity of task graph.
 
void setRestitution (const double restitution)
 Get/Set the restitution, which gives how much velocity is removed along the contact normals during contact.
 
double getRestitution () const
 
void setFriction (const double friction)
 Get/Set the friction, which gives how much velocity is removed along the tangents during contact.
 
double getFriction () const
 
bool getUseCorrectVelocity () const
 Get/Set whether velocity is corrected (in some cases this could cause instabilities)
 
void setUseCorrectVelocity (const bool useCorrectVelocity)
 
void setRigidBodyCompliance (const double compliance)
 Get/Set compliance of rigid body contacts. Defaults to 0 compliance/infinitely stiff. This is what is needed most of the time but sometimes making a contact a bit softer can be helpful.
 
double getRigidBodyCompliance () const
 
void setDeformableStiffnessA (const double stiffness)
 Get/Set stiffness of deformable contacts. Defaults to 1.0. This is what is needed most of the time but sometimes making a contact a bit softer can be helpful.
 
double getDeformableStiffnessA () const
 
void setDeformableStiffnessB (const double stiffness)
 
double getDeformableStiffnessB () const
 
- Public Member Functions inherited from imstk::PbdRigidObjectCollision
 PbdRigidObjectCollision (std::shared_ptr< PbdObject > obj1, std::shared_ptr< RigidObject2 > obj2, std::string cdType="")
 Constructor for PbdObject-PbdObject or PbdObject-CollidingObject collisions.
 
void setRestitution (const double restitution)
 
const double getRestitution () const
 
void setFriction (const double friction)
 
const double getFriction () const
 
void initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override
 Setup connectivity of task graph.
 

Protected Attributes

std::shared_ptr< NeedleEmbedderm_embedder
 
std::shared_ptr< TaskNodem_embedderNode = nullptr
 
- Protected Attributes inherited from imstk::RigidObjectCollision
std::shared_ptr< TaskNodem_copyVertToPrevNode = nullptr
 
std::shared_ptr< TaskNodem_computeDisplacementNode = nullptr
 
- Protected Attributes inherited from imstk::CollisionInteraction
std::shared_ptr< CollidingObjectm_objA = nullptr
 
std::shared_ptr< CollidingObjectm_objB = nullptr
 
std::shared_ptr< CollisionDetectionAlgorithmm_colDetect = nullptr
 Collision detection algorithm.
 
std::shared_ptr< CollisionHandlingm_colHandlingA = nullptr
 
std::shared_ptr< CollisionHandlingm_colHandlingB = nullptr
 
std::shared_ptr< TaskNodem_collisionDetectionNode = nullptr
 
std::shared_ptr< TaskNodem_collisionHandleANode = nullptr
 
std::shared_ptr< TaskNodem_collisionHandleBNode = nullptr
 
std::shared_ptr< TaskNodem_collisionGeometryUpdateNode = nullptr
 
bool m_didUpdateThisFrame = false
 
- Protected Attributes inherited from imstk::SceneObject
std::shared_ptr< TaskGraphm_taskGraph = nullptr
 Computational Graph.
 
- Protected Attributes inherited from imstk::Entity
std::vector< std::shared_ptr< Component > > m_components
 
EntityID m_ID
 unique ID of entity
 
std::string m_name
 Not unique name.
 
- Protected Attributes inherited from imstk::EventObject
ParallelUtils::SpinLock eventQueueLock
 
std::deque< CommandeventQueue
 
std::vector< std::pair< std::string, std::vector< Observer > > > queuedObservers
 
std::vector< std::pair< std::string, std::vector< Observer > > > directObservers
 
- Protected Attributes inherited from imstk::PbdObjectCollision
std::shared_ptr< TaskNodem_updatePrevGeometryCCDNode = nullptr
 

Additional Inherited Members

- Public Types inherited from imstk::EventObject
using Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> >
 
- Public Attributes inherited from imstk::RigidObjectCollision
std::shared_ptr< VecDataArray< double, 3 > > m_prevVertices
 
- Protected Member Functions inherited from imstk::CollisionInteraction
 CollisionInteraction (std::string objName, std::shared_ptr< CollidingObject > obj1, std::shared_ptr< CollidingObject > obj2, std::string cdType)
 
void updateCD ()
 Update collision.
 
void updateCHA ()
 Update handler A.
 
void updateCHB ()
 Update handler B.
 
- Protected Member Functions inherited from imstk::SceneObject
virtual void postModifiedAll ()
 Posts modified for all geometries.
 
- Static Protected Attributes inherited from imstk::Entity
static std::atomic< EntityID > m_count { 0 }
 current count of entities
 

Detailed Description

Defines interaction between NeedleObject and PbdObject.

Definition at line 18 of file NeedleInteraction.h.


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