]> git.tdb.fi Git - libs/gl.git/blob - source/objectinstance.cpp
Add an object LoD bias parameter to Renderer
[libs/gl.git] / source / objectinstance.cpp
1 #include "objectinstance.h"
2 #include "renderer.h"
3 #include "transform.h"
4
5 using namespace std;
6
7 namespace Msp {
8 namespace GL {
9
10 ObjectInstance::ObjectInstance(const Object &obj):
11         object(obj)
12 { }
13
14 void ObjectInstance::render(const Tag &tag) const
15 {
16         Renderer renderer(0);
17         render(renderer, tag);
18 }
19
20 void ObjectInstance::render(Renderer &renderer, const Tag &tag) const
21 {
22         object.render(renderer, *this, tag);
23 }
24
25 void ObjectInstance::setup_render(Renderer &renderer, const Tag &) const
26 {
27         renderer.transform(matrix);
28 }
29
30 unsigned ObjectInstance::get_level_of_detail(const Renderer &renderer) const
31 {
32         return renderer.get_object_lod_bias();
33 }
34
35
36 ObjectInstance::Loader::Loader(ObjectInstance &o):
37         DataFile::ObjectLoader<ObjectInstance>(o)
38 {
39         add("transform", &Loader::transform);
40 }
41
42 void ObjectInstance::Loader::transform()
43 {
44         Transform trn;
45         load_sub(trn);
46         obj.matrix = trn.to_matrix();
47 }
48
49 } // namespace GL
50 } // namespaec Msp