X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fobjectinstance.cpp;h=dbbb85bf45838b8af1529f91c2b92cc2218262db;hp=10dae3926c05374d07df95e9cd58d7184eb23853;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hpb=4324df6e3d807d35e02e828320e436c509275520 diff --git a/source/objectinstance.cpp b/source/objectinstance.cpp index 10dae392..dbbb85bf 100644 --- a/source/objectinstance.cpp +++ b/source/objectinstance.cpp @@ -1,13 +1,6 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - -#include "object.h" #include "objectinstance.h" -#include "programdata.h" +#include "renderer.h" +#include "transform.h" using namespace std; @@ -18,19 +11,33 @@ ObjectInstance::ObjectInstance(const Object &obj): object(obj) { } -bool ObjectInstance::has_pass(const string &pn) const +void ObjectInstance::render(Renderer &renderer, const Tag &tag) const +{ + object.render(renderer, *this, tag); +} + +void ObjectInstance::setup_render(Renderer &renderer, const Tag &) const { - return object.has_pass(pn); + renderer.transform(matrix); } -void ObjectInstance::render() const +unsigned ObjectInstance::get_level_of_detail(const Renderer &renderer) const +{ + return renderer.get_object_lod_bias(); +} + + +ObjectInstance::Loader::Loader(ObjectInstance &o): + DataFile::ObjectLoader(o) { - object.render(*this); + add("transform", &Loader::transform); } -void ObjectInstance::render(const string &pn) const +void ObjectInstance::Loader::transform() { - object.render(pn, *this); + Transform trn; + load_sub(trn); + obj.matrix = trn.to_matrix(); } } // namespace GL