#[non_exhaustive]pub enum CurveRelation {
Composite {
segments: Vec<CurveSegment>,
},
Trimmed {
basis: NodeId,
start: Vec<TrimSelector>,
end: Vec<TrimSelector>,
sense_agreement: bool,
preference: TrimmingPreference,
},
Offset {
basis: NodeId,
distance: f64,
reference_direction: Option<DVec3>,
},
SurfaceCurve {
curve_3d: NodeId,
sides: SurfaceSides,
master: MasterRepresentation,
},
ParameterCurve {
basis_surface: NodeId,
reference_curve: NodeId,
},
OffsetByStations {
basis: NodeId,
stations: Vec<Station>,
frame: StationFrame,
},
OffsetsAtStations {
basis: NodeId,
stations: Vec<RunStation>,
frame: StationFrame,
},
}Expand description
Relationship between curve nodes.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Composite
Ordered composite curve.
Fields
segments: Vec<CurveSegment>Trimmed
Trimmed view of a basis curve.
Offset
Constant-distance offset.
SurfaceCurve
Three-dimensional curve associated with one or more surfaces/pcurves.
Fields
sides: SurfaceSidesThe parametric sides, each pairing a surface with its own p-curve.
master: MasterRepresentationParameterCurve
Two-dimensional parameter curve on a surface.
OffsetByStations
A curve through offsets given at stations along a basis curve (#241).
The curve runs from the first station’s distance to the last’s; at
a distance s between two stations it is the point the offsets
linearly interpolated in s give in the basis curve’s frame at
s (see crate::station). It is a 3D curve whatever the basis:
a 2D basis lies in z = 0. At least two stations, strictly
increasing in distance, are required.
OffsetsAtStations
A curve through offsets given at stations along a basis curve, each
station with the side of a seam it reads and a seam-snapping window
(#301): the general form of CurveRelation::OffsetByStations.
The curve is the one OffsetByStations names for the stations at
their snapped distances: a windowed station within its window of
one seam of the basis stands on that seam, and the side is read
where the run does not decide it (see crate::station). At least
two stations, strictly increasing in distance, are required.
Trait Implementations§
impl BuiltInNode for CurveRelation
Source§impl Clone for CurveRelation
impl Clone for CurveRelation
Source§fn clone(&self) -> CurveRelation
fn clone(&self) -> CurveRelation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CurveRelation
impl Debug for CurveRelation
Source§impl<'de> Deserialize<'de> for CurveRelation
impl<'de> Deserialize<'de> for CurveRelation
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<CurveRelation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<CurveRelation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<CurveRelation> for GeometryNode
impl From<CurveRelation> for GeometryNode
Source§fn from(value: CurveRelation) -> GeometryNode
fn from(value: CurveRelation) -> GeometryNode
Source§impl PartialEq for CurveRelation
impl PartialEq for CurveRelation
Source§impl Serialize for CurveRelation
impl Serialize for CurveRelation
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 CurveRelation
Auto Trait Implementations§
impl Freeze for CurveRelation
impl RefUnwindSafe for CurveRelation
impl Send for CurveRelation
impl Sync for CurveRelation
impl Unpin for CurveRelation
impl UnsafeUnpin for CurveRelation
impl UnwindSafe for CurveRelation
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