HumanSizedCubeLayout
Source:
HumanSizedCubeLayout.h
HumanSizedCubeLayout¶
src/light/layouts/HumanSizedCubeLayout.h:23Inherits:
LayoutBase
Layout of a walk-in cube built from five LED-curtain faces.
Author: MoonLight, https://github.com/ewowi/MoonLight/blob/main/src/MoonLight/Nodes/Layouts/L_MoonLight.h
Public Attributes¶
uint8_t width = 10
: Verbatim MoonLight defaults and ranges: a 10×10×10 cube, each edge 1..20.
uint8_t height = 10
: The cube's extent on y.
uint8_t depth = 10
: Its extent on z.
Public Methods¶
virtual inline void defineControls() override
: The controls a user sets on the card.
virtual inline const char * tags() const override
: The catalog tags this layout carries.
virtual inline Dim dimensions() const override
: How many axes this layout places lights on.
virtual inline nrOfLightsType lightCount() const override
: How many lights the current settings place.
virtual inline void placeLights(const CoordSink & sink) const override
: Emit every light's coordinate, in wiring order.
More info¶
A human-sized LED cube built from five hanging "curtain" faces of a width×height×depth box: front (z=0), back (z=depth+1), above (y=0), left (x=0) and right (x=width+1). Each face is a flat matrix of lights. The offsets inset the four side and top curtains by one cell, so they hang just outside the front and back planes. The front sits at zero and the back one past the depth, with the wrap-around curtains bridging them. The bottom face is left open (a person stands inside), so only five of the six faces are emitted.
Prior art: MoonLight's HumanSizedCubeLayout (Node "Human Sized Cube", tags 🚥). The geometry is reproduced exactly: the five face loops, their nested axis order, and every offset match the source's own emit sequence. The emitted coordinates and their wiring order are therefore identical. MoonLight's per-curtain pin calls are dropped, since a MoonLight layout emits coordinates only and the driver owns pins. Its sixth face is dropped too, being disabled in the source itself.