X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectinstance.cpp;h=dbbb85bf45838b8af1529f91c2b92cc2218262db;hb=3e555c51a85b97090ae8c9b16ee425ee5ffe6ef8;hp=912ec05f94424fa367642f1688020b0e4b09d60b;hpb=d297f58d7de73cb92890540ece9ece5f953ebd8c;p=libs%2Fgl.git diff --git a/source/objectinstance.cpp b/source/objectinstance.cpp index 912ec05f..dbbb85bf 100644 --- a/source/objectinstance.cpp +++ b/source/objectinstance.cpp @@ -1,5 +1,6 @@ #include "objectinstance.h" #include "renderer.h" +#include "transform.h" using namespace std; @@ -10,12 +11,6 @@ ObjectInstance::ObjectInstance(const Object &obj): object(obj) { } -void ObjectInstance::render(const Tag &tag) const -{ - Renderer renderer(0); - render(renderer, tag); -} - void ObjectInstance::render(Renderer &renderer, const Tag &tag) const { object.render(renderer, *this, tag); @@ -26,5 +21,24 @@ void ObjectInstance::setup_render(Renderer &renderer, const Tag &) const renderer.transform(matrix); } +unsigned ObjectInstance::get_level_of_detail(const Renderer &renderer) const +{ + return renderer.get_object_lod_bias(); +} + + +ObjectInstance::Loader::Loader(ObjectInstance &o): + DataFile::ObjectLoader(o) +{ + add("transform", &Loader::transform); +} + +void ObjectInstance::Loader::transform() +{ + Transform trn; + load_sub(trn); + obj.matrix = trn.to_matrix(); +} + } // namespace GL } // namespaec Msp