gramods
SpatialPlanarView.hh
1 
2 #ifndef GRAMODS_GRAPHICS_SPATIALPLANARVIEW
3 #define GRAMODS_GRAPHICS_SPATIALPLANARVIEW
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 BEGIN_NAMESPACE_GMGRAPHICS;
13 
27  : public MultiscopicView {
28 
29 public:
30 
32  virtual ~SpatialPlanarView();
33 
41  void setTopLeftCorner(Eigen::Vector3f tlc);
42 
50  void setBottomRightCorner(Eigen::Vector3f brc);
51 
59  void setUpDirection(Eigen::Vector3f up);
60 
70  void setPosition(Eigen::Vector3f p);
71 
84  void setClipAngles(gmCore::angle4 a);
85 
95  void setOrientation(Eigen::Quaternionf q);
96 
104  void setDistance(float d);
105 
106  GM_OFI_DECLARE;
107 
108 private:
109 
110  void renderFullPipeline(ViewSettings settings, Eye eye) override;
111 
112  struct Impl;
113  std::unique_ptr<Impl> _impl;
114 };
115 
116 END_NAMESPACE_GMGRAPHICS;
117 
118 #endif
The base of Views that support multiscopic perspectives.
Definition: MultiscopicView.hh:19
This view provides skewed frustum projection of the renderers, on a planar projection surface.
Definition: SpatialPlanarView.hh:27
std::array< angle, 4 > angle4
Array of 4 angle.
Definition: io_angle.hh:65
An indexed eye that can be rendered.
Definition: Eye.hh:20
Definition: SpatialPlanarView.cpp:20
Package of settings affecting the rendering.
Definition: ViewBase.hh:30