iMSTK
Interactive Medical Simulation Toolkit
imstkTextVisualModel.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 "imstkColor.h"
11 
12 namespace imstk
13 {
19 
21 {
22 public:
23 
24  enum class DisplayPosition
25  {
26  LowerLeft,
27  UpperLeft,
28  UpperRight,
29  LowerRight,
30  CenterCenter
31  };
32 
33  TextVisualModel(const std::string& name = "TextVisualModel") : VisualModel(name)
34  {
35  setDelegateHint("TextRenderDelegate");
36  }
37 
41  void setText(const std::string& text) { m_text = text; }
42  const std::string& getText() const { return m_text; }
44 
48  const Color& getTextColor() const { return m_textColor; }
49  void setTextColor(const Color& color) { m_textColor = color; }
51 
55  double getFontSize() const { return m_fontSize; }
56  void setFontSize(const double fontSize) { m_fontSize = fontSize; }
58 
62  void setVisibility(const bool visible) { m_visible = visible; }
63  const bool getVisibility() const { return m_visible; }
65 
69  void setPosition(const DisplayPosition position) { m_position = position; }
70  DisplayPosition getPosition() const { return m_position; }
72 
73 protected:
74  std::string m_text = "";
75  Color m_textColor = Color::White;
76  double m_fontSize = 20.0;
77  bool m_visible = true;
78 
79  DisplayPosition m_position = DisplayPosition::CenterCenter;
80 };
81 } // namespace imstk
double getFontSize() const
Font size.
Compound Geometry.
void setText(const std::string &text)
Text to be plotted.
const Color & getTextColor() const
Text Color.
Color in RGB space.
Definition: imstkColor.h:24
static Color White
Various commonly used colors.
Definition: imstkColor.h:112
Renders text to the screen.
void setVisibility(const bool visible)
Text visibility.
Contains geometric, material, and render information.
void setPosition(const DisplayPosition position)
Text Location.