Struct bevy_math::cubic_splines::CubicCardinalSpline
source · pub struct CubicCardinalSpline<P: Point> { /* private fields */ }
Expand description
A spline interpolated continuously across the nearest four control points, with the position of the curve specified at every control point and the tangents computed automatically.
Note the Catmull-Rom spline is a special case of Cardinal spline where the tension is 0.5.
Interpolation
The curve passes through every control point.
Tangency
Automatically defined at each control point.
Continuity
C1 continuous.
Usage
let points = [
vec2(-1.0, -20.0),
vec2(3.0, 2.0),
vec2(5.0, 3.0),
vec2(9.0, 8.0),
];
let cardinal = CubicCardinalSpline::new(0.3, points).to_curve();
let positions: Vec<_> = cardinal.iter_positions(100).collect();
Implementations§
source§impl<P: Point> CubicCardinalSpline<P>
impl<P: Point> CubicCardinalSpline<P>
Trait Implementations§
source§impl<P: Point> CubicGenerator<P> for CubicCardinalSpline<P>
impl<P: Point> CubicGenerator<P> for CubicCardinalSpline<P>
source§fn to_curve(&self) -> CubicCurve<P>
fn to_curve(&self) -> CubicCurve<P>
Build a
CubicCurve
by computing the interpolation coefficients for each curve segment.Auto Trait Implementations§
impl<P> RefUnwindSafe for CubicCardinalSpline<P>where
P: RefUnwindSafe,
impl<P> Send for CubicCardinalSpline<P>where
P: Send,
impl<P> Sync for CubicCardinalSpline<P>where
P: Sync,
impl<P> Unpin for CubicCardinalSpline<P>where
P: Unpin,
impl<P> UnwindSafe for CubicCardinalSpline<P>where
P: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more