2 #ifndef GRAMODS_GRAPHICS_VIEWBASE
3 #define GRAMODS_GRAPHICS_VIEWBASE
5 #include <gmGraphics/config.hh>
7 #include <gmGraphics/Node.hh>
8 #include <gmGraphics/Camera.hh>
9 #include <gmGraphics/Viewpoint.hh>
11 #include <gmCore/OFactory.hh>
16 BEGIN_NAMESPACE_GMGRAPHICS;
35 : frame_number(frame_number) {}
39 : frame_number(frame_number), viewpoints({vp}) {}
43 std::vector<std::shared_ptr<Viewpoint>> vps)
44 : frame_number(frame_number), viewpoints(vps) {}
49 void renderNodes(
Camera camera);
63 GLenum pixel_format = GL_RGBA8;
77 void addNode(std::shared_ptr<Node> node) {
78 nodes.push_back(node);
86 viewpoints = {viewpoint};
96 viewpoints.push_back(viewpoint);
104 void traverse(Visitor *visitor)
override;
113 void populateViewSettings(ViewSettings &settings);
116 std::vector<std::shared_ptr<Viewpoint>> viewpoints;
119 END_NAMESPACE_GMGRAPHICS;
Base type for objects in the Gramods package for standardized handling of construction,...
Definition: Object.hh:42
The base of graphics Camera implementations.
Definition: Camera.hh:19
The common base for nodes taking renderers for dispatching rendering jobs.
Definition: ViewBase.hh:23
void setViewpoint(std::shared_ptr< Viewpoint > viewpoint)
Sets the viewpoint to use in the views rendered by this ViewBase.
Definition: ViewBase.hh:85
void addViewpoint(std::shared_ptr< Viewpoint > viewpoint)
Adds a viewpoint to use in the views rendered by this ViewBase.
Definition: ViewBase.hh:95
void addNode(std::shared_ptr< Node > node)
Adds a scenegraph to the view.
Definition: ViewBase.hh:77
Package of settings affecting the rendering.
Definition: ViewBase.hh:30
size_t frame_number
The frame currently being rendered.
Definition: ViewBase.hh:54
ViewSettings(size_t frame_number, std::vector< std::shared_ptr< Viewpoint >> vps)
Creates settings associated with the specified viewpoints.
Definition: ViewBase.hh:42
Node::list nodes
The renderers to render in the view.
Definition: ViewBase.hh:57
std::vector< std::shared_ptr< Viewpoint > > viewpoints
The viewpoint currently being rendered.
Definition: ViewBase.hh:60
ViewSettings(size_t frame_number, std::shared_ptr< Viewpoint > vp)
Creates settings associated with the specified viewpoint.
Definition: ViewBase.hh:38