compute_parts_to_skip

Function compute_parts_to_skip 

Source
pub fn compute_parts_to_skip<T>(
    content: &T,
    decoder: &mut EntityDecoder<'_>,
) -> FxHashSet<u32>
where T: AsRef<[u8]> + ?Sized,
Expand description

Compute the set of aggregated IfcBuildingElementPart ids to skip when the “merge multilayer wall as a single solid” toggle is on (issue #540): a part is skipped when its parent’s layered build-up is sliceable, so the parent’s merged-layer geometry is drawn instead of the individual parts.

This is the layer/void driver — it composes the two shared geometry kernels (propagate_voids_to_parts for part→parent + void propagation, and [MaterialLayerIndex::is_sliceable]) so the driver lives in the geometry crate next to its kernels rather than inline in a consumer (#913 Phase 4 / §2.6). The browser’s merge_layers path calls it. The void_index it hands to propagate_voids_to_parts is EMPTY and stays empty: propagation is a no-op on an empty index, and only the part → parent map is wanted here. Callers that also need the propagated voids call propagate_voids_to_parts directly with their own seeded void_index.