ReadonlyonFires when a section plane has been added or removed (either via createSectionPlane or because external code created / destroyed one). The panel listens to redraw.
ReadonlyonFires whenever the controller's gizmo target or edit mode
changes — including detach ({plane: null}).
ReadonlysceneReadonlyviewActive gizmo mode.
Currently-attached plane, or null.
Create a new section plane at the world point pos with
normal dir. Auto-selects the new plane as the gizmo target.
Returns the created plane on success.
All section planes managed by this controller (which equals every section plane in the controller's View).
Destroy a plane (and its proxy). The
onSectionPlaneDestroyed listener handles the cleanup.
Attach the gizmo to plane and switch the controller's
edit mode if necessary. Detach with null.
Toggle between translate and rotate gizmo handles.
Show or hide every proxy quad and (when hiding) detach the gizmo. Called by the toolbar as the section-planes tool is turned on / off.
StaticgetStaticopen
Per-View bridge between section, a translucent visual proxy quad for each, and the TransformControls gizmo used to drag / orient them.
The controller manages every section plane in its View, not just the ones it created — it subscribes to Viewer.events.onSectionPlaneCreated /
onSectionPlaneDestroyedso a plane added by other code still gets a proxy and shows up in the panel.The proxy quad is a single 2D-ish surface in a dedicated SceneModel on a dedicated ViewLayer, drawn in the renderer's
"overlay"bin so it isn't clipped by its own plane (or any other plane) and survives the depth-cleared overlay pass.SectionPlanesPanel reads the controller's state and forwards UI events (delete, select, mode toggle, active toggle) to the matching public API.