pub struct MeshVisibleFacesRegistry { /* private fields */ }Expand description
Ordered executable visible-face providers.
Only unsupported/unavailable providers permit fallback. Geometry,
degeneracy, budget, cancellation, and contract errors fail immediately.
A refusal caused by one input mesh names it
(HiddenLineError::mesh); a refusal of the whole request does not.
Implementations§
Source§impl MeshVisibleFacesRegistry
impl MeshVisibleFacesRegistry
Sourcepub fn register<P>(&mut self, priority: i32, provider: P)where
P: MeshVisibleFaces + 'static,
pub fn register<P>(&mut self, priority: i32, provider: P)where
P: MeshVisibleFaces + 'static,
Register an implementation. Higher priorities run first.
Sourcepub fn register_conformant<P>(
&mut self,
priority: i32,
provider: P,
) -> Result<(), Box<FaceConformanceReport>>where
P: MeshVisibleFaces + 'static,
pub fn register_conformant<P>(
&mut self,
priority: i32,
provider: P,
) -> Result<(), Box<FaceConformanceReport>>where
P: MeshVisibleFaces + 'static,
Validate a provider with the shared conformance suite before registration.
A provider that claims perspective views (supports_projection) is
also run through the perspective suite, and a failure of it is
reported as a ReturnedError of the case perspective claim, so a
claim is never routed to unverified (ADR 0107).
Sourcepub fn register_perspective_conformant<P>(
&mut self,
priority: i32,
provider: P,
) -> Result<(), Box<PerspectiveConformanceReport>>where
P: MeshVisibleFaces + 'static,
pub fn register_perspective_conformant<P>(
&mut self,
priority: i32,
provider: P,
) -> Result<(), Box<PerspectiveConformanceReport>>where
P: MeshVisibleFaces + 'static,
Validate a provider with the shared suite and the perspective suite
before registration (ADR 0107); see
MeshHiddenLinesRegistry::register_perspective_conformant.
Sourcepub fn register_arc(
&mut self,
priority: i32,
provider: Arc<dyn MeshVisibleFaces>,
)
pub fn register_arc( &mut self, priority: i32, provider: Arc<dyn MeshVisibleFaces>, )
Register a shared implementation. Higher priorities run first.
Sourcepub fn providers(&self) -> impl Iterator<Item = &dyn MeshVisibleFaces>
pub fn providers(&self) -> impl Iterator<Item = &dyn MeshVisibleFaces>
Registered providers in dispatch order.
Sourcepub fn visible_faces(
&self,
request: &VisibleFaceRequest<'_>,
options: &ExecutionOptions,
) -> Result<VisibleFaceOutcome, HiddenLineError>
pub fn visible_faces( &self, request: &VisibleFaceRequest<'_>, options: &ExecutionOptions, ) -> Result<VisibleFaceOutcome, HiddenLineError>
Validate and execute one visible-face request.
Trait Implementations§
Source§impl Clone for MeshVisibleFacesRegistry
impl Clone for MeshVisibleFacesRegistry
Source§fn clone(&self) -> MeshVisibleFacesRegistry
fn clone(&self) -> MeshVisibleFacesRegistry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MeshVisibleFacesRegistry
impl Debug for MeshVisibleFacesRegistry
Source§impl Default for MeshVisibleFacesRegistry
impl Default for MeshVisibleFacesRegistry
Source§fn default() -> MeshVisibleFacesRegistry
fn default() -> MeshVisibleFacesRegistry
Auto Trait Implementations§
impl !RefUnwindSafe for MeshVisibleFacesRegistry
impl !UnwindSafe for MeshVisibleFacesRegistry
impl Freeze for MeshVisibleFacesRegistry
impl Send for MeshVisibleFacesRegistry
impl Sync for MeshVisibleFacesRegistry
impl Unpin for MeshVisibleFacesRegistry
impl UnsafeUnpin for MeshVisibleFacesRegistry
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
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