SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
Sleak::PointLight Class Reference

#include <PointLight.hpp>

Inheritance diagram for Sleak::PointLight:

Public Member Functions

 PointLight (const std::string &name="PointLight")
 ~PointLight () override=default
RenderEngine::LightGPUEntry BuildGPUData () const override
 Packs this light's parameters into the GPU-side entry used by the lighting constant buffer.
Math::Vector3D GetPosition () const
float GetRange () const
void SetPosition (const Math::Vector3D &pos)
void SetRange (float range)
Public Member Functions inherited from Sleak::Light
 Light (const std::string &name="Light")
 ~Light () override=default
bool GetCastShadows () const
Math::Vector3D GetColor () const
float GetIntensity () const
float GetLightSize () const
float GetShadowBias () const
float GetShadowNormalBias () const
float GetShadowStrength () const
bool IsEnabled () const
bool IsLight () const override
void SetCastShadows (bool cast)
void SetColor (const Math::Color &color)
void SetColor (float r, float g, float b)
void SetEnabled (bool enabled)
void SetIntensity (float intensity)
void SetLightSize (float size)
void SetShadowBias (float bias)
void SetShadowNormalBias (float bias)
void SetShadowStrength (float strength)
Public Member Functions inherited from Sleak::GameObject
 GameObject (const std::string &name="GameObject")
 ~GameObject () override
void AddChild (GameObject *child)
template<typename T, typename... Args>
void AddComponent (Args &&... args)
 Constructs and attaches a component of type T. Warns and no-ops if one already exists.
virtual void FixedUpdate (float fixedDeltaTime)
const List< GameObject * > & GetChildren () const
template<typename T>
T * GetComponent ()
 Finds the first attached component of type T, or nullptr.
GameObjectGetParent () const
const std::string & GetTag () const
bool HasChildren () const
template<typename T>
bool HasComponent ()
 True if a component of type T is attached.
bool HasParent () const
virtual void Initialize ()
 Initializes the object and its components; called once before the first Update.
bool IsActive () const
bool IsPendingDestroy () const
virtual void LateUpdate (float deltaTime)
void MarkForDestroy ()
 Flags the object for deferred destruction on the next scene pass.
void RemoveChild (GameObject *child)
template<typename T>
void RemoveComponent ()
 Destroys and detaches the first component of type T, if present.
void SetActive (bool active)
 Enables or disables the object, firing OnEnable/OnDisable on its components.
void SetParent (GameObject *parent)
 Reparents this object, updating both the old and new parent's child lists.
void SetTag (const std::string &tag)
virtual void Update (float deltaTime)
Public Member Functions inherited from Sleak::Object
 Object (const std::string &name="Object")
virtual ~Object ()=default
const std::string & GetName () const
uint64_t GetUniqueID () const
void SetName (const std::string &value)

Additional Inherited Members

Static Public Member Functions inherited from Sleak::GameObject
static GameObjectCreateCapsule (Math::Vector3D position, int segments=16, int rings=8, float height=1, float radius=0.5)
static GameObjectCreateCube (Math::Vector3D position)
static GameObjectCreateCylinder (Math::Vector3D position, int segments=16, float height=1, float radius=0.5)
static GameObjectCreatePlane (Math::Vector3D position, int width=100, int height=100)
 Built-in primitive factories, mainly for prototyping and debug scenes.
static GameObjectCreateSphere (Math::Vector3D position, int stack=16, int slices=16)
static GameObjectCreateTorus (Math::Vector3D position, int segments=16, int rings=8, float innerRadius=8, float outerRadius=9)
Protected Attributes inherited from Sleak::Light
bool m_castShadows = false
Math::Vector3D m_color {1.0f, 1.0f, 1.0f}
float m_intensity = 1.0f
bool m_lightEnabled = true
float m_lightSize = 1.0f
float m_shadowBias = 0.005f
float m_shadowNormalBias = 0.02f
float m_shadowStrength = 1.0f
Protected Attributes inherited from Sleak::GameObject
bool bIsInitialized

Detailed Description

Omnidirectional light that falls off with distance out to Range.

Definition at line 10 of file PointLight.hpp.

Constructor & Destructor Documentation

◆ PointLight()

Sleak::PointLight::PointLight ( const std::string & name = "PointLight")
explicit

Definition at line 6 of file PointLight.cpp.

◆ ~PointLight()

Sleak::PointLight::~PointLight ( )
overridedefault

Member Function Documentation

◆ BuildGPUData()

RenderEngine::LightGPUEntry Sleak::PointLight::BuildGPUData ( ) const
overridevirtual

Packs this light's parameters into the GPU-side entry used by the lighting constant buffer.

Implements Sleak::Light.

Definition at line 8 of file PointLight.cpp.

◆ GetPosition()

Math::Vector3D Sleak::PointLight::GetPosition ( ) const
inline

Definition at line 23 of file PointLight.hpp.

◆ GetRange()

float Sleak::PointLight::GetRange ( ) const
inline

Definition at line 18 of file PointLight.hpp.

◆ SetPosition()

void Sleak::PointLight::SetPosition ( const Math::Vector3D & pos)
inline

Definition at line 20 of file PointLight.hpp.

◆ SetRange()

void Sleak::PointLight::SetRange ( float range)
inline

Definition at line 17 of file PointLight.hpp.