Expand description
A one-dimensional shape
The word “curve” is used as an umbrella term for all one-dimensional shapes, and doesn’t imply that those shapes need to be curved. Straight lines are included.
The nomenclature is inspired by Boundary Representation Modelling Techniques by Ian Stroud. “Curve” refers to unbounded one-dimensional geometry, while while edges are bounded portions of curves.
The D parameter defines the dimensions in which the curve is defined.
Typically, only 2 or 3 make sense, which means the curve is defined on
a surface or in a space, respectively.
Variants
Circle(Circle<D>)
A circle
Line(Line<D>)
A line
Implementations
sourceimpl<const D: usize> CurveKind<D>
impl<const D: usize> CurveKind<D>
sourcepub fn line_from_points(points: [impl Into<Point<D>>; 2]) -> Self
pub fn line_from_points(points: [impl Into<Point<D>>; 2]) -> Self
Construct a line from two points
sourcepub fn point_from_curve_coords(&self, point: impl Into<Point<1>>) -> Point<D>
pub fn point_from_curve_coords(&self, point: impl Into<Point<1>>) -> Point<D>
Convert a point on the curve into model coordinates
sourcepub fn vector_from_curve_coords(&self, point: impl Into<Vector<1>>) -> Vector<D>
pub fn vector_from_curve_coords(&self, point: impl Into<Vector<1>>) -> Vector<D>
Convert a vector on the curve into model coordinates
Trait Implementations
sourceimpl<const D: usize> Ord for CurveKind<D>
impl<const D: usize> Ord for CurveKind<D>
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl<const D: usize> PartialEq<CurveKind<D>> for CurveKind<D>
impl<const D: usize> PartialEq<CurveKind<D>> for CurveKind<D>
sourceimpl<const D: usize> PartialOrd<CurveKind<D>> for CurveKind<D>
impl<const D: usize> PartialOrd<CurveKind<D>> for CurveKind<D>
sourcefn partial_cmp(&self, other: &CurveKind<D>) -> Option<Ordering>
fn partial_cmp(&self, other: &CurveKind<D>) -> 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<const D: usize> Copy for CurveKind<D>
impl<const D: usize> Eq for CurveKind<D>
impl<const D: usize> StructuralEq for CurveKind<D>
impl<const D: usize> StructuralPartialEq for CurveKind<D>
Auto Trait Implementations
impl<const D: usize> RefUnwindSafe for CurveKind<D>
impl<const D: usize> Send for CurveKind<D>
impl<const D: usize> Sync for CurveKind<D>
impl<const D: usize> Unpin for CurveKind<D>
impl<const D: usize> UnwindSafe for CurveKind<D>
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.