[][src]Trait ultraviolet::interp::Lerp

pub trait Lerp<T> {
    fn lerp(&self, end: Self, t: T) -> Self;
}

Pure linear interpolation, i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

Required methods

fn lerp(&self, end: Self, t: T) -> Self

Loading content...

Implementations on Foreign Types

impl Lerp<f32> for f32[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

Loading content...

Implementors

impl Lerp<f32> for Bivec2[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32> for Bivec3[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32> for Rotor2[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32> for Rotor3[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32> for Vec2[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32> for Vec3[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32> for Vec4[src]

fn lerp(&self, end: Self, t: f32) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for Bivec2x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for Bivec3x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for Rotor2x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for Rotor3x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for f32x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for Vec2x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for Vec3x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x4> for Vec4x4[src]

fn lerp(&self, end: Self, t: f32x4) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for Bivec2x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for Bivec3x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for Rotor2x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for Rotor3x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for f32x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for Vec2x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for Vec3x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

impl Lerp<f32x8> for Vec4x8[src]

fn lerp(&self, end: Self, t: f32x8) -> Self[src]

Linearly interpolate between self and end by t between 0.0 and 1.0. i.e. (1.0 - t) * self + (t) * end.

For interpolating Rotors with linear interpolation, you almost certainly want to normalize the returned Rotor. For example,

let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();

For most cases (especially where perfomrance is the primary concern, like in animation interpolation for games, this 'normalized lerp' or 'nlerp' is probably what you want to use. However, there are situations in which you really want the interpolation between two Rotors to be of constant angular velocity. In this case, check out Slerp.

Loading content...