Skip to main content

Primitive

Enum Primitive 

Source
#[non_exhaustive]
pub enum Primitive { Block { x: Scalar, y: Scalar, z: Scalar, }, Sphere { radius: Scalar, }, Cylinder { radius: Scalar, height: Scalar, }, Cone { radius: Scalar, height: Scalar, }, Pyramid { x: Scalar, y: Scalar, height: Scalar, }, Torus { major_radius: Scalar, minor_radius: Scalar, }, Wedge { x: Scalar, y: Scalar, height: Scalar, top_x_min: Scalar, top_x_max: Scalar, top_y_min: Scalar, top_y_max: Scalar, }, }
Expand description

Exact primitive solid; tessellation is a separate operation.

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.
§

Block

Axis-aligned box in local coordinates.

Fields

§x: Scalar

Extent along x.

§y: Scalar

Extent along y.

§z: Scalar

Extent along z.

§

Sphere

Sphere centered at the local origin.

Fields

§radius: Scalar

Radius.

§

Cylinder

Cylinder along local +z.

Fields

§radius: Scalar

Radius.

§height: Scalar

Height.

§

Cone

Cone along local +z.

Fields

§radius: Scalar

Base radius.

§height: Scalar

Height.

§

Pyramid

Rectangular pyramid along local +z.

Fields

§x: Scalar

Base extent along x.

§y: Scalar

Base extent along y.

§height: Scalar

Height.

§

Torus

Ring torus centred on the local origin, about local +z.

The tube’s centre circle has radius major_radius in the plane z = 0. Only a ring torus, 0 < minor_radius < major_radius, is a valid solid: at minor == major (a horn torus) the tube pinches the axis to a point, and past it (a spindle torus) the tube overlaps itself, so neither bounds a two-manifold solid.

Fields

§major_radius: Scalar

Radius of the tube’s centre circle.

§minor_radius: Scalar

Radius of the tube.

§

Wedge

Wedge: a box whose top face is narrowed or shifted, as OCCT’s BRepPrimAPI_MakeWedge(dx, dy, dz, xmin, zmin, xmax, zmax) with OCCT’s y (the height) read as local +z here.

The base is the rectangle [0, x] x [0, y] at z = 0 and the top is [top_x_min, top_x_max] x [top_y_min, top_y_max] at z = height. Every face is planar and the solid is the convex hull of the two rectangles. The top may collapse to a segment (top_x_min == top_x_max or top_y_min == top_y_max, a wedge proper) or to a point (a pyramid with its apex anywhere); OCCT’s ltx form is top_x_min = 0, top_x_max = ltx, top_y_min = 0, top_y_max = y.

Fields

§x: Scalar

Base extent along x.

§y: Scalar

Base extent along y.

§height: Scalar

Height along z.

§top_x_min: Scalar

Top face’s least x.

§top_x_max: Scalar

Top face’s greatest x.

§top_y_min: Scalar

Top face’s least y.

§top_y_max: Scalar

Top face’s greatest y.

Trait Implementations§

Source§

impl Clone for Primitive

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Primitive

Source§

impl Debug for Primitive

Source§

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

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

impl PartialEq for Primitive

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Primitive

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.