3#include <Core/Utils/Color.hpp>
4#include <Engine/RaEngine.hpp>
5#include <Engine/Scene/Component.hpp>
7#include <Engine/Data/RenderParameters.hpp>
27 enum LightType :
int { DIRECTIONAL = 0, POINT, SPOT, POLYGONAL };
35 Scalar constant { 1 };
37 Scalar quadratic { 0 };
49 ~Light()
override =
default;
73 virtual void setPosition(
const Eigen::Matrix<Scalar, 3, 1>& ) {}
111 void initialize()
override;
116 LightType m_type { LightType::DIRECTIONAL };
Management of shader parameters with automatic binding of a named parameter to the corresponding glsl...
void setVariable(const std::string &name, RenderParameters &rp)
overload create ref wrapper for RenderParameters variable
A component is an element that can be updated by a system. It is also linked to some other components...
An entity is an scene element. It ties together components with a transform.
const Core::Utils::Color & getColor() const
const LightType & getType() const
Data::RenderParameters & getRenderParameters()
Gives read-write access to the renderParameters of the light.
const Data::RenderParameters & getRenderParameters() const
Gives read-only access to the renderParameters of the light.
void setColor(const Core::Utils::Color &color)
virtual void setDirection(const Eigen::Matrix< Scalar, 3, 1 > &)
virtual void setPosition(const Eigen::Matrix< Scalar, 3, 1 > &)
hepler function to manage enum as underlying types in VariableSet