WalkShape

The shape of the GPU scene walk, counted on the CPU from the node buffer — construct-scene-evaluator §EV-A5.2.

In the namespace construct::engine. Declared in src/libs/libconstruct/construct/engine/WalkShape.hpp.

Detailed description

Mirrors `evaluateSceneTree` (ShaderTreeEvaluator.cpp) and the root loop of `sceneSDF` (ShaderTemplates.cpp) without running them:

- `sceneSDF` walks up to `kMaxRoots` roots, following `nextSibling` from the UBO's root index. One walk per root: that count is R of §EV-D1. - One pop per node the walk reaches. A distance modifier, a position-aware modifier, and a position transform flagged `DistCompanion` pop a second time for their phase 1 when they have a child. A CSG node with a real accumulator pops a second time to fold its subtree into it (EV-D22). - A CSG node pushes its FIRST child and a continuation holding the next sibling (§EV-A5.1). Each continuation pops once and pushes the sibling it holds plus a continuation for the one after it, so a node with k children costs k-1 continuation pops and holds ONE stack slot while any child is walked — where the old `childIndices[16]` walk held k-1 of them and dropped every child past the sixteenth (EV-D5). - Stack occupancy follows that push order, so the deepest walk is bounded by the tree's depth rather than by its width.

The shape does not evaluate distances, so it counts the walk the shader performs for any sample point — the walk has no early exit.

In this section