Dimension-dispatched 3D counterpart of the 2D [IndicatorManager]. Shows one [RuleCheckIndicator3D] per footprint cell of the active preview, tinted green/red from the per-cell verdicts of [method ObjectPlacementService3D.validate_cell_map]. Mount-aware projection: CELL projects onto the evaluated support surface, FACE onto the provider face plane, EDGE onto the claimed edge at its resolved structural height, and CORNER onto the claimed grid intersection. Indicators never fall back to an unrelated lower slot — an elevated host is evaluated (and highlighted) at its own height. TOP feedback lands when TOP ships in the supported contract (tracked on the GRID TOP mount issue). Visual design: indicators are FLAT ground-projected quads hovering just above the resolved surface — deliberately not cubes/volumes, which the 3D preview guide rejects for occluding the scene (the tinted ghost already communicates the volume). The quads add the per-cell information the ghost tint cannot: WHICH cell of a multi-cell footprint is blocked. Explicitly 3D-only glue over [ObjectPlacementService3D]; it shares no code with the 2D indicator pipeline on purpose, to keep explicit 2D/3D service boundaries over premature generalization.
Source: addons/grid_placement/placement/manager/indicator_manager_3d.gd
Syntax
class IndicatorManager3D extends Node3DMembers
| Name | Kind | Summary |
|---|---|---|
SURFACE_LIFT | Field | Lift above the resolved surface so quads never z-fight the ground, the grid-line plane, or the ghost's lower faces. Too small a lift reads as depth-precision scan lines where the coplanar surfaces overlap. |
CELL_INSET | Field | Quad inset within the cell so adjacent indicators read as separate cells. |
configure | Method | |
update_for_cell | Method | |
update_for_cells | Method | |
update_for_face | Method | |
update_for_edge | Method | |
update_for_corner | Method | |
clear | Method | |
get_indicators | Method | |
get_visible_count | Method |