Enum SolidOperation

Source
#[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
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Extrusion

Linear extrusion of a profile.

Fields

§profile: NodeId
§direction: Vec3
§depth: Scalar
§

TaperedExtrusion

Tapered linear extrusion between two profiles.

Fields

§start_profile: NodeId
§end_profile: NodeId
§direction: Vec3
§depth: Scalar
§

Revolution

Revolution of a profile.

Fields

§profile: NodeId
§axis_origin: Point3
§axis_direction: Vec3
§angle: Scalar
§

TaperedRevolution

Tapered revolution between two profiles.

Fields

§start_profile: NodeId
§end_profile: NodeId
§axis_origin: Point3
§axis_direction: Vec3
§angle: Scalar
§

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

§directrix: NodeId
§radius: Scalar
§inner_radius: Option<Scalar>
§parameter_range: Option<(Scalar, Scalar)>
§fillet_radius: Option<Scalar>

Corner rounding radius; None means sharp corners.

§

FixedReferenceSweep

Profile swept along a directrix using a fixed reference direction.

Fields

§profile: NodeId
§directrix: NodeId
§reference_direction: Vec3
§parameter_range: Option<(Scalar, Scalar)>
§

SurfaceCurveSweep

Profile swept along a directrix constrained by a reference surface.

Fields

§profile: NodeId
§directrix: NodeId
§reference_surface: NodeId
§parameter_range: Option<(Scalar, Scalar)>
§

SectionedSpine

Sections interpolated along a spine.

Fields

§spine: NodeId
§sections: Vec<Section>
§

Boolean

General CSG binary operation.

Fields

§left: NodeId
§right: NodeId
§

BoundedHalfSpace

Unbounded half-space clipped by a finite boundary geometry.

Fields

§half_space: NodeId
§boundary: NodeId

A closed 2D curve in placement’s XY plane. A 3D curve is refused when the graph is built.

§placement: Transform3

The 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

Source§

fn clone(&self) -> SolidOperation

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SolidOperation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<SolidOperation> for GeometryNode

Source§

fn from(value: SolidOperation) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for SolidOperation

Source§

fn eq(&self, other: &SolidOperation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl BuiltInNode for SolidOperation

Source§

impl StructuralPartialEq for SolidOperation

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.