Cogs.Core
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Cogs::Core::LightComponent Class Reference

Defines a single light source and its behavior. More...

#include <LightComponent.h>

Inheritance diagram for Cogs::Core::LightComponent:
Cogs::ComponentModel::Component

Public Member Functions

size_t hash (size_t hashValue=Cogs::hash()) const
 
- Public Member Functions inherited from Cogs::ComponentModel::Component
class EntitygetContainer () const
 Get the container currently owning this component instance.
 
void setContainer (class Entity *container)
 Set the container owning this component instance.
 
template<typename ComponentType >
ComponentType * getComponent () const
 
COGSFOUNDATION_API ComponentgetComponent (const Reflection::Name &name) const
 
COGSFOUNDATION_API ComponentgetComponent (const Reflection::TypeId &id) const
 
template<typename ComponentType >
ComponentHandle getComponentHandle () const
 
COGSFOUNDATION_API ComponentHandle getComponentHandle (const Reflection::Name &name) const
 
COGSFOUNDATION_API ComponentHandle getComponentHandle (const Reflection::TypeId &id) const
 
void setActive ()
 Sets the component to the ComponentFlags::Active state.
 
bool isActive () const
 Gets if the component is currently set to the ComponentFlags::Active state.
 
void setChanged ()
 Sets the component to the ComponentFlags::Changed state with carry.
 
void setChangedTransient ()
 Sets the component to the ComponentFlags::Changed state without carry.
 
void setFieldChanged (const Reflection::FieldId fieldId)
 Sets the component to the ComponentFlags::Changed state without carry.
 
template<typename ClassType , typename FieldType >
void setFieldChanged (FieldType ClassType::*field)
 Sets a flag indicating that the given field has changed.
 
void setFieldChangedTransient (const Reflection::FieldId fieldId)
 Sets the component to the ComponentFlags::Changed state without carry.
 
bool hasChanged () const
 
bool hasAnyfieldChanged () const
 Gets if any fields have been changed.
 
bool hasFieldChanged (const Reflection::FieldId fieldId) const
 Gets if the field with the given id on this component instance has changed.
 
template<typename ClassType , typename FieldType >
bool hasFieldChanged (FieldType ClassType::*field) const
 Gets if the given field has changed.
 
void resetCarryChanged ()
 Reset the CarryChanged flag. Called at start of redraw. See ComponentFlags::CarryChanged.
 
void resetChanged ()
 Resets the changed state of the component, respecting any carry state set.
 
template<typename ClassType , typename FieldType >
Reflection::FieldId getFieldId (FieldType ClassType::*field) const
 Gets field ID of the given field.
 
void resetFieldsChanged ()
 Resets the state of all changed field flags.
 
void resetFieldChanged (const Reflection::FieldId fieldId)
 Resets the changed state of the given fieldId.
 
template<typename ClassType , typename FieldType >
void resetFieldChanged (FieldType ClassType::*field)
 Resets the changed state of the given field.
 
constexpr void setFlags (const uint32_t flags)
 Override all flags of the Component, setting the given flags.
 
constexpr void setFlag (const uint32_t flag)
 Set the given flags. Does not override the currently set flags.
 
constexpr void unsetFlag (const uint32_t flag)
 Unset the given flag. Does not remove the status of other than the given flags.
 
constexpr bool isSet (const uint32_t flag) const
 Checks if the given flag is set. Requires exact bit match if test of several bits.
 
constexpr void setTypeId (const Reflection::TypeId typeId)
 Set the Reflection::TypeId of the component.
 
constexpr Reflection::TypeId getTypeId () const
 Get the Reflection::TypeId of the component.
 
COGSFOUNDATION_API const Reflection::TypegetType () const
 Get the full Reflection::Type of the component.
 
constexpr void setIndex (const ComponentIndex index)
 Set the components pool index. For internal use only.
 
constexpr ComponentIndex getIndex () const
 Get the components pool index. For internal use only.
 
constexpr void setGeneration (uint16_t generation)
 Sets the component generation.
 
constexpr uint16_t getGeneration () const
 Gets the component generation.
 
size_t hash (size_t hashValue=Cogs::hash()) const
 Calculates a hash of this component's members.
 

Static Public Member Functions

static void registerType ()
 Register the type in the type system.
 
- Static Public Member Functions inherited from Cogs::ComponentModel::Component
static COGSFOUNDATION_API void registerType ()
 Register the Component type in the global type database.
 
static COGSFOUNDATION_API Reflection::TypeId getComponentTypeId (const StringView &name)
 Get the type id of the component type with the given name.
 

Public Attributes

glm::vec4 lightColor = glm::vec4(1, 1, 1, 1)
 Color contribution of the light.
 
LightType lightType = LightType::Directional
 The type of light.
 
LightingLayers lightingLayer = LightingLayers::Default
 The lighting layer the light belongs to.
 
float intensity = 1
 Intensity of the light source.
 
float range = 1000.0f
 Falloff range.
 
float shadowNearPlane = 0.0f
 Shadow near plane. If set to 0 near plane is 1/1000th of the radius.
 
bool enabled = true
 If the light is enabled.
 
bool mainLight = false
 If this light is the main light of the application.
 
bool castShadows = false
 If this light should cast shadows.
 
bool tightShadowBounds = false
 If the shadows should have tight bounds.
 
bool dynamicCascadeCount = false
 Dynamically determine how many cascades should be drawn.
 
float shadowIntensityOffset = 0
 Shadow intensity offset.
 
float shadowSampleBias = 0.004f
 Constant term shadow map sampling bias.
 
float shadowBias = 2.f
 Constant term shadow map rasterization bias.
 
float shadowSlopedBias = 5.f
 Linear term of shadow map rasterization bias.
 
float shadowBiasClamp = 4.f
 Shadow map bias rasterization clamp.
 
float _shadowNormalOffsetBias = 0.1f
 Shadow normal bias.
 
WeakEntityPtr lodReference
 Camera entity of which its z-axis define the shadowmap cascade split axis, defaults to main camera.
 
std::vector< WeakEntityPtrcameras
 Cameras from which the shadow maps will be used, defaults to main camera.
 

Detailed Description

Defines a single light source and its behavior.

Definition at line 68 of file LightComponent.h.

Member Function Documentation

◆ hash()

size_t Cogs::Core::LightComponent::hash ( size_t  hashValue = Cogs::hash()) const
inline

Definition at line 137 of file LightComponent.h.

◆ registerType()

void Cogs::Core::LightComponent::registerType ( )
static

Member Data Documentation

◆ _shadowNormalOffsetBias

float Cogs::Core::LightComponent::_shadowNormalOffsetBias = 0.1f

Shadow normal bias.

Definition at line 129 of file LightComponent.h.

◆ cameras

std::vector<WeakEntityPtr> Cogs::Core::LightComponent::cameras

Cameras from which the shadow maps will be used, defaults to main camera.

Definition at line 135 of file LightComponent.h.

Referenced by registerType().

◆ castShadows

bool Cogs::Core::LightComponent::castShadows = false

If this light should cast shadows.

Definition at line 105 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ dynamicCascadeCount

bool Cogs::Core::LightComponent::dynamicCascadeCount = false

Dynamically determine how many cascades should be drawn.

Definition at line 111 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ enabled

bool Cogs::Core::LightComponent::enabled = true

If the light is enabled.

Definition at line 99 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ intensity

float Cogs::Core::LightComponent::intensity = 1

Intensity of the light source.

Definition at line 90 of file LightComponent.h.

Referenced by registerType().

◆ lightColor

glm::vec4 Cogs::Core::LightComponent::lightColor = glm::vec4(1, 1, 1, 1)

Color contribution of the light.

Definition at line 75 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ lightingLayer

LightingLayers Cogs::Core::LightComponent::lightingLayer = LightingLayers::Default

The lighting layer the light belongs to.

Definition at line 87 of file LightComponent.h.

Referenced by registerType().

◆ lightType

LightType Cogs::Core::LightComponent::lightType = LightType::Directional

The type of light.

Modifying this field changes how the field lightDirection is interpreted.

Definition at line 82 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ lodReference

WeakEntityPtr Cogs::Core::LightComponent::lodReference

Camera entity of which its z-axis define the shadowmap cascade split axis, defaults to main camera.

Definition at line 132 of file LightComponent.h.

Referenced by registerType().

◆ mainLight

bool Cogs::Core::LightComponent::mainLight = false

If this light is the main light of the application.

Definition at line 102 of file LightComponent.h.

◆ range

float Cogs::Core::LightComponent::range = 1000.0f

Falloff range.

Definition at line 93 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ shadowBias

float Cogs::Core::LightComponent::shadowBias = 2.f

Constant term shadow map rasterization bias.

Definition at line 120 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ shadowBiasClamp

float Cogs::Core::LightComponent::shadowBiasClamp = 4.f

Shadow map bias rasterization clamp.

Definition at line 126 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ shadowIntensityOffset

float Cogs::Core::LightComponent::shadowIntensityOffset = 0

Shadow intensity offset.

Definition at line 114 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ shadowNearPlane

float Cogs::Core::LightComponent::shadowNearPlane = 0.0f

Shadow near plane. If set to 0 near plane is 1/1000th of the radius.

Definition at line 96 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ shadowSampleBias

float Cogs::Core::LightComponent::shadowSampleBias = 0.004f

Constant term shadow map sampling bias.

Definition at line 117 of file LightComponent.h.

Referenced by registerType().

◆ shadowSlopedBias

float Cogs::Core::LightComponent::shadowSlopedBias = 5.f

Linear term of shadow map rasterization bias.

Definition at line 123 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().

◆ tightShadowBounds

bool Cogs::Core::LightComponent::tightShadowBounds = false

If the shadows should have tight bounds.

Definition at line 108 of file LightComponent.h.

Referenced by Cogs::Core::LightSystem::preRender(), and registerType().


The documentation for this class was generated from the following files: