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§
Trait Implementations§
Source§impl Backend for ScalarVisibleFaces
impl Backend for ScalarVisibleFaces
Source§fn descriptor(&self) -> BackendDescriptor
fn descriptor(&self) -> BackendDescriptor
Source§impl Clone for ScalarVisibleFaces
impl Clone for ScalarVisibleFaces
Source§fn clone(&self) -> ScalarVisibleFaces
fn clone(&self) -> ScalarVisibleFaces
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ScalarVisibleFaces
Source§impl Debug for ScalarVisibleFaces
impl Debug for ScalarVisibleFaces
Source§impl Default for ScalarVisibleFaces
impl Default for ScalarVisibleFaces
Source§fn default() -> ScalarVisibleFaces
fn default() -> ScalarVisibleFaces
Source§impl MeshVisibleFaces for ScalarVisibleFaces
impl MeshVisibleFaces for ScalarVisibleFaces
Source§fn scratch_requirement(&self) -> ScratchRequirement
fn scratch_requirement(&self) -> ScratchRequirement
Source§fn cancellation_granularity(&self) -> CancellationGranularity
fn cancellation_granularity(&self) -> CancellationGranularity
Source§fn visible_faces(
&self,
request: &VisibleFaceRequest<'_>,
options: &ExecutionOptions,
) -> Result<VisibleFaceOutcome, HiddenLineError>
fn visible_faces( &self, request: &VisibleFaceRequest<'_>, options: &ExecutionOptions, ) -> Result<VisibleFaceOutcome, HiddenLineError>
request.meshes in request.view.
Implementations must enforce request.limits before growing output.Source§fn supports_projection(&self, projection: ViewProjection) -> bool
fn supports_projection(&self, projection: ViewProjection) -> bool
true for ViewProjection::Orthographic only; see
MeshHiddenLines::supports_projection
(ADR 0107).