pub enum ProjectedCurve {
Point(Point2),
Line {
start: Point2,
end: Point2,
},
Circle {
centre: Point2,
radius: f64,
range: (f64, f64),
},
Ellipse {
centre: Point2,
major: Vector2,
ratio: f64,
range: (f64, f64),
},
Parabola {
vertex: Point2,
axis: Vector2,
focal: f64,
range: (f64, f64),
},
Hyperbola {
centre: Point2,
major: Vector2,
minor: Vector2,
range: (f64, f64),
},
BSpline {
curve: BSpline2d,
fit_error: Option<f64>,
},
}Expand description
An edge’s orthogonal projection onto a plane, in the plane frame’s x
and y coordinates.
Variants§
Point(Point2)
The edge projects to one point: a line along the plane’s normal.
Line
A segment.
Circle
A circle or circular arc, centre + radius (cos t, sin t), turning
counter-clockwise about the plane’s normal from range.0 to
range.1; a full turn where the range spans one.
Fields
Ellipse
An ellipse or elliptical arc, centre + major cos t + minor sin t
with minor the major axis turned a quarter counter-clockwise and
scaled by ratio, from range.0 to range.1.
Fields
Parabola
A parabola or a piece of one, vertex + axis s^2 / (4 focal) + side s
with axis a unit vector and side it turned a quarter
counter-clockwise, over s from range.0 to range.1. s is the
edge’s own parameter scaled and shifted, increasing with it or
against it.
Fields
Hyperbola
A hyperbola’s branch or a piece of one, centre + major cosh s + minor sinh s with major and minor square, over s from
range.0 to range.1: the edge’s own parameter shifted.
Fields
BSpline
A B-spline: exact for a B-spline edge, fitted for any other curve at
the edge’s own parameter, with the fit’s largest miss in
fit_error.
Trait Implementations§
Source§impl Clone for ProjectedCurve
impl Clone for ProjectedCurve
Source§impl Debug for ProjectedCurve
impl Debug for ProjectedCurve
Source§impl PartialEq for ProjectedCurve
impl PartialEq for ProjectedCurve
impl StructuralPartialEq for ProjectedCurve
Auto Trait Implementations§
impl Freeze for ProjectedCurve
impl RefUnwindSafe for ProjectedCurve
impl Send for ProjectedCurve
impl Sync for ProjectedCurve
impl Unpin for ProjectedCurve
impl UnsafeUnpin for ProjectedCurve
impl UnwindSafe for ProjectedCurve
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,
impl<T> Scalar 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>
self from the equivalent element of its
superset. Read more§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).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.