Skip to main content

ScalarVisibleFaces

Struct ScalarVisibleFaces 

pub struct ScalarVisibleFaces;
Expand description

Reference provider: visible face regions decided exactly in the view’s frame. Portable exact orthographic visible-face provider.

Visibility is decided exactly (module docs of faces): the image is cut by an exact arrangement of the visible mesh edges, the clip segments, the cross-sections of interpenetrating triangles and the crop box; each side of each piece is labelled with the sources frontmost just beside it; and the pieces between different labels bound the regions. Nothing is rounded before a decision. The regions are then snap-rounded to the binary64 grid (ADR 0100): each vertex is the exact point rounded once, so it equals the hidden-line endpoint of the same point, unless an edge passes through the rounding cell of another vertex, in which case the edge is routed through it.

Where several sources are at equal depth over an area they all get it and the evidence counts the tied sides. A triangle seen edge-on covers no area and makes no region. A near plane that cuts a MeshRole::Solid leaves a FaceSource::Cap region. A region that collapses under rounding is dropped and counted in the evidence, never refused.

Implementations§

§

impl ScalarVisibleFaces

pub const ID: BackendId

Stable identity of this provider.

pub const fn new() -> ScalarVisibleFaces

Construct the provider.

Trait Implementations§

§

impl Backend for ScalarVisibleFaces

§

fn descriptor(&self) -> BackendDescriptor

Runtime descriptor and capability inventory.
§

impl Clone for ScalarVisibleFaces

§

fn clone(&self) -> ScalarVisibleFaces

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
§

impl Copy for ScalarVisibleFaces

§

impl Debug for ScalarVisibleFaces

§

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

Formats the value using the given formatter. Read more
§

impl Default for ScalarVisibleFaces

§

fn default() -> ScalarVisibleFaces

Returns the “default value” for a type. Read more
§

impl MeshVisibleFaces for ScalarVisibleFaces

§

fn scratch_requirement(&self) -> ScratchRequirement

Scratch needed beyond inputs and result.
§

fn cancellation_granularity(&self) -> CancellationGranularity

How finely the provider polls cancellation.
§

fn visible_faces( &self, request: &VisibleFaceRequest<'_>, options: &ExecutionOptions, ) -> Result<VisibleFaceOutcome, HiddenLineError>

Find the visible face regions of request.meshes in request.view. Implementations must enforce request.limits before growing output.
Source§

fn supports_projection(&self, projection: ViewProjection) -> bool

Whether the provider computes regions for views of this projection. The default is true for ViewProjection::Orthographic only; see MeshHiddenLines::supports_projection (ADR 0107).

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
§

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

§

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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