GlobeEngine
CoatOfArmsObject.h
Go to the documentation of this file.
1 
8 #ifndef GlobeEngine_CoatOfArmsObject_h
9 #define GlobeEngine_CoatOfArmsObject_h
10 
11 #include <string>
12 #include <vector>
13 #include "PolygonFeatureObject.h"
14 #include "Cube.h"
15 #include "SceneBluePrint.h"
16 
17 namespace geGIS {
18 
20  {
21 
22  public:
25  void clear();
26  void create(std::string filename);
27  void create(std::shared_ptr<CoatOfArmsBlueprint> _blueprint, std::shared_ptr<ReferenceSystem> _referenceSystem);
28  void update();
29  void loadData(std::string filename);
30  void draw(std::shared_ptr<ge::Camera> _cam);
31 
32  // override from PolygonFeatureObject
34 
35  // if the coat of arms is a Decal system this information must be set
36  void setGBufferHandles(GLuint _colorBuffer, GLuint _depthBuffer);
37  bool isDecalSystem() const;
38 
39  private:
40  using ge::DrawableComponent::create; // implicitly hidden
41  void clearInitial();
42 
43  private:
44  std::shared_ptr<CoatOfArmsBlueprint> blueprint;
45  std::string texRepositoryURL;
46  std::vector< std::shared_ptr<ge::Texture2Drgba> > texRepository;
47  std::vector< GLuint > texHandles;
48 
49  // Decal rendering
50  std::vector< std::shared_ptr<ge::Cube> > decalCubes;
51 
52  GLuint refToGBufferColorChannel;
53  GLuint refToGBufferDepthChannel;
54  };
55 }
56 #endif
void createVAO(enum FeatureObject::GEOMETRYDRAWMODE _in)
Definition: CoatOfArmsObject.cpp:199
GEOMETRYDRAWMODE
Definition: FeatureObject.h:37
void clear()
Definition: CoatOfArmsObject.cpp:13
Definition: ClusterGrid.h:17
void create()
Definition: PolygonFeatureObject.cpp:32
void setGBufferHandles(GLuint _colorBuffer, GLuint _depthBuffer)
Definition: CoatOfArmsObject.cpp:223
Definition: CoatOfArmsObject.h:19
Definition: PolygonFeatureObject.h:31
virtual void create()=0
bool isDecalSystem() const
Definition: CoatOfArmsObject.cpp:208
void loadData(std::string filename)
Definition: CoatOfArmsObject.cpp:47
CoatOfArmsObject()
Definition: CoatOfArmsObject.cpp:4
void draw(std::shared_ptr< ge::Camera > _cam)
Definition: CoatOfArmsObject.cpp:152
void update()
Definition: CoatOfArmsObject.cpp:147
~CoatOfArmsObject()
Definition: CoatOfArmsObject.cpp:9