iMSTK
Interactive Medical Simulation Toolkit
imstkSceneObjectController.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 "imstkTrackingDeviceControl.h"
10 
11 #include <functional>
12 
13 namespace imstk
14 {
15 class SceneObject;
16 
23 {
24 public:
25  SceneObjectController(const std::string& name = "SceneObjectController");
26  ~SceneObjectController() override = default;
27 
31  void update(const double& dt) override;
32 
36  std::shared_ptr<SceneObject> getControlledObject() const { return m_sceneObject; }
37  virtual void setControlledObject(std::shared_ptr<SceneObject> so) { m_sceneObject = so; }
39 
40 protected:
41  std::shared_ptr<SceneObject> m_sceneObject;
42 };
43 } // namespace imstk
std::shared_ptr< SceneObject > m_sceneObject
SceneObject controlled by the Tracker.
std::shared_ptr< SceneObject > getControlledObject() const
Get/Set controlled scene object.
Compound Geometry.
This class implements once tracking controller controlling one scene object.
void update(const double &dt) override
Update controlled scene object using latest tracking information.
Base class for all DeviceControls that track something in space (position and orientation) ...