Loading [MathJax]/extensions/TeX/AMSmath.js
Radium Engine  1.6.3
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DirLight.hpp
1#pragma once
2
3#include <Core/CoreMacros.hpp>
4#include <Eigen/Core>
5#include <Engine/Data/RenderParameters.hpp>
6#include <Engine/RaEngine.hpp>
7#include <Engine/Scene/Light.hpp>
8#include <map>
9#include <string>
10
11namespace Ra {
12namespace Engine {
13namespace Scene {
14
15class Entity;
16
20class RA_ENGINE_API DirectionalLight final : public Ra::Engine::Scene::Light
21{
22 public:
23 explicit DirectionalLight( Entity* entity, const std::string& name = "dirlight" );
24 ~DirectionalLight() override = default;
25
26 void setDirection( const Eigen::Matrix<Scalar, 3, 1>& dir ) override;
27 inline const Eigen::Matrix<Scalar, 3, 1>& getDirection() const;
28
29 std::string getShaderInclude() const override;
30
31 private:
32 Eigen::Matrix<Scalar, 3, 1> m_direction { 0, -1, 0 };
33};
34
35// ---------------------------------------------------------------------------------------------
36// ---- inline methods implementation
37
38inline void DirectionalLight::setDirection( const Eigen::Matrix<Scalar, 3, 1>& dir ) {
39 m_direction = dir.normalized();
40 getRenderParameters().setVariable( "light.directional.direction", m_direction );
41}
42
43inline const Eigen::Matrix<Scalar, 3, 1>& DirectionalLight::getDirection() const {
44 return m_direction;
45}
46
47} // namespace Scene
48} // namespace Engine
49} // namespace Ra
void setVariable(const std::string &name, RenderParameters &rp)
overload create ref wrapper for RenderParameters variable
void setDirection(const Eigen::Matrix< Scalar, 3, 1 > &dir) override
Definition DirLight.hpp:38
An entity is an scene element. It ties together components with a transform.
Definition Entity.hpp:23
const Data::RenderParameters & getRenderParameters() const
Gives read-only access to the renderParameters of the light.
Definition Light.hpp:96
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:4