esp::metadata::attributes::LightLayoutAttributes class

This class describes a lighting layout, consisting of a series of lights.

Base classes

class AbstractAttributes
Base class for all implemented attributes. Inherits from esp::core::managedContainers::AbstractFileBasedManagedObject so the attributes can be managed by a esp::core::managedContainers::ManagedContainer.

Constructors, destructors, conversion operators

LightLayoutAttributes(const std::string& handle = "") explicit
LightLayoutAttributes(const LightLayoutAttributes& otr)
LightLayoutAttributes(LightLayoutAttributes&& otr) noexcept

Public functions

auto operator=(const LightLayoutAttributes& otr) -> LightLayoutAttributes&
auto operator=(LightLayoutAttributes&& otr) -> LightLayoutAttributes& noexcept
void setPositiveIntensityScale(double positive_intensity_scale)
Set a scale of all positive intensities by specified amount. This is to make simple, sweeping adjustments to scene lighting in habitat.
auto getPositiveIntensityScale() const -> double
Get a scale of all positive intensities by specified amount. This is to make simple, sweeping adjustments to scene lighting in habitat.
void setNegativeIntensityScale(double negative_intensity_scale)
Set a scale of all negative intensities by specified amount. This is to make simple, sweeping adjustments to scene lighting in habitat.
auto getNegativeIntensityScale() const -> double
Get a scale of all negative intensities by specified amount. This is to make simple, sweeping adjustments to scene lighting in habitat.
void addLightInstance(LightInstanceAttributes::ptr _lightInstance)
Add a light instance to this lighting layout.
auto removeLightInstance(const std::string& handle) -> LightInstanceAttributes::ptr
Remove a light from this lighting layout.
auto getLightInstance(const std::string& handle) -> LightInstanceAttributes::cptr
auto getLightInstances() const -> std::vector<LightInstanceAttributes::cptr>
Get the lighting instances for this layout.
auto getNumLightInstances() const -> int
Return how many lights are in this light layout - number of subconfigs in lightInstConfig_ subconfig.
void writeValuesToJson(io::JsonGenericValue& jsonObj, io::JsonAllocator& allocator) const override
Populate a json object with all the first-level values held in this configuration. Default is overridden to handle special cases for LightLayoutAttributes.

Protected functions

auto getObjectInfoHeaderInternal() const -> std::string override
Retrieve a comma-separated string holding the header values for the info returned for this managed object, type-specific. The individual light instances return a header for this.
auto getObjectInfoInternal() const -> std::string override
Retrieve a comma-separated informational string about the contents of this managed object.

Protected variables

std::shared_ptr<Configuration> lightInstConfig_
Smartpointer to created light instance configuration. The configuration is created on LightLayoutAttributes construction.
std::deque<int> availableLightIDs_
Deque holding all released IDs to consume for light instances when one is deleted, before using size of lightInstances_ container.