gramods
MultiscopicView.hh
1 
2 #ifndef GRAMODS_GRAPHICS_MULTISCOPICVIEW
3 #define GRAMODS_GRAPHICS_MULTISCOPICVIEW
4 
5 // Required before gmCore/OFactory.hh for some compilers
6 #include <gmCore/io_eigen.hh>
7 
8 #include <gmGraphics/View.hh>
9 
10 #include <gmGraphics/Eye.hh>
11 #include <gmGraphics/MultiscopicMultiplexer.hh>
12 
13 BEGIN_NAMESPACE_GMGRAPHICS;
14 
19  : public View {
20 
21 public:
22 
23  void renderFullPipeline(ViewSettings settings) override final;
24 
30  void traverse(Visitor *visitor) override;
31 
38  void setMultiscopicMultiplexer(std::shared_ptr<MultiscopicMultiplexer> sm) {
39  multiscopic_multiplexer = sm;
40  }
41 
42  GM_OFI_DECLARE;
43 
44 protected:
45 
49  virtual void renderFullPipeline(ViewSettings settings, Eye eye) = 0;
50 
51  std::shared_ptr<MultiscopicMultiplexer> multiscopic_multiplexer;
52 
53 };
54 
55 END_NAMESPACE_GMGRAPHICS;
56 
57 #endif
The base of Views that support multiscopic perspectives.
Definition: MultiscopicView.hh:19
virtual void renderFullPipeline(ViewSettings settings, Eye eye)=0
Renders one eye at a time, or just a mono eye.
void setMultiscopicMultiplexer(std::shared_ptr< MultiscopicMultiplexer > sm)
Sets the multiscopic multiplexing to use for rendering.
Definition: MultiscopicView.hh:38
The base of graphics View implementations.
Definition: View.hh:13
The visitor of a design pattern for automatic traversal.
Definition: Object.hh:75
An indexed eye that can be rendered.
Definition: Eye.hh:20
Package of settings affecting the rendering.
Definition: ViewBase.hh:30