Skip to main content
← PSoXide SDK guides and examples · SDK f2fec1c301f1 · All Cargo features enabled; check feature gates before use.

ModelPoseBlend

Struct ModelPoseBlend 

Source
pub struct ModelPoseBlend<'a> {
    pub sample: AnimationPoseSample<'a>,
    pub alpha_q12: u16,
}
Expand description

Crossfade source: a second animation sample blended toward a primary pose.

Used for clip-transition crossfades: the outgoing clip’s frozen sample sits here while the incoming clip plays as the primary. alpha_q12 is the Q12 weight of the PRIMARY pose (0 shows this source, 1 << 12 shows the primary alone).

The blend is a linear matrix lerp, not a rotation-correct slerp: mid-blend joints shrink slightly when the two poses differ a lot. Short crossfade windows keep that invisible; renormalize later if a long blend ever makes it visible.

Fields§

§sample: AnimationPoseSample<'a>

Outgoing pose sample (frame pair + intra-frame alpha).

§alpha_q12: u16

Q12 weight of the primary pose this source blends toward.

Implementations§

Source§

impl ModelPoseBlend<'_>

Source

pub fn blend_toward(&self, primary: JointPose, joint_index: u16) -> JointPose

Blend this source’s joint pose toward primary.

Falls back to primary unchanged when the joint is missing from the outgoing clip (mismatched rigs never corrupt poses).

Trait Implementations§

Source§

impl<'a> Clone for ModelPoseBlend<'a>

Source§

fn clone(&self) -> ModelPoseBlend<'a>

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for ModelPoseBlend<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Copy for ModelPoseBlend<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ModelPoseBlend<'a>

§

impl<'a> RefUnwindSafe for ModelPoseBlend<'a>

§

impl<'a> Send for ModelPoseBlend<'a>

§

impl<'a> Sync for ModelPoseBlend<'a>

§

impl<'a> Unpin for ModelPoseBlend<'a>

§

impl<'a> UnsafeUnpin for ModelPoseBlend<'a>

§

impl<'a> UnwindSafe for ModelPoseBlend<'a>

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.