Namespace Serenity.ProceduralAnimator.Domain.Services
Classes
AimDistributionSolver
Pure pitch/yaw distribution math for target-aware aim: clamps normalized pitch/yaw inputs to [-1, 1] and distributes them across a fixed set of bones (chest/neck/head/upper-arms) by per-bone share, scaled by each axis' max-degrees tuning. No engine references — uses only Math — so the distribution is unit-testable without a scene or engine.
GaitCycleSolver
Pure walk-gait math: maps a normalized, wrapping cycle phase (0..1) to per-bone rotation offsets (degrees) and a hip vertical bob (meters). Uses only Math — no engine references — so the bone-axis table is unit-testable without a scene or engine.
Structs
AimPose
Resolved per-bone aim pitch/yaw offsets (degrees) for a single Solve(double, double, double, double, double, double, double, double, double, double, double, double) sample. The same upper-arm pair values apply to both the left and right upper arm bones (not mirrored).
DirectionalLeanPose
Resolved constant (non-oscillating) postural offset from SolveLean(double, double, double, double, double, double). All three fields are abstract sign conventions the consuming layer maps onto its own measured bone axes — see SolveLean(double, double, double, double, double, double)'s remarks.
GaitPose
Resolved per-bone gait offsets for a single Solve(double, double, double, double, double, double, double) sample. Rotation fields are degrees about the rig's flexion/twist axis; HipsBobMeters is a local-space vertical offset in meters.