Rev Author Line No. Line
23 ovan 1 #ifndef SCENE
2 #define SCENE
3  
4 #include "../device/device.h"
5 #include "../driver/fbo.h"
6  
7 //#include "node.h"
8  
9 #include "billboard/billboard.h"
10 #include "billboard/sprite.h"
11 #include "camera/camera.h"
12 #include "real/natif.h"
13 #include "real/octree.h"
14 #include "real/grid.h"
15  
16 namespace sleek
17 {
18     namespace scene3d
19     {
20         class Scene : public sleek::device::event, public std::enable_shared_from_this<Scene>
21         {
22             public:
23                 Scene(device::Device *, driver::driver *) noexcept;
24                 virtual ~Scene() noexcept;
25  
26                 inline std::shared_ptr<Scene> getptr() noexcept
27                 {
28                     return shared_from_this();
29                 }
30  
31                 Node *addSceneNode(Node*) noexcept;
32                 u32   getNumberNode() const noexcept { return nd.size(); }
33                 Node *getNode(u32 i) const noexcept { return nd[i]; }
34                 void removeNode(Node*) noexcept;
35  
36                 void clear() noexcept;
37  
38                 void enableDebugDraw(bool) noexcept;
39                 bool isDebugDraw() const noexcept;
40  
41                 device::Device *getDevice() const noexcept;
42                 driver::driver *getDrawManager() const noexcept;
43                 camera::Camera *getCamera() const noexcept;
44  
45                 virtual bool manage(device::input*) noexcept;
46  
47                 void render() noexcept;
48             protected:
49                 device::Device *screen;
50                 camera::Camera *cm;
51                 driver::driver *mom;
52             private:
53                 bool debug_draw;
54                 std::vector<Node*> nd;
55                 const char *currentScene;
56         };
57     }
58 }
59 #endif // Scene_H