#[non_exhaustive]pub enum Curve2 {
Line(Line<DVec2, DVec2>),
Circle(Circle2),
Ellipse(Ellipse2),
Polyline(Polyline<DVec2>),
BSpline(BSplineCurve<DVec2>),
Intrinsic(Intrinsic2),
Sinusoid(Sinusoid2),
QuadraticGraph(QuadraticGraph2),
AngleGraph(AngleGraph2),
Implicit(ImplicitCurve2),
Lifted(LiftedCurve2),
}Expand description
Atomic two-dimensional curve values.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Line(Line<DVec2, DVec2>)
Infinite line.
Circle(Circle2)
Circle.
Ellipse(Ellipse2)
Ellipse.
Polyline(Polyline<DVec2>)
Piecewise linear curve.
BSpline(BSplineCurve<DVec2>)
Polynomial or rational B-spline.
Intrinsic(Intrinsic2)
Curve given by its natural equation: curvature as a function of arc length, anchored to a start frame. Carries clothoid and other transition spirals exactly, which no parametric variant can.
Sinusoid(Sinusoid2)
The graph v = mean + a cos(t) + b sin(t): the exact pcurve of a
plane’s cut across a cylinder, read in the cylinder’s (angle, height)
parameters. See Sinusoid2 (ADR 0071).
QuadraticGraph(QuadraticGraph2)
One root of a(t) v^2 + b(t) v + c(t) = 0 as a graph over t: the
exact pcurve of a quadric’s cut across a cylinder or cone. See
QuadraticGraph2 (ADR 0076).
AngleGraph(AngleGraph2)
A solution of a(t) cos u + b(t) sin u = c(t) as u over t: the
exact pcurve of a plane’s or sphere’s cut across a torus. See
AngleGraph2 (ADR 0076).
Implicit(ImplicitCurve2)
A stretch of a field’s zero set, the field being another analytic
surface’s equation read in this surface’s parameters: the exact
pcurve of any section between planes, quadrics and tori. See
ImplicitCurve2 (ADR 0077).
Lifted(LiftedCurve2)
A space curve read in an analytic surface’s parameters, sharing the
curve’s parameter: the pcurve of a B-spline’s section on the analytic
face it meets. See LiftedCurve2 (ADR 0077).
Trait Implementations§
Source§impl CurveEvaluator<Curve2> for ScalarCurve
impl CurveEvaluator<Curve2> for ScalarCurve
Source§type Derivative = DVec2
type Derivative = DVec2
Source§fn evaluate(
&self,
curve: &Curve2,
t: f64,
_tolerance: Tolerance,
) -> Result<<ScalarCurve as CurveEvaluator<Curve2>>::Point, <ScalarCurve as CurveEvaluator<Curve2>>::Error>
fn evaluate( &self, curve: &Curve2, t: f64, _tolerance: Tolerance, ) -> Result<<ScalarCurve as CurveEvaluator<Curve2>>::Point, <ScalarCurve as CurveEvaluator<Curve2>>::Error>
t.Source§fn derivative(
&self,
curve: &Curve2,
t: f64,
_tolerance: Tolerance,
) -> Result<<ScalarCurve as CurveEvaluator<Curve2>>::Derivative, <ScalarCurve as CurveEvaluator<Curve2>>::Error>
fn derivative( &self, curve: &Curve2, t: f64, _tolerance: Tolerance, ) -> Result<<ScalarCurve as CurveEvaluator<Curve2>>::Derivative, <ScalarCurve as CurveEvaluator<Curve2>>::Error>
t.Source§impl From<Curve2> for GeometryNode
impl From<Curve2> for GeometryNode
Source§fn from(value: Curve2) -> GeometryNode
fn from(value: Curve2) -> GeometryNode
impl BuiltInNode for Curve2
impl StructuralPartialEq for Curve2
Auto Trait Implementations§
impl Freeze for Curve2
impl RefUnwindSafe for Curve2
impl Send for Curve2
impl Sync for Curve2
impl Unpin for Curve2
impl UnwindSafe for Curve2
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 more