Skip to main content

blinc_animation/
lib.rs

1//! Blinc Animation System
2//!
3//! Spring physics, keyframe animations, and timeline orchestration.
4//!
5//! # Features
6//!
7//! - **Spring Physics**: RK4-integrated springs with stiffness, damping, mass
8//! - **Keyframe Animations**: Timed sequences with easing functions
9//! - **Multi-Property Keyframes**: Animate multiple properties simultaneously
10//! - **Timelines**: Orchestrate multiple animations with offsets
11//! - **Typed Animations**: Generic animations for Vec3, Color, and custom types
12//! - **Interruptible**: Animations inherit velocity when interrupted
13//! - **Animation Presets**: Common entry/exit animations
14//! - **AnimationContext**: Platform-agnostic animation management trait
15
16pub mod context;
17pub mod easing;
18pub mod keyframe;
19pub mod morph;
20pub mod presets;
21pub mod scheduler;
22pub mod spring;
23pub mod timeline;
24pub mod values;
25
26pub use context::{
27    AnimationContext, AnimationContextExt, SharedAnimatedTimeline, SharedAnimatedValue,
28};
29pub use easing::Easing;
30pub use keyframe::{
31    FillMode, Keyframe, KeyframeAnimation, KeyframePoint, KeyframeProperties, KeyframeTrack,
32    KeyframeTrackBuilder, MultiKeyframe, MultiKeyframeAnimation, PlayDirection,
33};
34pub use presets::AnimationPreset;
35pub use scheduler::{
36    get_scheduler, is_scheduler_initialized, set_global_scheduler, try_get_scheduler,
37    AnimatedKeyframe, AnimatedTimeline, AnimatedValue, AnimationScheduler, ConfigureResult,
38    KeyframeId, SchedulerHandle, SpringId, TickCallback, TickCallbackId, TimelineId,
39};
40pub use spring::{Spring, SpringConfig};
41pub use timeline::{StaggerBuilder, Timeline, TimelineEntryId};
42pub use values::{
43    ColorAnimation, ColorKeyframe, FloatAnimation, FloatKeyframe, Interpolate,
44    SphericalInterpolate, TypedKeyframe, TypedKeyframeAnimation, Vec3Animation, Vec3Keyframe,
45};