public static class BlockoutHoverWhat the pointer is promising, drawn before the click that commits it.
Remarks
doc 24 § P4 and § Geometry both ask for one, and the two are the same job. The cube grid owes "the candidate cell under the pointer before you commit to it"; the loop cut owes "preview follows the pointer". Both are a drawing on SceneLines' overlay computed from a hover, which is the shape P2's element highlight established — and answering "what does the pointer mean right now" twice in one mode is how the two answers come to disagree.
⚠ Everything here is a pure function of a hover, and none of it touches the mesh. A preview that ran the operation on a copy would pay a topology rebuild per pointer move and, worse, would be a second implementation of the verb: the day the two disagreed the designer would be shown one cut and given another. What these compute is the *input* to the verb, geometrically — a cell's eight corners, and the positions a cut would insert.
⚠ Into the overlay channel rather than the depth-tested one. A preview is coplanar with the surface it is describing — the cut runs across faces, the cell sits on the work plane — so depth-tested it would z-fight its way in and out of existence as the camera moved. Cursor's own remarks make the argument for the terrain brush and it is the same argument.
Methods (2)
public static void CubeGrid(GizmoDraw draw, GridBox box, WorkPlane? plane, Color4 colour)Draws a lattice region as a wire box, in the work plane's own axes.
public static bool LoopCut(EditMesh mesh, int edge, int cuts, float slide, List<(Vector3 A, Vector3 B)> into)Where a loop cut through an edge's ring would run, as segments in the mesh's space.
Used by (2)
- BlockoutHoverTestsVixen.Editor.Blockout.Tests
- BlockoutModeVixen.Editor.Blockout