mmd-anim-runtime 0.3.2

Renderer-independent MMD animation runtime core
Documentation
//! Renderer-independent MMD animation runtime core.
//!
//! The core crate intentionally has no Wasm, Unity, parser, or renderer
//! dependencies. Wrappers pass pre-normalized model and animation IR into this
//! crate and read contiguous output buffers back.

mod animation;
pub mod append_primitive;
mod flat_model;
pub mod ik_primitive;
mod model;
mod model_descriptor;
mod pose;
// The reducer remains crate-private until its Rust shape is stabilized by the
// format targets and wrapper parity work in later POSE-REDUCE phases.
#[allow(dead_code)]
pub(crate) mod reduce;
mod runtime;

pub use animation::{
    AnimationClip, AnimationClipBuilder, BoneAnimationBinding, BoneSample, ClipFrameBounds,
    ClipSample, InterpolationScalar, InterpolationVector3, MorphAnimationBinding, MorphKeyframe,
    MorphSample, MorphTrack, MovableBoneKeyframe, MovableBoneTrack, PropertyAnimationBinding,
    PropertyKeyframe,
};
pub use append_primitive::{AppendPrimitiveInput, AppendPrimitiveOutput, solve_append_transform};
pub use flat_model::{
    FlatAppendTransformInput, FlatBoneInput, FlatBoneMorphInput, FlatGroupMorphInput,
    FlatIkLinkInput, FlatIkSolverInput, FlatModelInputError, FlatMorphInput,
    build_append_transforms_from_flat, build_append_transforms_from_flat_iter,
    build_bones_from_flat, build_ik_solvers_from_flat, build_ik_solvers_from_flat_iter,
    build_morph_init_from_flat, build_morph_init_from_flat_iter,
};
pub use ik_primitive::{
    IkChainDefinition, IkChainLinkDefinition, IkChainPoseInput, IkChainSolveOutput, IkChainSolver,
};
pub use model::{
    AppendTransform, AppendTransformInit, BoneIndex, BoneInit, BoneMorphOffset, GroupMorphOffset,
    IkAngleLimit, IkLink, IkLinkInit, IkSolver, IkSolverInit, LocalAxis, ModelArena,
    ModelBuildError, MorphIndex, MorphInit, MorphOffsetSpan, VertexMorphOffset,
    build_morph_init_from_offsets,
};
pub use model_descriptor::{
    RUNTIME_MODEL_DESCRIPTOR_VERSION_V1, RuntimeAppendTransformDescriptorV1,
    RuntimeBoneDescriptorV1, RuntimeBoneMorphOffsetDescriptorV1,
    RuntimeGroupMorphOffsetDescriptorV1, RuntimeIkLinkDescriptorV1, RuntimeIkSolverDescriptorV1,
    RuntimeModelDescriptorError, RuntimeModelDescriptorErrorKind, RuntimeModelDescriptorV1,
    RuntimeMorphDescriptorV1, compile_runtime_model_descriptor_v1,
};
pub use pose::PoseArena;
pub use reduce::{
    DccCubicSegment, DccScalarSegment, DensePoseSequenceView, PoseReductionError,
    PoseReductionReport, QuantizedBezier, ReducedBoneKey, ReducedBoneTrack, ReducedMorphKey,
    ReducedMorphTrack, ReducedPoseSample, ReducedPoseSequence, ReductionTarget, ReductionTimings,
    ReductionTolerances, ReductionWorkStats, SkeletonSnapshot, VmdBoneInterpolation,
    reduce_dense_pose_sequence, reduce_dense_pose_sequence_with_worker_count,
};
pub use runtime::{
    HostPoseError, HostPoseView, IkSolveOptions, IkSolverRuntimeStats, PhysicsMode,
    PhysicsStepStats, PhysicsTickConfig, RuntimeInstance,
};