gramods
Loading...
Searching...
No Matches
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
13BEGIN_NAMESPACE_GMGRAPHICS;
14
19 : public View {
20
21public:
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
44protected:
45
49 virtual void renderFullPipeline(ViewSettings settings, Eye eye) = 0;
50
51 std::shared_ptr<MultiscopicMultiplexer> multiscopic_multiplexer;
52
53};
54
55END_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