pub struct ProducedElementMeshes {
pub meshes: Vec<MeshData>,
pub instance_occurrences: Vec<RawInstanceOccurrence>,
pub geometry_hash: Option<u64>,
pub csg_failures: FxHashMap<u32, Vec<BoolFailure>>,
pub degenerate_triangles_dropped: u64,
}Expand description
Everything one element produced.
Fields§
§meshes: Vec<MeshData>§instance_occurrences: Vec<RawInstanceOccurrence>#1623 Phase 2 don’t-bake output: this element’s occurrences of a repeated
IfcRepresentationMap that skipped the per-occurrence materialize. Empty
unless the router was armed with an instancing plan
(GeometryRouter::enable_output_instancing); the streaming finalize resolves
each into a crate::InstanceRecord against the shared template MeshData.
geometry_hash: Option<u64>Per-ELEMENT fingerprint, accumulated across all of the element’s
meshes in the native IFC frame (pre-split, pre-site-rotation).
None when hashing is off, nothing was produced, or the job is a
TypeProduct.
csg_failures: FxHashMap<u32, Vec<BoolFailure>>CSG diagnostics recorded while producing THIS element, attributed by product id. The router is fully drained on return, so a warm router reused across a batch never leaks one element’s failures into the next. Failures from a superseded strategy (a fallback re-attempting the same cuts) are discarded — only the path that produced the returned meshes contributes.
degenerate_triangles_dropped: u64Triangles dropped by the f32-collapse degenerate-triangle backstop
(drop_degenerate_triangles in build_mesh_data) across ALL of this
element’s meshes. Zero when the backstop is disabled or nothing was
degenerate. Request-local (scoped per produce_element_meshes call)
so concurrent passes never cross-contaminate.
Auto Trait Implementations§
impl Freeze for ProducedElementMeshes
impl RefUnwindSafe for ProducedElementMeshes
impl Send for ProducedElementMeshes
impl Sync for ProducedElementMeshes
impl Unpin for ProducedElementMeshes
impl UnsafeUnpin for ProducedElementMeshes
impl UnwindSafe for ProducedElementMeshes
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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.