Skip to main content

mmd_anim_runtime/
lib.rs

1//! Renderer-independent MMD animation runtime core.
2//!
3//! The core crate intentionally has no Wasm, Unity, parser, or renderer
4//! dependencies. Wrappers pass pre-normalized model and animation IR into this
5//! crate and read contiguous output buffers back.
6
7mod animation;
8pub mod append_primitive;
9mod flat_model;
10pub mod ik_primitive;
11mod model;
12mod pose;
13mod runtime;
14
15pub use animation::{
16    AnimationClip, AnimationClipBuilder, BoneAnimationBinding, BoneSample, ClipFrameBounds,
17    ClipSample, InterpolationScalar, InterpolationVector3, MorphAnimationBinding, MorphKeyframe,
18    MorphSample, MorphTrack, MovableBoneKeyframe, MovableBoneTrack, PropertyAnimationBinding,
19    PropertyKeyframe,
20};
21pub use append_primitive::{AppendPrimitiveInput, AppendPrimitiveOutput, solve_append_transform};
22pub use flat_model::{
23    FlatAppendTransformInput, FlatBoneInput, FlatBoneMorphInput, FlatGroupMorphInput,
24    FlatIkLinkInput, FlatIkSolverInput, FlatModelInputError, FlatMorphInput,
25    build_append_transforms_from_flat, build_append_transforms_from_flat_iter,
26    build_bones_from_flat, build_ik_solvers_from_flat, build_ik_solvers_from_flat_iter,
27    build_morph_init_from_flat, build_morph_init_from_flat_iter,
28};
29pub use ik_primitive::{
30    IkChainDefinition, IkChainLinkDefinition, IkChainPoseInput, IkChainSolveOutput, IkChainSolver,
31};
32pub use model::{
33    AppendTransform, AppendTransformInit, BoneIndex, BoneInit, BoneMorphOffset, GroupMorphOffset,
34    IkAngleLimit, IkLink, IkLinkInit, IkSolver, IkSolverInit, ModelArena, ModelBuildError,
35    MorphIndex, MorphInit, MorphOffsetSpan, VertexMorphOffset,
36};
37pub use pose::PoseArena;
38pub use runtime::{IkSolveOptions, IkSolverRuntimeStats, RuntimeInstance};