9#ifndef AVARA3D_VISUAL_LIGHT_LIGHT_H
10#define AVARA3D_VISUAL_LIGHT_LIGHT_H
21 class DirectionalLight;
38 static std::shared_ptr<AmbientLight>
Ambient();
50 static std::shared_ptr<PointLight>
Point();
56 static std::shared_ptr<SpotLight>
Spot();
81 const std::optional<std::
string>&
name() const;
95 std::optional<std::
string> _name;
Represents a normalized RGBA color.
Base class for light sources attached to Scene Nodes.
static std::shared_ptr< PointLight > Point()
Creates a white PointLight.
static std::shared_ptr< DirectionalLight > Directional()
Creates a white DirectionalLight.
static std::shared_ptr< DirectionalLight > Directional(const Color &color)
Creates a DirectionalLight with color.
static std::shared_ptr< SpotLight > Spot(const Color &color)
Creates a SpotLight with color.
static std::shared_ptr< AmbientLight > Ambient()
Creates a white AmbientLight.
static std::shared_ptr< PointLight > Point(const Color &color)
Creates a PointLight with color.
const std::optional< std::string > & name() const
Returns the optional light name.
static std::shared_ptr< AmbientLight > Ambient(const Color &color)
Creates an AmbientLight with color.
const Color & color() const
Returns the light color.
static std::shared_ptr< SpotLight > Spot()
Creates a white SpotLight.