Layouts
Source:
Layouts.h
Layouts¶
src/light/layouts/Layouts.h:37Inherits:
MoonModule
The container defining the installation's physical light topology.
One [Layouts] describes the setup, and every layer in Effects renders into it. Children stitch into one flat physical address space, in registration order.

Public Methods¶
virtual inline const char * tags() const override
: The tag the UI shows for this container.
virtual inline const char * acceptsChildRoles() const override
: The child role this container accepts, which is layouts alone.
inline nrOfLightsType totalLightCount() const
: The lights across every enabled child, which sizes the layer and output buffers.
inline void placeLights(const CoordSink & sink) const
: Emit every enabled child's positions into the sink, offset into one address space.
inline bool hasBlackPixels() const
: Whether any enabled child holds physical slots dark.
virtual inline void prepare() override
: Report the light count and the physical bounding box on the status line.
More info¶
The container owns coordinate iteration¶
placeLights walks each enabled child's coordinates, offsetting the physical indices. Sixteen strips making one panel therefore address as a single run without overlap. A layer uses those coordinates to build its own mapping.
Disabling and reordering shift indices¶
Disabling a layout removes its lights, and later layouts shift down to close the gap. Reordering by drag and drop sets which physical range each layout occupies. Both move ArtNet universe assignments, so disable the driver to keep a mapping stable.
The status line¶
It reports the total light count and the physical bounding box. A dense grid's count equals its box volume, and a sparse layout's is smaller. That gap is the at-a-glance signal that a layout is sparse.