Skip to content

RingsEffect

Source: RingsEffect.h

RingsEffect

class RingsEffect
src/light/effects/RingsEffect.h:14

Inherits: EffectBase

Effect of expanding concentric rings from random centers.

RingsEffect card RingsEffect controls

Each ring grows continuously and respawns somewhere fresh once it leaves the grid. Several overlap, and where two rings cross their brightness sums. RipplesEffect holds the sine-wave water surface, where this one is the concentric form.

Public Attributes

uint8_t count = 2 : How many rings expand at a time.

uint8_t speed = 30 : How fast each one grows.

uint8_t thickness = 3 : How wide a ring's lit band is.

uint8_t hue_shift = 0 : Walks every ring around the palette.

Public Methods

virtual inline const char * tags() const override : Catalog tags: MoonLight origin, David Jupijn and Rising Step.

virtual inline Dim dimensions() const override : Iterates y and x, which extrude fills through a volume.

virtual inline void defineControls() override : Publish the population, the growth rate, the band's width and the palette shift.

virtual inline void tick() override : Grow every ring, respawning those that left, then light each pixel near one.

Public Static Attributes

constexpr uint8_t MAX_RIPPLES = 8 : How many rings the effect can hold at once.