Bridges a SectionPlane to the TransformControls adapter contract — {getMatrix, setMatrix}. The gizmo manipulates a 4×4 world matrix; we synthesise that matrix from the plane's pos + dir on read, and decompose it back into pos + dir on write.

Matrix convention: the plane's local +Z axis equals its dir (the side fragments are discarded in). The other two axes (X, Y) span the plane's surface — they're arbitrary (any orthonormal basis on the plane works), so we pick one deterministically by Gram-Schmidt-ing against a fixed world-up vector.

In this frame the gizmo's handles map naturally onto the useful operations:

  • Translate Z — slide the plane along its normal.
  • Rotate X / Y — tilt the plane (re-orient dir).

Translate X/Y and rotate Z are "no-ops" on the rendered section (the plane is infinite, so sliding it within its own surface or spinning it about its normal leaves the clipping geometry unchanged) — they still update the matrix, but the plane proxy's translucent quad rotates with them, which is the intuitive behaviour.

Constructors

Properties

Methods

Constructors

Properties

Methods