X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fkeyframe.cpp;h=8eba17292368a33b576a0ae0186ee9388aacaa6b;hp=dd4adf16611efb7c2c05312d0428d949de7c6df5;hb=025016d7628be9c43b20999325dcbaae5cb3c3b8;hpb=3f7c493e13b7108098539078b729cffc095c304b diff --git a/source/keyframe.cpp b/source/keyframe.cpp index dd4adf16..8eba1729 100644 --- a/source/keyframe.cpp +++ b/source/keyframe.cpp @@ -14,9 +14,14 @@ KeyFrame::KeyFrame() KeyFrame::~KeyFrame() { } +void KeyFrame::set_transform(const Transform &t) +{ + transform = t; +} + void KeyFrame::set_matrix(const Matrix &m) { - matrix = m; + transform = Transform::from_matrix(m); } void KeyFrame::set_pose(const Pose &p) @@ -52,11 +57,14 @@ void KeyFrame::Loader::init() { add("pose", &Loader::pose); add("pose", &Loader::pose_inline); + add("transform", &Loader::transform); + add("uniforms", &Loader::uniforms); + + // Deprecated; use the transform statement instead add("position", &Loader::position); add("rotation", &Loader::rotation); add("scaling", &Loader::scaling_uniform); add("scaling", &Loader::scaling); - add("uniforms", &Loader::uniforms); } void KeyFrame::Loader::pose(const string &n) @@ -74,22 +82,27 @@ void KeyFrame::Loader::pose_inline() void KeyFrame::Loader::position(float x, float y, float z) { - obj.matrix.translate(x, y, z); + obj.transform.set_position(Vector3(x, y, z)); } void KeyFrame::Loader::rotation(float a, float x, float y, float z) { - obj.matrix.rotate_deg(a, x, y, z); + obj.transform.set_rotation(Transform::Angle::from_degrees(a), Vector3(x, y, z)); } void KeyFrame::Loader::scaling_uniform(float s) { - obj.matrix.scale(s); + obj.transform.set_scale(s); } void KeyFrame::Loader::scaling(float x, float y, float z) { - obj.matrix.scale(x, y, z); + obj.transform.set_scale(Vector3(x, y, z)); +} + +void KeyFrame::Loader::transform() +{ + load_sub(obj.transform); } void KeyFrame::Loader::uniforms()