pub struct Collated {
pub templates: Vec<InstanceTemplate>,
pub flat_indices: Vec<usize>,
pub dropped_placeholders: usize,
pub verification_rejections: usize,
}Expand description
Result of collation: instanced templates + the meshes left to render flat.
Fields§
§templates: Vec<InstanceTemplate>Unique geometries with their per-instance transforms.
flat_indices: Vec<usize>Indices of input meshes rendered without instancing (non-instanceable, singleton groups, or groups that failed the geometry-shape guard).
dropped_placeholders: usizePose-only (#1623 don’t-bake) occurrences that appear in NEITHER
templates nor flat_indices: they carry no geometry of their own, so
the flat path is not somewhere they can go, and their group had no
invertible template placement to instance them against. Nothing else in
this result records that they existed, which is exactly why the count is
here — an occurrence going missing must not look like an occurrence that
was never fed in. Zero on every ordinary model.
verification_rejections: usizeGroups the #3666 reconstruction (or same-shape) check refused, so their
materialized members sit in flat_indices instead of sharing a template.
The refusal is not free where the caller has no flat path of its own:
encode_refs emits every flat_indices entry as a ONE-INSTANCE template,
so a refused group of N becomes N singleton templates in an IFNS shard —
O(unique-geometry) per-frame draws, which is the orbit-FPS regression the
WASM viewer’s occurrence-count gate exists to prevent. A caller that HAS a
flat path should route these members to it (the WASM batch partition
does), and this count is how the case is observable at all.
Implementations§
Source§impl Collated
impl Collated
Sourcepub fn unique_geometry_count(&self) -> usize
pub fn unique_geometry_count(&self) -> usize
Total number of unique geometries that would be uploaded (templates + flat meshes) — the figure that bounds browser ingestion.
Sourcepub fn instanced_occurrence_count(&self) -> usize
pub fn instanced_occurrence_count(&self) -> usize
Total occurrences represented across all templates (excludes flat meshes).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Collated
impl RefUnwindSafe for Collated
impl Send for Collated
impl Sync for Collated
impl Unpin for Collated
impl UnwindSafe for Collated
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.