iMSTK
Interactive Medical Simulation Toolkit
imstkAxesModel.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 "imstkVisualModel.h"
10 #include "imstkMath.h"
11 
12 namespace imstk
13 {
19 class AxesModel : public VisualModel
20 {
21 public:
22  AxesModel(const std::string& name = "AxesModel") : VisualModel(name)
23  {
24  setDelegateHint("AxesModel");
25  }
26 
27  const Vec3d& getPosition() const { return m_axesPos; }
28  void setPosition(const Vec3d& axesPos) { m_axesPos = axesPos; }
29 
30  const Quatd& getOrientation() const { return m_axesOrientation; }
31  void setOrientation(const Quatd& axesOrientation) { m_axesOrientation = axesOrientation; }
32 
33  const Vec3d& getScale() const { return m_axesScale; }
34  void setScale(const Vec3d& axesScale) { m_axesScale = axesScale; }
35 
36  bool getAxesLabelsVisible() const { return m_axesLabelsVisible; }
37  void setAxesLabelsVisible(const bool visible) { m_axesLabelsVisible = visible; }
38 
39 protected:
40  Vec3d m_axesPos = Vec3d::Zero();
41  Quatd m_axesOrientation = Quatd::Identity();
42  Vec3d m_axesScale = Vec3d::Ones();
43  bool m_axesLabelsVisible = false;
44 };
45 } // namespace imstk
Compound Geometry.
Defines an axes that should be rendered.
Contains geometric, material, and render information.