X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fobjectinstance.cpp;fp=source%2Frender%2Fobjectinstance.cpp;h=dbbb85bf45838b8af1529f91c2b92cc2218262db;hb=7aaec9a70b8d7733429bec043f8e33e02956f266;hp=0000000000000000000000000000000000000000;hpb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;p=libs%2Fgl.git diff --git a/source/render/objectinstance.cpp b/source/render/objectinstance.cpp new file mode 100644 index 00000000..dbbb85bf --- /dev/null +++ b/source/render/objectinstance.cpp @@ -0,0 +1,44 @@ +#include "objectinstance.h" +#include "renderer.h" +#include "transform.h" + +using namespace std; + +namespace Msp { +namespace GL { + +ObjectInstance::ObjectInstance(const Object &obj): + object(obj) +{ } + +void ObjectInstance::render(Renderer &renderer, const Tag &tag) const +{ + object.render(renderer, *this, tag); +} + +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