pub struct Local<T: LocalForm> { /* private fields */ }Expand description
A wrapper around the local and global forms of a type
The local form is whatever representation of the value that is most appropriate in a given local context, which might be a curve or surface. The global form is the global 3D form of the same value.
The purpose of storing both forms is to be able to losslessly convert between them. Even if this conversion can be computed on the fly, it might be lossy due to floating point accuracy issues.
Implementations
sourceimpl<T: LocalForm> Local<T>
impl<T: LocalForm> Local<T>
sourcepub fn new(local: impl Into<T>, global: impl Into<T::GlobalForm>) -> Self
pub fn new(local: impl Into<T>, global: impl Into<T::GlobalForm>) -> Self
Construct a new instance
It is the caller’s responsibility to make sure that the local and global forms passed into this constructor match.
sourcepub fn global(&self) -> T::GlobalForm
pub fn global(&self) -> T::GlobalForm
Access the global form of the value
Trait Implementations
sourceimpl HasPosition for Local<Point<2>>
impl HasPosition for Local<Point<2>>
sourceimpl<T: Ord + LocalForm> Ord for Local<T> where
T::GlobalForm: Ord,
impl<T: Ord + LocalForm> Ord for Local<T> where
T::GlobalForm: Ord,
sourceimpl<T: PartialEq + LocalForm> PartialEq<Local<T>> for Local<T> where
T::GlobalForm: PartialEq,
impl<T: PartialEq + LocalForm> PartialEq<Local<T>> for Local<T> where
T::GlobalForm: PartialEq,
sourceimpl<T: PartialOrd + LocalForm> PartialOrd<Local<T>> for Local<T> where
T::GlobalForm: PartialOrd,
impl<T: PartialOrd + LocalForm> PartialOrd<Local<T>> for Local<T> where
T::GlobalForm: PartialOrd,
sourcefn partial_cmp(&self, other: &Local<T>) -> Option<Ordering>
fn partial_cmp(&self, other: &Local<T>) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl<T: Copy + LocalForm> Copy for Local<T> where
T::GlobalForm: Copy,
impl<T: Eq + LocalForm> Eq for Local<T> where
T::GlobalForm: Eq,
impl<T: LocalForm> StructuralEq for Local<T>
impl<T: LocalForm> StructuralPartialEq for Local<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for Local<T> where
T: RefUnwindSafe,
<T as LocalForm>::GlobalForm: RefUnwindSafe,
impl<T> Send for Local<T> where
T: Send,
<T as LocalForm>::GlobalForm: Send,
impl<T> Sync for Local<T> where
T: Sync,
<T as LocalForm>::GlobalForm: Sync,
impl<T> Unpin for Local<T> where
T: Unpin,
<T as LocalForm>::GlobalForm: Unpin,
impl<T> UnwindSafe for Local<T> where
T: UnwindSafe,
<T as LocalForm>::GlobalForm: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
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.