Struct MeshVisibleFacesRegistry
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§
§impl MeshVisibleFacesRegistry
impl MeshVisibleFacesRegistry
pub const fn new() -> MeshVisibleFacesRegistry
pub const fn new() -> MeshVisibleFacesRegistry
Empty registry.
pub 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.
pub 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).
pub 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.
pub 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.
pub fn providers(&self) -> impl Iterator<Item = &dyn MeshVisibleFaces>
pub fn providers(&self) -> impl Iterator<Item = &dyn MeshVisibleFaces>
Registered providers in dispatch order.
pub 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§
§impl Clone for MeshVisibleFacesRegistry
impl Clone for MeshVisibleFacesRegistry
§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 more§impl Debug for MeshVisibleFacesRegistry
impl Debug for MeshVisibleFacesRegistry
§impl Default for MeshVisibleFacesRegistry
impl Default for MeshVisibleFacesRegistry
§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
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