Skip to main content

GraphCursor

Struct GraphCursor 

Source
pub struct GraphCursor {
    pub state: usize,
    pub clock: f32,
    pub fade: Option<StateFade>,
}
Expand description

The live position in a graph: current state, its clock, and any in-flight crossfade. One per graph target, owned by the client’s AnimationSystem.

Clock units depend on the state’s play: seconds (scaled by rate) for single clips and non-sync blendspaces, normalized phase (one full pass of the blend = 1.0) for phase-synced blendspaces, where member clips of different lengths must share one wrap point.

Fields§

§state: usize

The state the cursor is in.

§clock: f32

The state’s clock, in the units its play uses.

§fade: Option<StateFade>

The in-flight crossfade, when one is running.

Implementations§

Source§

impl GraphCursor

Source

pub fn start(graph: &CompiledGraph) -> Self

A cursor parked at the graph’s initial state.

Source

pub fn advance(&mut self, graph: &CompiledGraph, params: &[f32], dt_secs: f32)

Advance clocks by dt_secs and take at most one transition. Transition checks run against the current state’s outgoing list in declaration order; the first whose exit-time gate and conditions all pass wins. Taking a transition while a fade is in flight replaces the fade: the new fade blends from the interrupted fade’s incoming state only, so a rapid double transition can pop the older outgoing pose.

Trait Implementations§

Source§

impl Clone for GraphCursor

Source§

fn clone(&self) -> GraphCursor

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for GraphCursor

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.