#ifndef MSP_GL_ANIMATEDOBJECT_H_
#define MSP_GL_ANIMATEDOBJECT_H_
+#include <vector>
+#include <msp/datafile/objectloader.h>
#include "matrix.h"
#include "objectinstance.h"
*/
class AnimatedObject: public ObjectInstance
{
+public:
+ class Loader: public DataFile::ObjectLoader<AnimatedObject>
+ {
+ 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<float> pose_data;
ProgramData *shdata;
public:
AnimatedObject(const Object &);
+ ~AnimatedObject();
void set_matrix(const Matrix &);
void set_pose_matrix(unsigned, const Matrix &);
+ virtual const Matrix *get_matrix() const { return &matrix; }
+
virtual void setup_render(Renderer &, const Tag &) const;
};