add staggered text

rename box to rect
refactor rust
This commit is contained in:
2023-05-23 10:27:45 +02:00
parent 7576850ae0
commit 8523e44029
32 changed files with 4344 additions and 2203 deletions

View File

@@ -0,0 +1,64 @@
use super::{
entities::common::AnimationData,
values::{AnimatedFloatVec2, AnimatedValue},
};
use crate::animation::timeline::Timeline;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct AnimatedTransform {
pub translate: AnimatedFloatVec2,
pub scale: AnimatedFloatVec2,
pub skew: AnimatedFloatVec2,
pub rotate: AnimatedFloatVec2,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Transform {
pub translate: (f32, f32),
pub scale: (f32, f32),
pub skew: (f32, f32),
pub rotate: (f32, f32),
}
impl AnimatedTransform {
pub fn sort_keyframes(&mut self) {
self.rotate.sort_keyframes();
self.skew.sort_keyframes();
self.scale.sort_keyframes();
self.translate.sort_keyframes();
}
pub fn calculate(&mut self, timeline: &Timeline, animation_data: &AnimationData) -> Transform {
let skew = self.skew.get_value_at_frame(
timeline.render_state.curr_frame,
animation_data,
timeline.fps,
);
let scale = self.scale.get_value_at_frame(
timeline.render_state.curr_frame,
animation_data,
timeline.fps,
);
let translate = self.translate.get_value_at_frame(
timeline.render_state.curr_frame,
animation_data,
timeline.fps,
);
let rotate = self.rotate.get_value_at_frame(
timeline.render_state.curr_frame,
animation_data,
timeline.fps,
);
Transform {
skew,
scale,
translate,
rotate,
}
}
}