|
Cogs.Core
|
Defines a single light source and its behavior. More...
#include <LightComponent.h>
Public Member Functions | |
| size_t | hash (size_t hashValue=Cogs::hash()) const |
Public Member Functions inherited from Cogs::ComponentModel::Component | |
| class Entity * | getContainer () 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 Component * | getComponent (const Reflection::Name &name) const |
| COGSFOUNDATION_API Component * | getComponent (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::Type & | getType () 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< WeakEntityPtr > | cameras |
| Cameras from which the shadow maps will be used, defaults to main camera. | |
Defines a single light source and its behavior.
Definition at line 68 of file LightComponent.h.
|
inline |
Definition at line 137 of file LightComponent.h.
|
static |
Register the type in the type system.
Definition at line 7 of file LightComponent.cpp.
References cameras, castShadows, Cogs::Reflection::Field::create(), Cogs::Core::Directional, dynamicCascadeCount, enabled, intensity, lightColor, lightingLayer, lightType, lodReference, Cogs::Core::Point, range, shadowBias, shadowBiasClamp, shadowIntensityOffset, shadowNearPlane, shadowSampleBias, shadowSlopedBias, Cogs::Core::Spot, and tightShadowBounds.
| float Cogs::Core::LightComponent::_shadowNormalOffsetBias = 0.1f |
Shadow normal bias.
Definition at line 129 of file LightComponent.h.
| 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().
| 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().
| 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().
| 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().
| float Cogs::Core::LightComponent::intensity = 1 |
Intensity of the light source.
Definition at line 90 of file LightComponent.h.
Referenced by registerType().
| 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().
| 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 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().
| 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().
| bool Cogs::Core::LightComponent::mainLight = false |
If this light is the main light of the application.
Definition at line 102 of file LightComponent.h.
| 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().
| 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().
| 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().
| 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().
| 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().
| float Cogs::Core::LightComponent::shadowSampleBias = 0.004f |
Constant term shadow map sampling bias.
Definition at line 117 of file LightComponent.h.
Referenced by registerType().
| 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().
| 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().