pub struct Topp3Profile {
pub a: Vec<f64>,
pub b: Vec<f64>,
pub num_stationary: (usize, usize),
}Expand description
Node-based third-order TOPP/COPP profile.
The three fields are tied together by convention: a.len() == b.len(),
and num_stationary describes stationary head/tail intervals on the same
path grid used with those node profiles.
Fields§
§a: Vec<f64>Node samples of $a_k = \dot{s}_k^2$.
b: Vec<f64>Node samples of $b_k = \ddot{s}_k$.
num_stationary: (usize, usize)Stationary boundary interval counts as (head, tail).
head counts stationary intervals at the start of the grid, and
tail counts stationary intervals at the end. These markers are used
by TOPP3/COPP3 interpolation and timing reconstruction.
Implementations§
Source§impl Topp3Profile
impl Topp3Profile
Sourcepub fn new(a: Vec<f64>, b: Vec<f64>, num_stationary: (usize, usize)) -> Self
pub fn new(a: Vec<f64>, b: Vec<f64>, num_stationary: (usize, usize)) -> Self
Build a third-order profile from owned parts.
Sourcepub fn as_parts(&self) -> Topp3ProfileRef<'_>
pub fn as_parts(&self) -> Topp3ProfileRef<'_>
Borrow the profile as (a, b, num_stationary) parts.
Sourcepub fn as_parts_mut(&mut self) -> Topp3ProfileMut<'_>
pub fn as_parts_mut(&mut self) -> Topp3ProfileMut<'_>
Mutably borrow the profile as (a, b, num_stationary) parts.
Trait Implementations§
Source§impl Clone for Topp3Profile
impl Clone for Topp3Profile
Source§fn clone(&self) -> Topp3Profile
fn clone(&self) -> Topp3Profile
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 moreSource§impl Debug for Topp3Profile
impl Debug for Topp3Profile
Source§impl PartialEq for Topp3Profile
impl PartialEq for Topp3Profile
impl StructuralPartialEq for Topp3Profile
Auto Trait Implementations§
impl Freeze for Topp3Profile
impl RefUnwindSafe for Topp3Profile
impl Send for Topp3Profile
impl Sync for Topp3Profile
impl Unpin for Topp3Profile
impl UnwindSafe for Topp3Profile
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§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 more§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).§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.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.