X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fanimatedobject.h;h=b7f480054275d44148ca714c659af2ad548ce0d2;hp=df0b15ebe04e2f6cc6d91090ba60292c14a66adb;hb=4fe225bf15048fcb7a678370f87d09f2de37031a;hpb=237bf34e27585f4083a9c8cea5a7df95f4c081e7 diff --git a/source/animatedobject.h b/source/animatedobject.h index df0b15eb..b7f48005 100644 --- a/source/animatedobject.h +++ b/source/animatedobject.h @@ -2,6 +2,8 @@ #define MSP_GL_ANIMATEDOBJECT_H_ #include +#include +#include "keyframe.h" #include "matrix.h" #include "objectinstance.h" @@ -14,6 +16,19 @@ useful for displaying objects at a static position. */ class AnimatedObject: public ObjectInstance { +public: + class Loader: public DataFile::ObjectLoader + { + public: + Loader(AnimatedObject &); + + private: + void position(float, float, float); + void rotation(float, float, float, float); + void scale(float, float, float); + void scale_uniform(float); + }; + private: Matrix matrix; std::vector pose_data; @@ -25,6 +40,9 @@ public: void set_matrix(const Matrix &); void set_pose_matrix(unsigned, const Matrix &); + void set_uniform(const std::string &, const KeyFrame::AnimatedUniform &); + + virtual const Matrix *get_matrix() const { return &matrix; } virtual void setup_render(Renderer &, const Tag &) const; };