Rev Author Line No. Line
1 ovan 1 #include "engine.h"
2 #include <algorithm>
3  
4 namespace sleek
5 {
6     namespace scene3d
7     {
8         engine::engine(device::Device *s, driver::driver *d) noexcept
9             : screen(s), mom(d)
10         {
11             cm = new camera::Camera(screen);
12             //setFog(100.f, 1000.f, 0.35f, texture::pixel(35,35,35,255));
13         }
14  
15         engine::~engine() noexcept
16         {
17             clear();
18             delete cm;
19         }
20  
21         /* ***************************************** */
22  
23         Node *engine::addSceneNode(Node *t) noexcept
24         {
25             nd.push_back(t);
26         }
27  
28         void engine::removeNode(Node *t) noexcept
29         {
30             for(auto i = nd.begin(); i != nd.end(); ++i)
31             {
32                 if(*i == t)
33                 {
34                     nd.erase(i);
35                     break;
36                 }
37             }
38         }
39  
40         /* ***************************************** */
41  
42         void engine::clear() noexcept
43         {
44             while(nd.size())
45                 removeNode(getNode(0));
46         }
47  
48         /* ***************************************** */
49  
50         void engine::render() noexcept
51         {
6 ovan 52             std::sort(nd.begin(), nd.end());
53             cm->manage(screen->getCurrentEvent());
54             cm->render();
55             for(register u32 i = 0; i<nd.size(); ++i)
56             {
57                 Node *tmp = nd[i];
58                 tmp->render();
59             }
1 ovan 60         }
61  
62         void engine::enableDebugDraw(bool a) noexcept
63         {
64             debug_draw = a;
65         }
66  
67         bool engine::isDebugDraw() const noexcept
68         {
69             return debug_draw;
70         }
71  
72         device::Device *engine::getDevice() const noexcept
73         {
74             return screen;
75         }
76  
77         driver::driver *engine::getDrawManager() const noexcept
78         {
79             return mom;
80         }
81  
82         camera::Camera *engine::getCamera() const noexcept
83         {
84             return cm;
85         }
86     }
87 }