pub struct GeometryRouter { /* private fields */ }Expand description
Geometry router - routes entities to processors
Implementations§
Source§impl GeometryRouter
impl GeometryRouter
Sourcepub fn register(&mut self, processor: Box<dyn GeometryProcessor>)
pub fn register(&mut self, processor: Box<dyn GeometryProcessor>)
Register a geometry processor
Sourcepub fn preprocess_faceted_breps(
&self,
brep_ids: &[u32],
decoder: &mut EntityDecoder<'_>,
)
pub fn preprocess_faceted_breps( &self, brep_ids: &[u32], decoder: &mut EntityDecoder<'_>, )
Batch preprocess FacetedBrep entities for maximum parallelism Call this before processing elements to enable batch triangulation across all FacetedBrep entities instead of per-entity parallelism
Sourcepub fn take_cached_faceted_brep(&self, brep_id: u32) -> Option<Mesh>
pub fn take_cached_faceted_brep(&self, brep_id: u32) -> Option<Mesh>
Take FacetedBrep from cache (removes entry since each BREP is only used once) Returns owned Mesh directly - no cloning needed
Sourcepub fn process_element(
&self,
element: &DecodedEntity,
decoder: &mut EntityDecoder<'_>,
) -> Result<Mesh>
pub fn process_element( &self, element: &DecodedEntity, decoder: &mut EntityDecoder<'_>, ) -> Result<Mesh>
Process building element (IfcWall, IfcBeam, etc.) into mesh Follows the representation chain: Element → Representation → ShapeRepresentation → Items
Sourcepub fn process_element_with_transform(
&self,
element: &DecodedEntity,
decoder: &mut EntityDecoder<'_>,
) -> Result<(Mesh, Matrix4<f64>)>
pub fn process_element_with_transform( &self, element: &DecodedEntity, decoder: &mut EntityDecoder<'_>, ) -> Result<(Mesh, Matrix4<f64>)>
Process building element and return geometry + transform separately Used for instanced rendering - geometry is returned untransformed, transform is separate
Sourcepub fn process_representation_item(
&self,
item: &DecodedEntity,
decoder: &mut EntityDecoder<'_>,
) -> Result<Mesh>
pub fn process_representation_item( &self, item: &DecodedEntity, decoder: &mut EntityDecoder<'_>, ) -> Result<Mesh>
Process a single representation item (IfcExtrudedAreaSolid, etc.) Uses hash-based caching for geometry deduplication across repeated floors
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for GeometryRouter
impl !RefUnwindSafe for GeometryRouter
impl !Send for GeometryRouter
impl !Sync for GeometryRouter
impl Unpin for GeometryRouter
impl !UnwindSafe for GeometryRouter
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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.