]> git.tdb.fi Git - libs/gl.git/blob - source/objectinstance.cpp
Animate only those components which are present in Transforms
[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
31 ObjectInstance::Loader::Loader(ObjectInstance &o):
32         DataFile::ObjectLoader<ObjectInstance>(o)
33 {
34         add("transform", &Loader::transform);
35 }
36
37 void ObjectInstance::Loader::transform()
38 {
39         Transform trn;
40         load_sub(trn);
41         obj.matrix = trn.to_matrix();
42 }
43
44 } // namespace GL
45 } // namespaec Msp