[][src]Trait yoyo_physics::Curve

pub trait Curve {
    type Value;
    type Velocity;
    pub fn approximate(
        &self,
        time: f32
    ) -> Approximation<Self::Value, Self::Velocity>;
pub fn target(&self) -> Self::Value; }

Curves provide the mathematical foundation for animation.

Within Yoyo, we restrict curves to those with a closed-form approximation / analytical solution and similarly, a closed-form derivative that we can use to compute velocity. Typically, especially for springs, animation frameworks use numerical integrations, like RK4. We want closed-form solutions because they let us pause and resume animations at arbitrary time steps.

Associated Types

type Value[src]

This is the type that this curve operates on.

type Velocity[src]

This is the type of velocity that this curve works with.

Loading content...

Required methods

pub fn approximate(
    &self,
    time: f32
) -> Approximation<Self::Value, Self::Velocity>
[src]

This should return a single approximation for the given time.

pub fn target(&self) -> Self::Value[src]

This should return the target value of this curve.

Loading content...

Implementors

impl<T> Curve for Bezier<T> where
    T: Float
[src]

type Value = T

type Velocity = T

impl<T> Curve for Decay<T> where
    T: Float
[src]

type Value = T

type Velocity = T

impl<T> Curve for Delay<T> where
    T: Float
[src]

type Value = T

type Velocity = T

impl<T> Curve for Spring<T> where
    T: Float
[src]

type Value = T

type Velocity = T

pub fn approximate(&self, time: f32) -> Approximation<T>[src]

This function approximates a spring's oscillation and velocity at the given timestamp.

Loading content...