bb274f21960f29b6f30da8de90ae79380d1ef0c4
[laserbrain_demo] / src / renderer.cc
1 #include "renderer.h"
2
3 Renderer::Renderer()
4 {
5         mscn = 0;
6 }
7
8 Renderer::~Renderer()
9 {
10 }
11
12 bool Renderer::init()
13 {
14         return true;
15 }
16
17 void Renderer::destroy()
18 {
19 }
20
21 void Renderer::set_scene(MetaScene *mscn)
22 {
23         this->mscn = mscn;
24 }
25
26 MetaScene *Renderer::get_scene() const
27 {
28         return mscn;
29 }
30
31 void Renderer::draw() const
32 {
33         if(!mscn) return;
34
35         int num = (int)mscn->scenes.size();
36         for(int i=0; i<num; i++) {
37                 Scene *scn = mscn->scenes[i];
38
39                 int nobj = (int)scn->objects.size();
40                 for(int j=0; j<nobj; j++) {
41                         draw_object(scn->objects[j]);
42                 }
43         }
44 }
45
46 void Renderer::draw_object(Object *obj) const
47 {
48         bool vis = true;
49         SceneNode *n = obj->node;
50         while(n) {
51                 if(!n->visible) {
52                         vis = false;
53                         break;
54                 }
55                 n = n->get_parent();
56         }
57
58         if(vis) {
59                 obj->draw();
60         }
61 }