gramods
Renderer.hh
1 
2 #ifndef GRAMODS_GRAPHICS_RENDERER
3 #define GRAMODS_GRAPHICS_RENDERER
4 
5 #include <gmGraphics/config.hh>
6 
7 #include <gmGraphics/Node.hh>
8 #include <gmGraphics/Camera.hh>
9 
10 #include <set>
11 
12 BEGIN_NAMESPACE_GMGRAPHICS;
13 
17 class Renderer : public gmGraphics::Node {
18 
19 public:
20 
27  virtual void render(const Camera &camera, const Eigen::Affine3f &Mm) = 0;
28 
35  virtual void getNearFar(const Camera &camera,
36  const Eigen::Affine3f &Mm,
37  float &near,
38  float &far) = 0;
39 
44  void addEye(Eye e);
45 
46  GM_OFI_DECLARE;
47 
48 protected:
53  std::set<Eye> eyes;
54 };
55 
56 END_NAMESPACE_GMGRAPHICS;
57 
58 #endif
The base of graphics Camera implementations.
Definition: Camera.hh:19
The scenegraph node base.
Definition: Node.hh:20
The base of graphics Renderer implementations.
Definition: Renderer.hh:17
std::set< Eye > eyes
Eyes to render.
Definition: Renderer.hh:46
virtual void render(const Camera &camera, const Eigen::Affine3f &Mm)=0
Performs rendering of 3D objects in the scene.
virtual void getNearFar(const Camera &camera, const Eigen::Affine3f &Mm, float &near, float &far)=0
Extracts the currently optimal near and far plane distances.
An indexed eye that can be rendered.
Definition: Eye.hh:20