#[non_exhaustive]pub enum SolidOperation {
Extrusion {
profile: NodeId,
direction: Vec3,
depth: Scalar,
},
TaperedExtrusion {
start_profile: NodeId,
end_profile: NodeId,
direction: Vec3,
depth: Scalar,
},
Revolution {
profile: NodeId,
axis_origin: Point3,
axis_direction: Vec3,
angle: Scalar,
},
TaperedRevolution {
start_profile: NodeId,
end_profile: NodeId,
axis_origin: Point3,
axis_direction: Vec3,
angle: Scalar,
},
SweptDisk {
directrix: NodeId,
radius: Scalar,
inner_radius: Option<Scalar>,
parameter_range: Option<(Scalar, Scalar)>,
fillet_radius: Option<Scalar>,
},
FixedReferenceSweep {
profile: NodeId,
directrix: NodeId,
reference_direction: Vec3,
parameter_range: Option<(Scalar, Scalar)>,
},
SurfaceCurveSweep {
profile: NodeId,
directrix: NodeId,
reference_surface: NodeId,
parameter_range: Option<(Scalar, Scalar)>,
},
SectionedSpine {
spine: NodeId,
sections: Vec<Section>,
},
Boolean {
left: NodeId,
right: NodeId,
operator: BooleanOperator,
},
BoundedHalfSpace {
half_space: NodeId,
boundary: NodeId,
placement: Transform3,
},
}Expand description
Relationship that constructs a solid from lower-level geometry.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Extrusion
Linear extrusion of a profile.
TaperedExtrusion
Tapered linear extrusion between two profiles.
Revolution
Revolution of a profile.
TaperedRevolution
Tapered revolution between two profiles.
Fields
SweptDisk
Disk swept along a directrix curve.
fillet_radius rounds the corners where consecutive directrix segments
meet, and is meaningful only on a piecewise-linear directrix: a smooth
curve has no corners to round. None means sharp corners, which is
also the correct reading for any directrix that is already smooth.
It is a property of the SWEEP, not of the disk: the disk stays circular
and it is the swept path whose corners are filleted. A consumer that
cannot round corners must refuse a Some rather than drop it, because
silently sharpening a pipe run produces geometry that builds, renders,
and is wrong.
Fields
FixedReferenceSweep
Profile swept along a directrix using a fixed reference direction.
Fields
SurfaceCurveSweep
Profile swept along a directrix constrained by a reference surface.
Fields
SectionedSpine
Sections interpolated along a spine.
Boolean
General CSG binary operation.
BoundedHalfSpace
Unbounded half-space clipped by a finite boundary geometry.
Fields
boundary: NodeIdA closed 2D curve in placement’s XY plane. A 3D curve is
refused when the graph is built.
placement: Transform3The boundary’s own frame, independent of the clip plane.
The boundary profile is authored in this frame, so its rotation orients the profile itself rather than the finished solid. A source format may place the boundary independently of the base surface, and only the rotation about the clip normal is meaningful: the compiler projects this frame’s axes into the plane, so a component along the normal is dropped rather than tilting the profile out of its own plane.
Trait Implementations§
Source§impl Clone for SolidOperation
impl Clone for SolidOperation
Source§fn clone(&self) -> SolidOperation
fn clone(&self) -> SolidOperation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more