Vixen
dd8b0a81
csharp
public static class BlockoutHover

What the pointer is promising, drawn before the click that commits it.

Read the guide page for this →

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