Skip to main content

SurfaceKind

Enum SurfaceKind 

Source
pub enum SurfaceKind {
    Plane,
    CylindricalSurface,
    SphericalSurface,
    ToroidalSurface,
    SurfaceOfLinearExtrusion,
    SurfaceOfRevolution,
    CurveBoundedPlane,
    CurveBoundedSurface,
    RectangularTrimmedSurface,
    BSplineSurface,
    BSplineSurfaceWithKnots,
    RationalBSplineSurfaceWithKnots,
}
Expand description

Which IfcSurface subtype an entity is.

Dispatch on the type name once, then construct the matching view. Returning None rather than an error keeps “not a surface” separate from “a surface we cannot read”, which callers scanning a representation need.

Variants§

§

Plane

IfcPlane.

§

CylindricalSurface

IfcCylindricalSurface.

§

SphericalSurface

IfcSphericalSurface.

§

ToroidalSurface

IfcToroidalSurface.

§

SurfaceOfLinearExtrusion

IfcSurfaceOfLinearExtrusion.

§

SurfaceOfRevolution

IfcSurfaceOfRevolution.

§

CurveBoundedPlane

IfcCurveBoundedPlane.

§

CurveBoundedSurface

IfcCurveBoundedSurface.

§

RectangularTrimmedSurface

IfcRectangularTrimmedSurface.

§

BSplineSurface

IfcBSplineSurface and its non-knotted form.

§

BSplineSurfaceWithKnots

IfcBSplineSurfaceWithKnots.

§

RationalBSplineSurfaceWithKnots

IfcRationalBSplineSurfaceWithKnots.

Implementations§

Source§

impl SurfaceKind

Source

pub fn classify(type_name: &str) -> Option<Self>

Classify by IFC type name, None if not an IfcSurface subtype.

Source

pub fn is_elementary(self) -> bool

Is this an IfcElementarySurface?

The distinguishing property is not “analytic” but unbounded: these are the surfaces that need a container to supply their extent.

Source

pub fn is_bounded(self) -> bool

Is this an IfcBoundedSurface?

The only branch that carries its own extent, so the only branch that can be meshed without asking its container how far to go.

Source

pub fn is_swept(self) -> bool

Is this an IfcSweptSurface?

Source

pub fn has_basis_surface(self) -> bool

Does this surface delegate its shape to another surface?

True for the trimming and curve-bounding wrappers, whose BasisSurface must be resolved before anything can be evaluated. A consumer that does not follow the chain silently drops the geometry.

Trait Implementations§

Source§

impl Clone for SurfaceKind

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 SurfaceKind

Source§

impl Debug for SurfaceKind

Source§

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

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

impl Eq for SurfaceKind

Source§

impl PartialEq for SurfaceKind

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 SurfaceKind

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.