|
iMSTK
Interactive Medical Simulation Toolkit
|
Defines interaction between NeedleObject and PbdObject. More...
#include <NeedleInteraction.h>


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< NeedleEmbedder > | getEmbedder () 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< CollisionDetectionAlgorithm > | getCollisionDetection () const |
| std::shared_ptr< CollisionHandling > | getCollisionHandlingA () const |
| std::shared_ptr< CollisionHandling > | getCollisionHandlingB () const |
| std::shared_ptr< CollisionHandling > | getCollisionHandlingAB () const |
| std::shared_ptr< TaskNode > | getCollisionDetectionNode () const |
| std::shared_ptr< TaskNode > | getCollisionHandlingANode () const |
| std::shared_ptr< TaskNode > | getCollisionHandlingBNode () 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< TaskGraph > | getTaskGraph () const |
| Get the computational graph. | |
| std::shared_ptr< Geometry > | getVisualGeometry () const |
| Sets the visual geometry, adds (sets the first) VisualModel. | |
| void | setVisualGeometry (std::shared_ptr< Geometry > geometry) |
| std::shared_ptr< VisualModel > | getVisualModel (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< TaskNode > | getUpdateNode () const |
| Returns the computational node for updating. | |
| std::shared_ptr< TaskNode > | getUpdateGeometryNode () 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< Component > | getComponent (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< NeedleEmbedder > | m_embedder |
| std::shared_ptr< TaskNode > | m_embedderNode = nullptr |
Protected Attributes inherited from imstk::RigidObjectCollision | |
| std::shared_ptr< TaskNode > | m_copyVertToPrevNode = nullptr |
| std::shared_ptr< TaskNode > | m_computeDisplacementNode = nullptr |
Protected Attributes inherited from imstk::CollisionInteraction | |
| std::shared_ptr< CollidingObject > | m_objA = nullptr |
| std::shared_ptr< CollidingObject > | m_objB = nullptr |
| std::shared_ptr< CollisionDetectionAlgorithm > | m_colDetect = nullptr |
| Collision detection algorithm. | |
| std::shared_ptr< CollisionHandling > | m_colHandlingA = nullptr |
| std::shared_ptr< CollisionHandling > | m_colHandlingB = nullptr |
| std::shared_ptr< TaskNode > | m_collisionDetectionNode = nullptr |
| std::shared_ptr< TaskNode > | m_collisionHandleANode = nullptr |
| std::shared_ptr< TaskNode > | m_collisionHandleBNode = nullptr |
| std::shared_ptr< TaskNode > | m_collisionGeometryUpdateNode = nullptr |
| bool | m_didUpdateThisFrame = false |
Protected Attributes inherited from imstk::SceneObject | |
| std::shared_ptr< TaskGraph > | m_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< Command > | eventQueue |
| 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< TaskNode > | m_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 | |
Defines interaction between NeedleObject and PbdObject.
Definition at line 18 of file NeedleInteraction.h.
1.8.13