Skip to content

Layouts

Source: Layouts.h

Layouts

class Layouts
src/light/layouts/Layouts.h:37

Inherits: 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.

Layouts card

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.