X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fobjectinstance.cpp;h=450c810646f23b5b8439de2e6275730432ea73e4;hp=80f44cd48ea35e45528d1f0b4f7b54c6dc0c3a6b;hb=553f3ec4fbe28a37978ee53b9b6e22fedb691e1d;hpb=85e83ace47e5a9a8ae7263886255dd81afc69278 diff --git a/source/objectinstance.cpp b/source/objectinstance.cpp index 80f44cd4..450c8106 100644 --- a/source/objectinstance.cpp +++ b/source/objectinstance.cpp @@ -1,13 +1,8 @@ -/* $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; namespace Msp { namespace GL { @@ -16,9 +11,34 @@ ObjectInstance::ObjectInstance(const Object &obj): object(obj) { } -void ObjectInstance::render() const +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); +} + +void ObjectInstance::setup_render(Renderer &renderer, const Tag &) const +{ + renderer.transform(matrix); +} + + +ObjectInstance::Loader::Loader(ObjectInstance &o): + DataFile::ObjectLoader(o) +{ + add("transform", &Loader::transform); +} + +void ObjectInstance::Loader::transform() { - object.render(this); + Transform trn; + load_sub(trn); + obj.matrix = trn.to_matrix(); } } // namespace GL