Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
SceneText.hh
1 #ifndef __SCENE_TEXT_HH__
2 #define __SCENE_TEXT_HH__
3 
4 #include <bias_config.h>
5 
6 #ifdef BIAS_HAVE_FONTGL
7 #ifdef BIAS_HAVE_OPENGL
8 #include <Base/Common/BIASpragmaStart.hh>
9 #include <Utils/DrawTextGL.hh>
10 #include <Base/Common/BIASpragmaEnd.hh>
11 #endif
12 #endif
13 
14 #ifdef BIAS_HAVE_XML2
15 #include <Base/Common/XMLBase.hh>
16 #endif
17 
18 #include <GLviewer/Scenes/SceneBase.hh>
19 #include <Base/Geometry/HomgPoint3D.hh>
20 #include <Base/Math/RGB.hh>
21 #include <string>
22 #include <vector>
23 
24 namespace BIAS {
25 
26 
27  class BIASGLviewer_EXPORT RenderContextBase;
28  /** \class SceneText
29  \brief wrapping bias::drawtextgl to BIAS::Scene
30  \author koeser
31  \ingroup g_glviewer
32  */
33  class BIASGLviewer_EXPORT SceneText : public SceneBase
34 #ifdef BIAS_HAVE_XML2
35  , public BIAS::XMLBase
36 #endif
37  {
38  public:
39  virtual ~SceneText() {}
40  SceneText(bool MakeDemoText = true);
41 
42  // a context is required to get a DC handle for init
43  void SetContext(RenderContextBase *c){Context_ = c;};
44 
45  void SetText(const std::vector<BIAS::HomgPoint3D>& textPositions,
46  const std::vector<std::string>& textContents,
47  const std::vector<BIAS::RGBf>& colors);
48 
49  unsigned int AddText(const BIAS::HomgPoint3D& textPositions,
50  const std::string& textContents,
51  const BIAS::RGBf& colors) ;
52 
53  void RemoveText(unsigned int);
54  void UpdateText(unsigned int,const BIAS::HomgPoint3D& textPositions,
55  const std::string& textContents,
56  const BIAS::RGBf& colors );
57 
58  void Clear() {
59  textPositions_.clear();
60  textContents_.clear();
61  textColors_.clear();
62  }
63  protected:
64  virtual void Draw();
65 
66 
67 #ifdef BIAS_HAVE_XML2
68  /** @brief specialization of XML block name function */
69  virtual int XMLGetClassName(std::string& TopLevelTag,
70  double& Version) const;
71 
72  /** @brief specialization of XML write function */
73  virtual int XMLOut(const xmlNodePtr Node, BIAS::XMLIO& XMLObject) const;
74 
75  /** @brief specialization of XML read function */
76  virtual int XMLIn(const xmlNodePtr Node, BIAS::XMLIO& XMLObject);
77 #endif
78 
79 #ifdef BIAS_HAVE_OPENGL
80 #ifdef BIAS_HAVE_FONTGL
82 #endif
83 #endif
84  std::map<unsigned int,BIAS::HomgPoint3D> textPositions_;
85  std::map<unsigned int,std::string> textContents_;
86  std::map<unsigned int,BIAS::RGBf> textColors_;
87  unsigned int NextIndex_;
88  std::string fontName_;
92  };
93 }//end of namespace
94 
95 #endif
BIAS::DrawTextGL drawer_
Definition: SceneText.hh:81
virtual ~SceneText()
Definition: SceneText.hh:39
bool isInitialized_
Definition: SceneText.hh:90
wrapping bias::drawtextgl to BIAS::Scene
Definition: SceneText.hh:33
Wrapper class for reading and writing XML files based on the XML library libxml2. ...
Definition: XMLIO.hh:72
std::map< unsigned int, BIAS::HomgPoint3D > textPositions_
Definition: SceneText.hh:84
unsigned int NextIndex_
Definition: SceneText.hh:87
Base class with interface for xml output.
Definition: XMLBase.hh:56
class HomgPoint3D describes a point with 3 degrees of freedom in projective coordinates.
Definition: HomgPoint3D.hh:61
std::map< unsigned int, std::string > textContents_
Definition: SceneText.hh:85
Base class for all scenes.
Definition: SceneBase.hh:68
std::map< unsigned int, BIAS::RGBf > textColors_
Definition: SceneText.hh:86
std::string fontName_
Definition: SceneText.hh:88
RenderContextBase * Context_
Definition: SceneText.hh:91
Draw text to OpenGL as 2D bitmap font.
Definition: DrawTextGL.hh:71
void SetContext(RenderContextBase *c)
Definition: SceneText.hh:43
Base for all classes creating interface between GL and &quot;window manager&quot;.