Auto-fix for GEOMETRY_OVER_BUDGET — geometries flagged as
dense (too many vertices and/or primitives for the
configured storage budget).
Splits the targeted SceneGeometry once via
splitSceneGeometry (whole-triangle midpoint partition),
then redirects every SceneMesh that referenced the source
onto BOTH pieces — each source mesh becomes two new meshes
({id}_a / {id}_b) attached to the same SceneObject with the
same matrix / opacity / parentTransform. The pre-split geometry
is destroyed once its referencing meshes have been redirected.
One split per apply. A piece that's still over the budget
after this single split is flagged again on the next inspection
pass; an outer loop (or optimizeSceneModel) re-runs
applyFixes until the report converges. Matches IDE-style
"one fix = one specific action".
Pairs with splitLargeGeometry, which handles
the spatial-extent failure mode (GEOMETRY_OVER_EXTENT). Both
strategies delegate the actual split + mesh fan-out to
splitGeometryAndRebuildMeshes; only the trigger code
differs.
Auto-fix for
GEOMETRY_OVER_BUDGET— geometries flagged as dense (too many vertices and/or primitives for the configured storage budget).Splits the targeted SceneGeometry once via splitSceneGeometry (whole-triangle midpoint partition), then redirects every SceneMesh that referenced the source onto BOTH pieces — each source mesh becomes two new meshes (
{id}_a/{id}_b) attached to the same SceneObject with the same matrix / opacity / parentTransform. The pre-split geometry is destroyed once its referencing meshes have been redirected.One split per apply. A piece that's still over the budget after this single split is flagged again on the next inspection pass; an outer loop (or optimizeSceneModel) re-runs
applyFixesuntil the report converges. Matches IDE-style "one fix = one specific action".Pairs with splitLargeGeometry, which handles the spatial-extent failure mode (
GEOMETRY_OVER_EXTENT). Both strategies delegate the actual split + mesh fan-out to splitGeometryAndRebuildMeshes; only the trigger code differs.