#[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),
Chain(Chain2),
}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).
Chain(Chain2)
Trait Implementations§
impl BuiltInNode for Curve2
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<'de> Deserialize<'de> for Curve2
impl<'de> Deserialize<'de> for Curve2
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Curve2, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Curve2, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<Curve2> for GeometryNode
impl From<Curve2> for GeometryNode
Source§fn from(value: Curve2) -> GeometryNode
fn from(value: Curve2) -> GeometryNode
Source§impl Serialize for Curve2
impl Serialize for Curve2
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
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 UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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