Fireworks Engine  v2.0
Lightweight Sandbox Game Engine using OpenGL for additional Customisation and Quick Prototyping
scene3d.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "renderers/renderer3d.h"
7 #include "model.h"
8 
9 namespace fireworks { namespace graphics {
10 
14  class Scene3D
15  {
16  // TODO: Use const getter functions and make them private
17  public:
21  std::vector<Renderable3D*> renderables;
22  public:
26  Scene3D(Renderer3D* renderer);
27 
31  virtual ~Scene3D();
32 
36  virtual void add(Renderable3D* renderable);
37 
39  virtual void render();
40 
42  inline const std::vector<Renderable3D*>& getRendetables() const { return renderables; }
43  private:
44  void sortOnIBOSimilarity(Renderable3D* renderable);
45 
46  };
47 
48 } }
virtual ~Scene3D()
Destructor of the scene
Definition: scene3d.cpp:11
Scene3D(Renderer3D *renderer)
Creates a 3D scene to store 3d renderable objects.
Definition: scene3d.cpp:5
Renderer3D * renderer
The Renderer3D used by the scene to render the 3d renderables.
Definition: scene3d.h:19
The Class responsible for drawing the basic 3D Renderable objects onto the screen.
Definition: renderable3d.h:66
Definition: audioclip.cpp:3
virtual void render()
Renders the scene by submitting it&#39;s renderables to the renderer&#39;s render queue.
Definition: scene3d.cpp:32
const std::vector< Renderable3D * > & getRendetables() const
Gets a reference to the pool of renderables in the scene.
Definition: scene3d.h:42
The scene object that contains information about the 3d rendering and renderables objects...
Definition: scene3d.h:14
Forward declaration of the graphics::Renderable3D.
Definition: renderer3d.h:16
std::vector< Renderable3D * > renderables
The list of 3d renderables that are present in the scene.
Definition: scene3d.h:21
virtual void add(Renderable3D *renderable)
Adds 3D renderables to the scene.
Definition: scene3d.cpp:20