pub struct FrenetFrame {
pub tangent: [f64; 3],
pub normal: [f64; 3],
pub binormal: [f64; 3],
}Expand description
The Frenet–Serret frame at a point on a curve.
Fields§
§tangent: [f64; 3]Unit tangent vector T = C’(t) / |C’(t)|.
normal: [f64; 3]Unit normal vector N = T’(t) / |T’(t)|.
binormal: [f64; 3]Binormal vector B = T × N.
Implementations§
Source§impl FrenetFrame
impl FrenetFrame
Sourcepub fn compute(
tangent_fn: impl Fn(f64) -> [f64; 3],
dtangent_fn: impl Fn(f64) -> [f64; 3],
t: f64,
) -> Self
pub fn compute( tangent_fn: impl Fn(f64) -> [f64; 3], dtangent_fn: impl Fn(f64) -> [f64; 3], t: f64, ) -> Self
Compute the Frenet frame at parameter t for a curve whose tangent and
second derivative are provided as closures.
tangent_fn(t) should return C'(t) and dtangent_fn(t) should
return C''(t). Both are then normalized internally.
Sourcepub fn from_bezier(curve: &BezierCurve, t: f64) -> Self
pub fn from_bezier(curve: &BezierCurve, t: f64) -> Self
Compute the Frenet frame for a BezierCurve at t using finite
differences for the second derivative.
Trait Implementations§
Source§impl Clone for FrenetFrame
impl Clone for FrenetFrame
Source§fn clone(&self) -> FrenetFrame
fn clone(&self) -> FrenetFrame
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FrenetFrame
impl RefUnwindSafe for FrenetFrame
impl Send for FrenetFrame
impl Sync for FrenetFrame
impl Unpin for FrenetFrame
impl UnsafeUnpin for FrenetFrame
impl UnwindSafe for FrenetFrame
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.