Pioneer
Label3D.h
Go to the documentation of this file.
1 // Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _SCENEGRAPH_LABEL_H
5 #define _SCENEGRAPH_LABEL_H
6 /*
7  * Text geometry node, mostly for ship labels
8  */
9 #include "Node.h"
10 #include "graphics/Material.h"
11 #include "graphics/VertexBuffer.h"
12 #include "text/DistanceFieldFont.h"
13 
14 namespace Graphics {
15  class Renderer;
16  class RenderState;
17 } // namespace Graphics
18 
19 namespace SceneGraph {
20 
21  class Label3D : public Node {
22  public:
24  Label3D(const Label3D &, NodeCopyCache *cache = 0);
25  virtual Node *Clone(NodeCopyCache *cache = 0);
26  virtual const char *GetTypeName() const { return "Label3D"; }
27  void SetText(const std::string &);
28  virtual void Render(const matrix4x4f &trans, const RenderData *rd);
29  virtual void Accept(NodeVisitor &v);
30 
31  private:
33  std::unique_ptr<Graphics::VertexArray> m_geometry;
34  std::unique_ptr<Graphics::MeshObject> m_textMesh;
36  };
37 
38 } // namespace SceneGraph
39 
40 #endif
Definition: Renderer.h:44
Definition: Label3D.h:21
Label3D(Graphics::Renderer *r, RefCountedPtr< Text::DistanceFieldFont >)
Definition: Label3D.cpp:14
void SetText(const std::string &)
Definition: Label3D.cpp:48
virtual const char * GetTypeName() const
Definition: Label3D.h:26
virtual void Render(const matrix4x4f &trans, const RenderData *rd)
Definition: Label3D.cpp:67
virtual Node * Clone(NodeCopyCache *cache=0)
Definition: Label3D.cpp:43
virtual void Accept(NodeVisitor &v)
Definition: Label3D.cpp:77
Definition: NodeCopyCache.h:14
Definition: NodeVisitor.h:26
Definition: Node.h:72
Definition: Background.h:14
Definition: CityOnPlanet.h:31
Definition: Node.h:44