iMSTK
Interactive Medical Simulation Toolkit
|
Defines the behaviour to constrain a PbdObject LineMesh or Capsule to a fixed port hole location. More...
#include <imstkPortHoleInteraction.h>
Public Member Functions | |
PortHoleInteraction (const std::string &name="PortHoleInteraction") | |
void | init () override |
Initialize the component, called at a later time after all component construction is complete. | |
std::shared_ptr< PbdObject > | getTool () const |
Get/Set the tool to be constrained. | |
void | setTool (std::shared_ptr< PbdObject > toolObject) |
std::shared_ptr< Geometry > | getToolGeometry () const |
Get/Set the tool geometry used for constraining. | |
void | setToolGeometry (std::shared_ptr< Geometry > toolGeom) |
const Vec3d & | getPortHoleLocation () const |
Get/Set the port hole location to constrain the geometry too. | |
void | setPortHoleLocation (const Vec3d &portHoleLocation) |
double | getCompliance () const |
Get/Set constraint compliance. This effects how stiff the constraint of the line to. | |
void | setCompliance (const double compliance) |
![]() | |
virtual void | update (const UpdateInfo &imstkNotUsed(updateData)) |
virtual void | visualUpdate (const UpdateInfo &imstkNotUsed(updateData)) |
void | initTaskGraphEdges () |
Setup the edges/connections of the TaskGraph. | |
std::shared_ptr< TaskGraph > | getTaskGraph () const |
![]() | |
const std::string & | getName () const |
void | setName (const std::string &name) |
std::weak_ptr< Entity > | getEntity () const |
Get parent entity. | |
void | initialize () |
Initialize the component, called at a later time after all component construction is complete. | |
Protected Member Functions | |
void | handlePortHole () |
void | initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override |
![]() | |
Behaviour (const std::string &name="Behaviour") | |
Behaviour (const bool useTaskGraph, const std::string &name="Behaviour") | |
virtual void | initGraphEdges (std::shared_ptr< TaskNode > imstkNotUsed(source), std::shared_ptr< TaskNode > imstkNotUsed(sink)) |
Setup the edges/connections of the TaskGraph. More... | |
![]() | |
Component (const std::string &name="Component") | |
Protected Attributes | |
std::shared_ptr< PbdObject > | m_toolObject = nullptr |
std::shared_ptr< Geometry > | m_toolGeom = nullptr |
Vec3d | m_portHoleLocation = Vec3d::Zero() |
double | m_compliance = 0.0001 |
std::shared_ptr< PbdRigidLineToPointConstraint > | m_portConstraint = nullptr |
std::vector< PbdConstraint * > | m_constraints |
std::shared_ptr< TaskNode > | m_portHoleHandleNode = nullptr |
std::shared_ptr< TaskNode > | m_collisionGeometryUpdateNode = nullptr |
![]() | |
std::shared_ptr< TaskGraph > | m_taskGraph = nullptr |
![]() | |
std::string | m_name |
std::weak_ptr< Entity > | m_entity |
Parent entity this component exists on. | |
Defines the behaviour to constrain a PbdObject LineMesh or Capsule to a fixed port hole location.
Alternatively a physical setup can be used when the hardware, space, and registration is available.
Definition at line 29 of file imstkPortHoleInteraction.h.