X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fkeyframe.h;h=7854a928863c86ea7d2a30891d97a3687ac44b22;hp=6a8c5a447e60ab8c5f0575f47854e9019e145090;hb=af0ba2af0167247bcda74e76f3c83c0c0e89650a;hpb=8b9d1625ac367114612b57a83901033ffc2bc7e0 diff --git a/source/keyframe.h b/source/keyframe.h index 6a8c5a44..7854a928 100644 --- a/source/keyframe.h +++ b/source/keyframe.h @@ -30,10 +30,34 @@ public: void rotation(float, float, float, float); void scaling_uniform(float); void scaling(float, float, float); + void uniforms(); }; + class UniformsLoader: public DataFile::ObjectLoader + { + public: + UniformsLoader(KeyFrame &); + + private: + void uniform1f(const std::string &, float); + void uniform2f(const std::string &, float, float); + void uniform3f(const std::string &, float, float, float); + void uniform4f(const std::string &, float, float, float, float); + }; + + struct AnimatedUniform + { + unsigned size; + float values[4]; + + AnimatedUniform(unsigned, float, float = 0.0f, float = 0.0f, float = 0.0f); + }; + + typedef std::map UniformMap; + private: Matrix matrix; + UniformMap uniforms; RefPtr pose; public: @@ -43,6 +67,7 @@ public: void set_matrix(const Matrix &); void set_pose(const Pose &); const Matrix &get_matrix() const { return matrix; } + const UniformMap &get_uniforms() const { return uniforms; } const Pose *get_pose() const { return pose.get(); } };