17#ifndef _FGE_C_LIGHTSYSTEM_HPP_INCLUDED
18#define _FGE_C_LIGHTSYSTEM_HPP_INCLUDED
20#include "FastEngine/C_concavePolygon.hpp"
21#include "FastEngine/C_scene.hpp"
22#include "FastEngine/C_tunnel.hpp"
24#define FGE_LIGHT_PROPERTY_DEFAULT_LS "_fge_def_ls"
59 _g_lightSystemGate(
this)
62 _g_lightSystemGate(r._g_lightSystemGate)
64 this->_g_lightSystemGate.setData(
this);
67 _g_lightSystemGate(std::move(r._g_lightSystemGate))
69 this->_g_lightSystemGate.setData(
this);
75 this->_g_lightSystemGate = r._g_lightSystemGate;
76 this->_g_lightSystemGate.setData(
this);
81 this->_g_lightSystemGate = std::move(r._g_lightSystemGate);
82 this->_g_lightSystemGate.setData(
this);
93 this->_g_lightSystemGate.openTo(lightSystem, !this->isObstacle());
96 [[nodiscard]]
inline virtual bool isObstacle()
const {
return false; }
97 inline virtual void updateObstacleShape() {}
128 g_transformableParent(transformableParent)
132 g_transformableParent(transformableParent)
136 g_transformableParent(transformableParent)
153 [[nodiscard]]
inline bool isObstacle()
const final {
return true; }
157 return *this->g_transformableParent;
160 [[nodiscard]]
inline fge::ConcavePolygon const& getShape()
const {
return this->_g_shape; }
Definition C_concavePolygon.hpp:40
A base class that define a light component.
Definition C_lightSystem.hpp:56
void setDefaultLightSystem(fge::Scene &scene)
Retrieve the default light system from a scene.
Definition C_lightSystem.hpp:104
void setLightSystem(fge::LightSystem &lightSystem)
Set the light system to be used by this light.
Definition C_lightSystem.hpp:91
A base class to define an obstacle for the light system.
Definition C_lightSystem.hpp:125
A scene contain a collection of object and handle them.
Definition C_scene.hpp:450
fge::PropertyList _properties
Definition C_scene.hpp:1437
fge::LightSystem * GetDefaultLightSystem(fge::Scene &scene)
Get the default light system from a scene property.
Definition C_lightSystem.hpp:45