Struct ScalarHiddenLines
pub struct ScalarHiddenLines;Expand description
Reference provider: visibility decided exactly in the view’s frame. Portable exact hidden-line provider for orthographic and perspective views.
Visibility is decided exactly in the view’s affine frame: nothing is
rounded before a decision, only the endpoints of the output pieces are
(each the exact point rounded once). For every edge it examines the
triangles whose view-space bounding box can matter, found in an
axiolid-spatial BVH; in the worst case (everything overlaps in the
image) the cost still grows with edges times triangles, and
max_candidate_pairs bounds it.
A near clipping plane that cuts a MeshRole::Solid leaves a cap that
occludes (decided by ray parity with a symbolic perturbation of the image
point); a solid wholly beyond the plane is removed: it neither occludes
nor is drawn. A failure to produce an endpoint (a coordinate beyond the
binary64 range) is Degenerate and names the mesh of the edge.
Implementations§
§impl ScalarHiddenLines
impl ScalarHiddenLines
pub const fn new() -> ScalarHiddenLines
pub const fn new() -> ScalarHiddenLines
Construct the provider.
Trait Implementations§
§impl Backend for ScalarHiddenLines
impl Backend for ScalarHiddenLines
§fn descriptor(&self) -> BackendDescriptor
fn descriptor(&self) -> BackendDescriptor
§impl Clone for ScalarHiddenLines
impl Clone for ScalarHiddenLines
§fn clone(&self) -> ScalarHiddenLines
fn clone(&self) -> ScalarHiddenLines
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 ScalarHiddenLines
§impl Debug for ScalarHiddenLines
impl Debug for ScalarHiddenLines
§impl Default for ScalarHiddenLines
impl Default for ScalarHiddenLines
§fn default() -> ScalarHiddenLines
fn default() -> ScalarHiddenLines
§impl MeshHiddenLines for ScalarHiddenLines
impl MeshHiddenLines for ScalarHiddenLines
§fn scratch_requirement(&self) -> ScratchRequirement
fn scratch_requirement(&self) -> ScratchRequirement
§fn cancellation_granularity(&self) -> CancellationGranularity
fn cancellation_granularity(&self) -> CancellationGranularity
§fn supports_projection(&self, projection: ViewProjection) -> bool
fn supports_projection(&self, projection: ViewProjection) -> bool
true for ViewProjection::Orthographic only, so a provider written
before ViewProjection existed, which ignores the field, is never given
a perspective view by a registry (ADR 0107). A provider that returns
true for a projection must draw it exactly and pass that
projection’s conformance suite.request.meshes in request.view.
Implementations must enforce request.limits before growing output.Auto Trait Implementations§
impl Freeze for ScalarHiddenLines
impl RefUnwindSafe for ScalarHiddenLines
impl Send for ScalarHiddenLines
impl Sync for ScalarHiddenLines
impl Unpin for ScalarHiddenLines
impl UnsafeUnpin for ScalarHiddenLines
impl UnwindSafe for ScalarHiddenLines
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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