7 #include "imstkComponent.h" 17 class PbdRigidLineToPointConstraint;
39 std::shared_ptr<PbdObject>
getTool()
const {
return m_toolObject; }
40 void setTool(std::shared_ptr<PbdObject> toolObject);
47 void setToolGeometry(std::shared_ptr<Geometry> toolGeom);
54 void setPortHoleLocation(
const Vec3d& portHoleLocation) { m_portHoleLocation = portHoleLocation; }
62 void setCompliance(
const double compliance) { m_compliance = compliance; }
66 void handlePortHole();
68 void initGraphEdges(std::shared_ptr<TaskNode> source, std::shared_ptr<TaskNode> sink)
override;
70 std::shared_ptr<PbdObject> m_toolObject =
nullptr;
71 std::shared_ptr<Geometry> m_toolGeom =
nullptr;
72 Vec3d m_portHoleLocation = Vec3d::Zero();
73 double m_compliance = 0.0001;
75 std::shared_ptr<PbdRigidLineToPointConstraint> m_portConstraint =
nullptr;
76 std::vector<PbdConstraint*> m_constraints;
78 std::shared_ptr<TaskNode> m_portHoleHandleNode =
nullptr;
79 std::shared_ptr<TaskNode> m_collisionGeometryUpdateNode =
nullptr;
void init() override
Initialize the component, called at a later time after all component construction is complete...
const Vec3d & getPortHoleLocation() const
Get/Set the port hole location to constrain the geometry too.
A Behaviour represents a single component system A template is used here for UpdateInfo to keep the C...
std::shared_ptr< Geometry > getToolGeometry() const
Get/Set the tool geometry used for constraining.
double getCompliance() const
Get/Set constraint compliance. This effects how stiff the constraint of the line to.
std::shared_ptr< PbdObject > getTool() const
Get/Set the tool to be constrained.
Defines the behaviour to constrain a PbdObject LineMesh or Capsule to a fixed port hole location...