16 #ifndef SURGSIM_PHYSICS_VIRTUALTOOLCOUPLER_H 17 #define SURGSIM_PHYSICS_VIRTUALTOOLCOUPLER_H 33 class OutputComponent;
39 class RigidRepresentation;
58 const std::shared_ptr<SurgSim::Framework::Component> getInput();
62 void setInput(
const std::shared_ptr<SurgSim::Framework::Component> input);
65 const std::shared_ptr<SurgSim::Framework::Component> getOutput();
69 void setOutput(
const std::shared_ptr<SurgSim::Framework::Component> output);
72 const std::shared_ptr<SurgSim::Framework::Component> getRepresentation();
76 void setRepresentation(
const std::shared_ptr<SurgSim::Framework::Component> rigid);
83 void setPoseName(
const std::string& poseName = SurgSim::DataStructures::Names::POSE);
85 virtual void update(
double dt)
override;
91 void overrideLinearStiffness(
double linearStiffness);
94 double getLinearStiffness();
100 void overrideLinearDamping(
double linearDamping);
103 double getLinearDamping();
109 void overrideAngularStiffness(
double angularStiffness);
112 double getAngularStiffness();
118 void overrideAngularDamping(
double angularDamping);
121 double getAngularDamping();
137 void setCalculateInertialTorques(
bool calculateInertialTorques);
143 bool getCalculateInertialTorques()
const;
146 virtual bool doInitialize()
override;
147 virtual bool doWakeUp()
override;
148 virtual int getTargetManagerType()
const override;
190 void setOptionalAttachmentPoint(
216 std::shared_ptr<SurgSim::Input::InputComponent>
m_input;
219 std::shared_ptr<SurgSim::Input::OutputComponent>
m_output;
222 std::shared_ptr<SurgSim::Physics::RigidRepresentation>
m_rigid;
269 #endif // SURGSIM_PHYSICS_VIRTUALTOOLCOUPLER_H Definition: DriveElementFromInputBehavior.cpp:27
string(TOUPPER ${DEVICE}DEVICE_UPPER_CASE) option(BUILD_DEVICE_ $
Definition: CMakeLists.txt:35
#define SURGSIM_CLASSNAME(ClassName)
Declare the class name of a class with the appropriate function header, do not use quotes...
Definition: Macros.h:21
A collection of NamedData objects.
Definition: DataGroup.h:66
Behaviors perform actions.
Definition: Behavior.h:40
Eigen::Matrix< double, 3, 1 > Vector3d
A 3D vector of doubles.
Definition: Vector.h:56