+ obj.transform.set_scale(Vector3(x, y, z));
+}
+
+void KeyFrame::Loader::transform()
+{
+ load_sub(obj.transform);
+}
+
+void KeyFrame::Loader::uniforms()
+{
+ UniformsLoader ldr(obj);
+ load_sub_with(ldr);
+}
+
+
+KeyFrame::UniformsLoader::UniformsLoader(KeyFrame &k):
+ DataFile::ObjectLoader<KeyFrame>(k)
+{
+ add("uniform", &UniformsLoader::uniform1f);
+ add("uniform", &UniformsLoader::uniform2f);
+ add("uniform", &UniformsLoader::uniform3f);
+ add("uniform", &UniformsLoader::uniform4f);
+
+ // Deprecated
+ add("uniform1f", &UniformsLoader::uniform1f);
+ add("uniform2f", &UniformsLoader::uniform2f);
+ add("uniform3f", &UniformsLoader::uniform3f);
+ add("uniform4f", &UniformsLoader::uniform4f);
+}
+
+void KeyFrame::UniformsLoader::uniform1f(const string &n, float v)
+{
+ obj.uniforms.insert(UniformMap::value_type(n, AnimatedUniform(1, v)));
+}
+
+void KeyFrame::UniformsLoader::uniform2f(const string &n, float v0, float v1)
+{
+ obj.uniforms.insert(UniformMap::value_type(n, AnimatedUniform(2, v0, v1)));
+}
+
+void KeyFrame::UniformsLoader::uniform3f(const string &n, float v0, float v1, float v2)
+{
+ obj.uniforms.insert(UniformMap::value_type(n, AnimatedUniform(3, v0, v1, v2)));
+}
+
+void KeyFrame::UniformsLoader::uniform4f(const string &n, float v0, float v1, float v2, float v3)
+{
+ obj.uniforms.insert(UniformMap::value_type(n, AnimatedUniform(4, v0, v1, v2, v3)));