Skip to main content

ScalarVisibleFaces

Struct ScalarVisibleFaces 

Source
pub struct ScalarVisibleFaces;
Expand description

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§

Source§

impl ScalarVisibleFaces

Source

pub const ID: BackendId

Stable identity of this provider.

Source

pub const fn new() -> Self

Construct the provider.

Trait Implementations§

Source§

impl Backend for ScalarVisibleFaces

Source§

fn descriptor(&self) -> BackendDescriptor

Runtime descriptor and capability inventory.
Source§

impl Clone for ScalarVisibleFaces

Source§

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

impl Copy for ScalarVisibleFaces

Source§

impl Debug for ScalarVisibleFaces

Source§

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

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

impl Default for ScalarVisibleFaces

Source§

fn default() -> ScalarVisibleFaces

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

impl MeshVisibleFaces for ScalarVisibleFaces

Source§

fn scratch_requirement(&self) -> ScratchRequirement

Scratch needed beyond inputs and result.
Source§

fn cancellation_granularity(&self) -> CancellationGranularity

How finely the provider polls cancellation.
Source§

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