gramods
TransitionCoordinatesMapper.hh
1 
2 #ifndef GRAMODS_GRAPHICS_TRANSITIONCOORDINATESMAPPER
3 #define GRAMODS_GRAPHICS_TRANSITIONCOORDINATESMAPPER
4 
5 // Required before gmCore/OFactory.hh for some compilers
6 #include <gmCore/io_float.hh>
7 #include <gmCore/io_size.hh>
8 
9 #include <gmGraphics/CoordinatesMapper.hh>
10 
11 #include <GL/glew.h>
12 #include <GL/gl.h>
13 
14 BEGIN_NAMESPACE_GMGRAPHICS;
15 
22 
23 public:
24 
26  virtual ~TransitionCoordinatesMapper();
27 
31  std::string getCommonCode() override;
32 
36  std::string getTo2DCode() override;
37 
41  std::string getTo3DCode() override;
42 
46  void setCommonUniforms(GLuint program) override;
47 
55  void setTimeRange(gmCore::float2 t);
56 
64  void setFrameRange(gmCore::size2 f);
65 
72  void setRatio(float n);
73 
78  void addCoordinatesMapper(std::shared_ptr<CoordinatesMapper> m);
79 
85  void traverse(Visitor *visitor) override;
86 
87  GM_OFI_DECLARE;
88 
89 private:
90 
91  struct Impl;
92  std::unique_ptr<Impl> _impl;
93 };
94 
95 END_NAMESPACE_GMGRAPHICS;
96 
97 #endif
A CoordinatesMapper provides a mapping between 2D and 3D.
Definition: CoordinatesMapper.hh:23
Coordinates mapper that provides a transition between two other coordinates mappers.
Definition: TransitionCoordinatesMapper.hh:21
std::array< float, 2 > float2
Array of 2 float.
Definition: io_float.hh:9
std::array< size_t, 2 > size2
Array of 2 size_t.
Definition: io_size.hh:9
The visitor of a design pattern for automatic traversal.
Definition: Object.hh:75
Definition: TransitionCoordinatesMapper.cpp:17