iMSTK
Interactive Medical Simulation Toolkit
imstkControllerForceText.h
1 /*
2 ** This file is part of the Interactive Medical Simulation Toolkit (iMSTK)
3 ** iMSTK is distributed under the Apache License, Version 2.0.
4 ** See accompanying NOTICE for details.
5 */
6 
7 #pragma once
8 
9 #include "imstkComponent.h"
10 #include "imstkMath.h"
11 
12 namespace imstk
13 {
14 class PbdObjectCollision;
15 class PbdObjectController;
16 class RigidObjectController;
17 class TextVisualModel;
18 
25 {
26 public:
27  ControllerForceText(const std::string& name = "ControllerForceText");
28 
32  void visualUpdate(const double& dt);
33 
37  void setController(std::shared_ptr<PbdObjectController> controller) { m_pbdController = controller; }
38  std::shared_ptr<PbdObjectController> getPbdController() const { return m_pbdController; }
39  void setController(std::shared_ptr<RigidObjectController> controller) { m_rbdController = controller; }
40  std::shared_ptr<RigidObjectController> getRbdController() const { return m_rbdController; }
42 
46  void setCollision(std::shared_ptr<PbdObjectCollision> collision) { m_collision = collision; }
47  std::shared_ptr<PbdObjectCollision> getCollision() const { return m_collision; }
49 
50  std::shared_ptr<TextVisualModel> getText() const { return m_textVisualModel; }
51 
52 protected:
53  void computePbdContactForceAndTorque(Vec3d& force, Vec3d& torque) const;
54 
55  void init() override;
56 
57 protected:
58  std::shared_ptr<TextVisualModel> m_textVisualModel = nullptr;
59  std::shared_ptr<PbdObjectCollision> m_collision = nullptr;
60  std::shared_ptr<PbdObjectController> m_pbdController = nullptr;
61  std::shared_ptr<RigidObjectController> m_rbdController = nullptr;
62  double m_t = 0.0;
63 };
64 } // namespace imstk
void init() override
Initialize the component, called at a later time after all component construction is complete...
void setCollision(std::shared_ptr< PbdObjectCollision > collision)
Get/Set the collision to display the contact force of.
Compound Geometry.
A Behaviour represents a single component system A template is used here for UpdateInfo to keep the C...
void visualUpdate(const double &dt)
Update the display of the last frames update times.
void setController(std::shared_ptr< PbdObjectController > controller)
Get/Set the controller to display the device force of.
Displays virtual coupling force text in the top right.