pub struct GltfStats {
pub meshes: usize,
pub vertices: usize,
pub triangles: usize,
pub materials: usize,
pub unverified_instance_groups: usize,
}Expand description
Coverage stats for a GLB export.
Fields§
§meshes: usize§vertices: usize§triangles: usize§materials: usize§unverified_instance_groups: usizeRep-identity groups that were instanced WITHOUT the #3666 reconstruction check: the shared template’s geometry is substituted at each occurrence’s pose on the strength of the identity hash alone, which a merged multi-model file has been measured to collide (the occurrence still renders, up to 2m from where it belongs).
Always 0 from the in-memory assembler, which verifies every exact-tier
pairing. Non-zero only from try_export_glb_streaming_bounded, which holds
a PLAN and not geometry (retain_emitted_meshes: false is the whole
reason it bounds memory), so it has no occurrence vertices to compare and
cannot run the check as written. That gap was a comment inside the
bounded assembler and invisible to its callers; this is it at the seam,
where a caller choosing between the two paths can read it.
Trait Implementations§
impl Copy for GltfStats
impl Eq for GltfStats
impl StructuralPartialEq for GltfStats
Auto Trait Implementations§
impl Freeze for GltfStats
impl RefUnwindSafe for GltfStats
impl Send for GltfStats
impl Sync for GltfStats
impl Unpin for GltfStats
impl UnwindSafe for GltfStats
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§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).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.