timeline_rs
This is a simple timeline library for Rust. It is designed to be used in a game engine, but can be used for any purpose.
This work is heavily inspired by ofxTimeline (my fork) of YCAMInterlab, and intended to use data created by ofxTimeline and loaf_timeline (lua/oF scripting environment using ofxTimeline).
Examples
Easing Tester

use easing;
/// ...
let v: f32 = easing;
Timeline Simple

let mut tl = new;
let mut tx = default;
tx
.add_keyframe
.add_keyframe
.add_keyframe;
tl.add;
/// ...
let x: f32 = tl.get_value.into;
Timeline From XML

let mut tl = new;
let xml_x = r#"
<keyframes>
<key>
<easefunc>0</easefunc>
<easetype>0</easetype>
<time>00:00:00:524</time>
<value>0.375000000</value>
</key>
<key>
<easefunc>4</easefunc>
<easetype>0</easetype>
<time>00:00:02:123</time>
<value>0.330175757</value>
</key>
</keyframes>
"#;
tl..unwrap;
/// ...
let x: f32 = tl.get_value.into;
NOTE: You can also parse JSON using tl.load_json_str, and also directly from file (load_xml, load_json.)
License Acknowledgements
My code-base is published under WTFPL and/or 0BSD (see LICENSE_WTFPL and/or LICENSE_0BSD). However, the dependencies of this project have different licenses.
easing.rsis ported from ofxEasing.h used in ofxEasing, based on terms of use (BSD License).
Referenced projects
This lib is created to use data of ofxTimeline of YCAMInterlab and loaf_timeline (lua/oF scripting environment using ofxTimeline).
Some code-bases are referenced from ofxTimeline, and some dependencies are also referenced like ofxEasing and ofxTween.
- ofxEasing, is licensed under the MIT license. see ofxEasing's LICENSE
- ofxTween, is licensed under the MIT license. see ofxTween's LICENSE
- ofxTimeline, is licensed under the Apache license. see ofxTimeline's README