#[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),
Banked(Banked3),
}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).
Banked(Banked3)
An elevated centreline carrying a cant law: the section rolls about
the tangent by a bank angle, under a named convention. See
Banked3 (ADR 0081).
Trait Implementations§
impl BuiltInNode for Curve3
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<'de> Deserialize<'de> for Curve3
impl<'de> Deserialize<'de> for Curve3
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Curve3, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Curve3, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<Curve3> for GeometryNode
impl From<Curve3> for GeometryNode
Source§fn from(value: Curve3) -> GeometryNode
fn from(value: Curve3) -> GeometryNode
Source§impl Serialize for Curve3
impl Serialize for Curve3
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 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 UnsafeUnpin 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
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