gramods
GeometryCorrectedProjectorView.hh
1 
2 #ifndef GRAMODS_GRAPHICS_GEOMETRYCORRECTEDPROJECTORVIEW
3 #define GRAMODS_GRAPHICS_GEOMETRYCORRECTEDPROJECTORVIEW
4 
5 // Required before gmCore/OFactory.hh for some compilers
6 #include <gmCore/io_float.hh>
7 #include <gmCore/io_eigen.hh>
8 #include <gmCore/io_angle.hh>
9 
10 #include <gmGraphics/MultiscopicView.hh>
11 
12 #include <gmGraphics/Geometry.hh>
13 
14 BEGIN_NAMESPACE_GMGRAPHICS;
15 
35  : public MultiscopicView {
36 
37 public:
38 
41 
47  void traverse(Visitor *visitor) override;
48 
55  void setBufferWidth(int W);
56 
63  void setBufferHeight(int H);
64 
71  void setLinearInterpolation(bool on);
72 
80  void setTopLeftCorner(Eigen::Vector3f tlc);
81 
89  void setBottomRightCorner(Eigen::Vector3f brc);
90 
98  void setPosition(Eigen::Vector3f p);
99 
106  void setExtrinsics(gmCore::float12 M);
107 
114  void setIntrinsics(gmCore::float4 m);
115 
126  void setClipAngles(gmCore::angle4 a);
127 
135  void setOrientation(Eigen::Quaternionf q);
136 
142  void setGeometry(std::shared_ptr<Geometry> g);
143 
144  GM_OFI_DECLARE;
145 
146 protected:
147 
151  void renderFullPipeline(ViewSettings settings, Eye eye) override;
152 
153 private:
154 
155  struct Impl;
156  std::unique_ptr<Impl> _impl;
157 };
158 
159 END_NAMESPACE_GMGRAPHICS;
160 
161 #endif
Geometrically corrected projector view, a view that is undistorted by geometrical projection.
Definition: GeometryCorrectedProjectorView.hh:35
The base of Views that support multiscopic perspectives.
Definition: MultiscopicView.hh:19
std::array< float, 12 > float12
Array of 12 float.
Definition: io_float.hh:21
std::array< float, 4 > float4
Array of 4 float.
Definition: io_float.hh:18
std::array< angle, 4 > angle4
Array of 4 angle.
Definition: io_angle.hh:65
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: GeometryCorrectedProjectorView.cpp:29
Package of settings affecting the rendering.
Definition: ViewBase.hh:30