gramods
TextureProjectedView.hh
1 
2 #ifndef GRAMODS_GRAPHICS_TEXTUREPROJECTEDVIEW
3 #define GRAMODS_GRAPHICS_TEXTUREPROJECTEDVIEW
4 
5 // Required before gmCore/OFactory.hh for some compilers
6 #include <gmCore/io_eigen.hh>
7 #include <gmCore/io_size.hh>
8 
9 #include <gmGraphics/MultiscopicView.hh>
10 #include <gmGraphics/TextureInterface.hh>
11 
12 BEGIN_NAMESPACE_GMGRAPHICS;
13 
21  : public MultiscopicView {
22 
23 public:
24 
26  virtual ~TextureProjectedView();
27 
34  void setBufferResolution(gmCore::size2 R);
35 
42  void setLinearInterpolation(bool on);
43 
49  void renderFullPipeline(ViewSettings settings, Eye eye) override;
50 
56  void traverse(Visitor *visitor) override;
57 
63  void setTexture(std::shared_ptr<TextureInterface> tex);
64 
75  void setEdgeToEdge(bool on);
76 
83  void setWarpScale(Eigen::Vector3f scale);
84 
92  void setWarpOffset(Eigen::Vector3f offset);
93 
94  GM_OFI_DECLARE;
95 
96 private:
97 
98  struct Impl;
99  std::unique_ptr<Impl> _impl;
100 };
101 
102 END_NAMESPACE_GMGRAPHICS;
103 
104 #endif
The base of Views that support multiscopic perspectives.
Definition: MultiscopicView.hh:19
The TextureProjectedView uses a texture to define the 3D position of each render target buffer pixel,...
Definition: TextureProjectedView.hh:21
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
An indexed eye that can be rendered.
Definition: Eye.hh:20
Definition: TextureProjectedView.cpp:21
Package of settings affecting the rendering.
Definition: ViewBase.hh:30