pub struct RefFrameState {
pub trans: RefFrameTrans,
pub rot: RefFrameRot,
}Expand description
Combined translational + rotational state of a frame relative to its
parent. The untyped storage form used by crate::FrameTree.
Fields§
§trans: RefFrameTransTranslational state in parent coordinates.
rot: RefFrameRotRotational state (parent → this).
Implementations§
Source§impl RefFrameState
impl RefFrameState
Sourcepub fn negate(source: &RefFrameState) -> RefFrameState
pub fn negate(source: &RefFrameState) -> RefFrameState
Negate (invert) a frame state.
If source represents the state of frame B relative to frame A (A->B),
the result represents the state of frame A relative to frame B (B->A).
Ported from JEOD ref_frame_state.cc negate method.
Convention:
trans.position: position of “this” frame’s origin in parent frame coordstrans.velocity: velocity of “this” frame’s origin in parent frame coordsrot.t_parent_this: transforms vectors FROM parent TO this framerot.ang_vel_this: angular velocity of this frame relative to parent, in this frame coords
Sourcepub fn incr_right(&self, s_bc: &RefFrameState) -> RefFrameState
pub fn incr_right(&self, s_bc: &RefFrameState) -> RefFrameState
Compose self (A->B) with s_bc (B->C) to produce A->C.
“Increment right”: given self = S_{A:B} and s_bc = S_{B:C}, compute and return S_{A:C}.
Ported from JEOD ref_frame_state.cc incr_right / compose_state.
Sourcepub fn incr_left(&mut self, s_ab: &RefFrameState)
pub fn incr_left(&mut self, s_ab: &RefFrameState)
Compose s_ab (A->B) with self (B->C) to produce A->C, updating self in place.
“Increment left”: given s_ab = S_{A:B} and self = S_{B:C}, update self to become S_{A:C}.
Same math as incr_right but with different roles.
Trait Implementations§
Source§impl Clone for RefFrameState
impl Clone for RefFrameState
Source§fn clone(&self) -> RefFrameState
fn clone(&self) -> RefFrameState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RefFrameState
impl Debug for RefFrameState
Source§impl Default for RefFrameState
impl Default for RefFrameState
Source§fn default() -> RefFrameState
fn default() -> RefFrameState
Source§impl PartialEq for RefFrameState
impl PartialEq for RefFrameState
Source§fn eq(&self, other: &RefFrameState) -> bool
fn eq(&self, other: &RefFrameState) -> bool
self and other values to be equal, and is used by ==.impl Copy for RefFrameState
impl StructuralPartialEq for RefFrameState
Auto Trait Implementations§
impl Freeze for RefFrameState
impl RefUnwindSafe for RefFrameState
impl Send for RefFrameState
impl Sync for RefFrameState
impl Unpin for RefFrameState
impl UnsafeUnpin for RefFrameState
impl UnwindSafe for RefFrameState
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
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>
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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.