#[non_exhaustive]pub enum Curve3 {
Line(Line<DVec3, DVec3>),
Circle(Circle3),
Ellipse(Ellipse3),
Polyline(Polyline<DVec3>),
BSpline(BSplineCurve<DVec3>),
Intrinsic(Intrinsic3),
Elevated(Elevated3),
RuledSection(RuledSection3),
TorusSection(TorusSection3),
ImplicitSection(ImplicitSection3),
PairSection(PairSection3),
}Expand description
Atomic three-dimensional curve values.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Line(Line<DVec3, DVec3>)
Infinite line.
Circle(Circle3)
Circle in a plane.
Ellipse(Ellipse3)
Ellipse in a plane.
Polyline(Polyline<DVec3>)
Piecewise linear curve.
BSpline(BSplineCurve<DVec3>)
Polynomial or rational B-spline.
Intrinsic(Intrinsic3)
Curve given by its natural equations: curvature AND torsion as functions of arc length, anchored to a start frame. Carries helices and general space spirals as exact values.
Elevated(Elevated3)
A planar curve paired with an elevation law: the exact composition an
alignment centreline is authored as. See Elevated3.
RuledSection(RuledSection3)
A quadric’s cut across a cylinder or cone: the carrier evaluated along
a QuadraticGraph2. See RuledSection3 (ADR 0076).
TorusSection(TorusSection3)
A plane’s or sphere’s cut across a torus: the torus evaluated along
an AngleGraph2. See TorusSection3 (ADR 0076).
ImplicitSection(ImplicitSection3)
An ImplicitCurve2 on its analytic carrier: the section of a
torus by a cylinder, cone or torus, and any other analytic pair with
no closed form. See ImplicitSection3 (ADR 0077).
PairSection(PairSection3)
Where two B-spline surfaces meet, carried by nodes on both and
defined between them by the surfaces themselves. See
PairSection3 (ADR 0077).
Trait Implementations§
Source§impl CurveEvaluator<Curve3> for ScalarCurve
impl CurveEvaluator<Curve3> for ScalarCurve
Source§type Derivative = DVec3
type Derivative = DVec3
Source§fn evaluate(
&self,
curve: &Curve3,
t: f64,
_tolerance: Tolerance,
) -> Result<<ScalarCurve as CurveEvaluator<Curve3>>::Point, <ScalarCurve as CurveEvaluator<Curve3>>::Error>
fn evaluate( &self, curve: &Curve3, t: f64, _tolerance: Tolerance, ) -> Result<<ScalarCurve as CurveEvaluator<Curve3>>::Point, <ScalarCurve as CurveEvaluator<Curve3>>::Error>
t.Source§fn derivative(
&self,
curve: &Curve3,
t: f64,
_tolerance: Tolerance,
) -> Result<<ScalarCurve as CurveEvaluator<Curve3>>::Derivative, <ScalarCurve as CurveEvaluator<Curve3>>::Error>
fn derivative( &self, curve: &Curve3, t: f64, _tolerance: Tolerance, ) -> Result<<ScalarCurve as CurveEvaluator<Curve3>>::Derivative, <ScalarCurve as CurveEvaluator<Curve3>>::Error>
t.Source§impl From<Curve3> for GeometryNode
impl From<Curve3> for GeometryNode
Source§fn from(value: Curve3) -> GeometryNode
fn from(value: Curve3) -> GeometryNode
impl BuiltInNode for Curve3
impl StructuralPartialEq for Curve3
Auto Trait Implementations§
impl Freeze for Curve3
impl RefUnwindSafe for Curve3
impl Send for Curve3
impl Sync for Curve3
impl Unpin for Curve3
impl UnwindSafe for Curve3
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