79 typedef std::map<std::size_t, std::shared_ptr<SceneObject> >::const_iterator
ConstIterator;
84 void init(
const std::string& scenePath);
87 void remRender(std::shared_ptr<SceneObject>&
object);
88 void getRender(
size_t idx, std::shared_ptr<SceneObject>&
object)
const;
93 void addShader(
const std::string& name, std::unique_ptr<Shader>& shader);
107 bool getObject(
const std::string& name, std::shared_ptr<SceneObject>&
object,
size_t pos = 1)
const;
126 static std::shared_ptr<SceneObject>
get(
const ConstIterator& it) {
return it->second; }
144 std::map<std::string, std::unique_ptr<Model> >
models;
145 std::map<std::string, std::unique_ptr<Shader> >
shaders;
146 std::map<std::string, std::unique_ptr<Texture> >
textures;
147 std::map<std::size_t, std::shared_ptr<SceneObject> >
renderList;
149 bool getObjectRecursive(
const std::string& name, std::shared_ptr<SceneObject>&
object,
size_t& pos)
const;
GLFWwindow * getWindow() const
Definition: scene.hpp:96
void setLightCam(std::shared_ptr< LightCamera > val)
Definition: scene.hpp:114
std::shared_ptr< Legend > getLegend() const
Definition: scene.hpp:105
std::shared_ptr< Camera > camera
Definition: scene.hpp:134
Definition: sunVolumetric.hpp:14
void remRender(std::shared_ptr< SceneObject > &object)
Definition: scene.cpp:94
The class which is responsible for loading all the details to build up a scene.
Definition: assimpLoader.hpp:23
Displays a Legend that contains text.
Definition: legend.hpp:105
Encapsulates a graphical object model in the GPU.
Definition: model.hpp:14
std::shared_ptr< LightCamera > getLightCam() const
Definition: scene.hpp:101
std::map< std::string, std::unique_ptr< Shader > > shaders
Definition: scene.hpp:145
std::shared_ptr< SunVolumetric > sunVolumetric
Definition: scene.hpp:137
std::shared_ptr< Light > getLight() const
Definition: scene.hpp:97
void setWindow(GLFWwindow *val)
Definition: scene.hpp:109
ConstIterator begin() const
Definition: scene.hpp:122
Used for further implementations of light in the scene (Sun is a direct derivation).
Definition: light.hpp:16
void setBubbleCursor(std::shared_ptr< BubbleCursor > val)
Definition: scene.hpp:119
std::shared_ptr< Light > light
Definition: scene.hpp:133
std::shared_ptr< SelectorBase > activeSelector
Definition: scene.hpp:139
void clearRender()
Definition: scene.cpp:77
~Scene()
Definition: scene.cpp:41
std::shared_ptr< LightCamera > lightCam
Definition: scene.hpp:136
std::map< std::string, std::unique_ptr< Texture > > textures
Definition: scene.hpp:146
std::shared_ptr< SelectorBase > getActiveSelector() const
Definition: scene.hpp:104
void setSunVolumetric(std::shared_ptr< SunVolumetric > val)
Definition: scene.hpp:115
Implements the camera movement with user input.
Definition: camera.hpp:11
void setMouseSemantics(std::shared_ptr< MouseSemantics > val)
Definition: scene.hpp:116
Shader * getShader(const std::string &name) const
Definition: scene.cpp:170
ConstIterator end(size_t idx) const
Definition: scene.hpp:123
std::shared_ptr< SunVolumetric > getSunVolumetric() const
Definition: scene.hpp:102
void changeRenderShader(const std::string &from, const std::string &to)
Definition: scene.cpp:82
Definition: lightCamera.hpp:13
std::shared_ptr< SceneObject > rootNode
Definition: scene.hpp:143
std::shared_ptr< Legend > legend
Definition: scene.hpp:140
std::shared_ptr< CubeMapObject > cmObject
Definition: scene.hpp:135
Scene(GLFWwindow *window)
Definition: scene.cpp:33
Encapsulates the Rendering Engine, holds a complete scene and it's assets.
Definition: scene.hpp:71
void setCamera(std::shared_ptr< Camera > val)
Definition: scene.hpp:111
void addShader(const std::string &name, std::unique_ptr< Shader > &shader)
Definition: scene.cpp:178
void setCubeMapObject(std::shared_ptr< CubeMapObject > val)
Definition: scene.hpp:113
std::map< std::size_t, std::shared_ptr< SceneObject > > renderList
Definition: scene.hpp:147
std::shared_ptr< MouseSemantics > getMouseSemantics() const
Definition: scene.hpp:103
std::shared_ptr< SceneObject > getRootNode() const
Definition: scene.hpp:99
std::shared_ptr< BubbleCursor > getBubbleCursor() const
Definition: scene.hpp:106
Encapsulates a texture in the GPU.
Definition: texture.hpp:10
bool getObject(const std::string &name, std::shared_ptr< SceneObject > &object, size_t pos=1) const
Definition: scene.cpp:51
void setLight(std::shared_ptr< Light > val)
Definition: scene.hpp:110
std::shared_ptr< MouseSemantics > mouseSemantics
Definition: scene.hpp:138
void init(const std::string &scenePath)
Definition: scene.cpp:46
size_t insertRender(std::shared_ptr< SceneObject > &object, size_t idx=SentinelUnordered)
Definition: scene.cpp:147
void getRender(size_t idx, std::shared_ptr< SceneObject > &object) const
Definition: scene.cpp:122
This class is rendering multiple circles (called bubbles in the paper) that are randomly placed on th...
Definition: bubbleCursor.hpp:47
Encapsulates a shader program.
Definition: shader.hpp:9
std::map< std::size_t, std::shared_ptr< SceneObject > >::const_iterator ConstIterator
Definition: scene.hpp:79
GLFWwindow * window
Definition: scene.hpp:132
ConstIterator end() const
Definition: scene.hpp:121
std::shared_ptr< CubeMapObject > getCubeMapObject() const
Definition: scene.hpp:100
Implements the QuadTree based object selection.
Definition: selectorQuadTree.hpp:105
The base class of the objects which are rendered.
Definition: sceneObject.hpp:30
void setLegend(std::shared_ptr< Legend > val)
Definition: scene.hpp:118
The switches to experiment OpenGL performance and quality are implemented here.
Definition: debug.hpp:11
void setRootNode(std::shared_ptr< SceneObject > root)
Definition: scene.hpp:112
Base class for selectors.
Definition: selectorBase.hpp:15
The class which handles the drawing of the cursor as well as the semantic scaling function that trans...
Definition: mouseSemantics.hpp:49
void setActiveSelector(std::shared_ptr< SelectorBase > val)
Definition: scene.hpp:117
bool getObjectRecursive(const std::string &name, std::shared_ptr< SceneObject > &object, size_t &pos) const
Definition: scene.cpp:60
size_t pushRender(std::shared_ptr< SceneObject > &object, size_t idx=SentinelUnordered)
Definition: scene.cpp:133
ConstIterator begin(size_t idx) const
Definition: scene.hpp:124
Implements the GPU based object selection.
Definition: selectorGPU.hpp:41
Definition: cubeMapObject.hpp:14
std::shared_ptr< BubbleCursor > bubbleCursor
Definition: scene.hpp:141
std::shared_ptr< Camera > getCamera() const
Definition: scene.hpp:98
std::map< std::string, std::unique_ptr< Model > > models
Definition: scene.hpp:144