Parametric

Trait Parametric 

Source
pub trait Parametric<T> {
    // Required method
    fn eval(&self, t: f32) -> T;
}
Expand description

Represents a single-variable parametric curve.

Required Methods§

Source

fn eval(&self, t: f32) -> T

Returns the value of self at t.

The “canonical” domain of this function is t ∈ [0.0, 1.0], but implementations should return “reasonable” values outside the unit interval as well.

Implementations on Foreign Types§

Source§

impl<T: Lerp> Parametric<T> for Range<T>

Source§

fn eval(&self, t: f32) -> T

Linearly interpolates between self.start and self.end.

Equivalent to <Self as Lerp>::lerp(&self.start, &self.end, t).

See also Lerp::lerp.

§Examples
use core::ops::Range;
use retrofire_core::math::{Parametric, pt2, Point2};

let range: Range<Point2> = pt2(-2.0, 1.0)..pt2(3.0, 2.0);

assert_eq!(range.eval(0.0), range.start);
assert_eq!(range.eval(0.5), pt2(0.5, 1.5));
assert_eq!(range.eval(1.0), range.end);

Implementors§

Source§

impl<F: Fn(f32) -> T, T> Parametric<T> for F

Source§

impl<T> Parametric<T> for Ray<T>
where T: Affine<Diff: Linear<Scalar = f32>>,

Source§

impl<T> Parametric<T> for BezierSpline<T>
where T: Affine<Diff: Linear<Scalar = f32> + Clone> + Clone,

Source§

impl<T> Parametric<T> for CubicBezier<T>
where T: Affine<Diff: Linear<Scalar = f32> + Clone> + Clone,

Source§

impl<T: Lerp + Clone> Parametric<T> for Polyline<T>