Expand description
An n-dimensional circle
The dimensionality of the circle is defined by the const generic D
parameter.
Fields
center: Point<D>The center point of the circle
a: Vector<D>A vector from the center to the starting point of the circle
The length of this vector defines the circle radius. Please also refer
to the documentation of b.
b: Vector<D>A second vector that defines the plane of the circle
The vector must be of equal length to a (the circle radius) and must
be perpendicular to it. Code working with circles might assume that
these conditions are met.
Implementations
sourceimpl<const D: usize> Circle<D>
impl<const D: usize> Circle<D>
sourcepub fn point_to_circle_coords(&self, point: impl Into<Point<D>>) -> Point<1>
pub fn point_to_circle_coords(&self, point: impl Into<Point<D>>) -> Point<1>
Convert a D-dimensional point to circle coordinates
Converts the provided point into circle coordinates between 0.
(inclusive) and PI * 2. (exclusive).
Projects the point onto the circle before computing circle coordinate, ignoring the radius. This is done to make this method robust against floating point accuracy issues.
Callers are advised to be careful about the points they pass, as the point not being on the curve, intentional or not, will not result in an error.
sourcepub fn point_from_circle_coords(&self, point: impl Into<Point<1>>) -> Point<D>
pub fn point_from_circle_coords(&self, point: impl Into<Point<1>>) -> Point<D>
Convert a point in circle coordinates into a D-dimensional point
sourcepub fn vector_from_circle_coords(
&self,
vector: impl Into<Vector<1>>
) -> Vector<D>
pub fn vector_from_circle_coords(
&self,
vector: impl Into<Vector<1>>
) -> Vector<D>
Convert a vector in circle coordinates into a D-dimensional point
Trait Implementations
sourceimpl<const D: usize> Ord for Circle<D>
impl<const D: usize> Ord for Circle<D>
sourceimpl<const D: usize> PartialOrd<Circle<D>> for Circle<D>
impl<const D: usize> PartialOrd<Circle<D>> for Circle<D>
sourcefn partial_cmp(&self, other: &Circle<D>) -> Option<Ordering>
fn partial_cmp(&self, other: &Circle<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 Circle<D>
impl<const D: usize> Eq for Circle<D>
impl<const D: usize> StructuralEq for Circle<D>
impl<const D: usize> StructuralPartialEq for Circle<D>
Auto Trait Implementations
impl<const D: usize> RefUnwindSafe for Circle<D>
impl<const D: usize> Send for Circle<D>
impl<const D: usize> Sync for Circle<D>
impl<const D: usize> Unpin for Circle<D>
impl<const D: usize> UnwindSafe for Circle<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.