Castor3D 0.16.0
Multiplatform 3D engine
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
castor3d::LightCategory Class Referenceabstract

#include <LightCategory.hpp>

Inheritance diagram for castor3d::LightCategory:
Inheritance graph
[legend]
Collaboration diagram for castor3d::LightCategory:
Collaboration graph
[legend]

Classes

struct  LightData
 

Public Member Functions

virtual C3D_API ~LightCategory () noexcept=default
 Destructor.
 
virtual C3D_API void update ()=0
 Updates the light.
 
C3D_API void fillLightBuffer (castor::Point4f *data) const
 Puts the light into the given buffer.
 
virtual C3D_API void fillShadowBuffer (AllShadowData &data) const =0
 Puts the shadow data into the given buffer.
 
C3D_API void accept (ConfigurationVisitorBase &vis)
 ConfigurationVisitorBase acceptance function.
 
C3D_API uint32_t getVolumetricSteps () const
 
C3D_API float getVolumetricScatteringFactor () const
 
C3D_API castor::Point2f const & getShadowRawOffsets () const
 
C3D_API castor::Point2f const & getShadowPcfOffsets () const
 
C3D_API float getVsmMinVariance () const
 
C3D_API float getVsmLightBleedingReduction () const
 
C3D_API castor::RangedValue< uint32_t > getShadowPcfFilterSize () const
 
C3D_API castor::RangedValue< uint32_t > getShadowPcfSampleCount () const
 
C3D_API ShadowConfig const & getShadowConfig () const
 
C3D_API LpvConfig const & getLpvConfig () const
 
LightType getLightType () const
 
uint32_t getLightComponentCount () const
 
uint32_t getShadowComponentCount () const
 
float getDiffuseIntensity () const
 
float getSpecularIntensity () const
 
castor::Point2f const & getIntensity () const
 
float getFarPlane () const
 
castor::Point3f const & getColour () const
 
Light const & getLight () const
 
castor::BoundingBox const & getBoundingBox () const
 
C3D_API void setVolumetricSteps (uint32_t value)
 
C3D_API void setVolumetricScatteringFactor (float value)
 
C3D_API void setRawMinOffset (float value)
 
C3D_API void setRawMaxSlopeOffset (float value)
 
C3D_API void setPcfMinOffset (float value)
 
C3D_API void setPcfMaxSlopeOffset (float value)
 
C3D_API void setPcfFilterSize (uint32_t value)
 
C3D_API void setPcfSampleCount (uint32_t value)
 
C3D_API void setVsmMinVariance (float value)
 
C3D_API void setVsmLightBleedingReduction (float value)
 
C3D_API void setColour (castor::Point3f const &value)
 
C3D_API void setIntensity (castor::Point2f const &value)
 
C3D_API void setDiffuseIntensity (float value)
 
C3D_API void setSpecularIntensity (float value)
 
LightgetLight ()
 
castor::Point3f & getColour ()
 
castor::Point2f & getIntensity ()
 

Static Public Attributes

static uint32_t constexpr LightMbrAlign = 4u * sizeof( float )
 

Protected Member Functions

C3D_API LightCategory (LightType lightType, Light &light, uint32_t lightComponentCount, uint32_t shadowComponentCount)
 Constructor.
 
C3D_API void doFillBaseShadowData (BaseShadowData &data) const
 Puts the shadow data into the given buffer.
 

Protected Attributes

castor::BoundingBox m_cubeBox
 
float m_farPlane { 1.0f }
 

Friends

class Light
 

Constructor & Destructor Documentation

◆ LightCategory()

C3D_API castor3d::LightCategory::LightCategory ( LightType lightType,
Light & light,
uint32_t lightComponentCount,
uint32_t shadowComponentCount )
explicitprotected

Constructor.

Parameters
[in]lightTypeThe light category type.
[in]lightThe parent Light.
[in]lightComponentCountThe number of vec4 used to store light data.
[in]shadowComponentCountThe number of vec4 used to store shadow data.

◆ ~LightCategory()

virtual C3D_API castor3d::LightCategory::~LightCategory ( )
virtualdefaultnoexcept

Destructor.

Member Function Documentation

◆ accept()

C3D_API void castor3d::LightCategory::accept ( ConfigurationVisitorBase & vis)

ConfigurationVisitorBase acceptance function.

Parameters
visThe ... visitor.

◆ doFillBaseShadowData()

C3D_API void castor3d::LightCategory::doFillBaseShadowData ( BaseShadowData & data) const
protected

Puts the shadow data into the given buffer.

Parameters
[out]dataReceives the light's shadow data.

◆ fillLightBuffer()

C3D_API void castor3d::LightCategory::fillLightBuffer ( castor::Point4f * data) const

Puts the light into the given buffer.

Parameters
[out]dataReceives the light's data.

◆ fillShadowBuffer()

virtual C3D_API void castor3d::LightCategory::fillShadowBuffer ( AllShadowData & data) const
pure virtual

Puts the shadow data into the given buffer.

Parameters
[out]dataReceives the light's shadow data.

Implemented in castor3d::DirectionalLight, castor3d::PointLight, and castor3d::SpotLight.

◆ getBoundingBox()

castor::BoundingBox const & castor3d::LightCategory::getBoundingBox ( ) const
inline

References m_cubeBox.

◆ getColour() [1/2]

castor::Point3f & castor3d::LightCategory::getColour ( )
inline

◆ getColour() [2/2]

castor::Point3f const & castor3d::LightCategory::getColour ( ) const
inline

◆ getDiffuseIntensity()

float castor3d::LightCategory::getDiffuseIntensity ( ) const
inline

◆ getFarPlane()

float castor3d::LightCategory::getFarPlane ( ) const
inline

References m_farPlane.

◆ getIntensity() [1/2]

castor::Point2f & castor3d::LightCategory::getIntensity ( )
inline

◆ getIntensity() [2/2]

castor::Point2f const & castor3d::LightCategory::getIntensity ( ) const
inline

◆ getLight() [1/2]

Light & castor3d::LightCategory::getLight ( )
inline

◆ getLight() [2/2]

Light const & castor3d::LightCategory::getLight ( ) const
inline

◆ getLightComponentCount()

uint32_t castor3d::LightCategory::getLightComponentCount ( ) const
inline

◆ getLightType()

LightType castor3d::LightCategory::getLightType ( ) const
inline

◆ getLpvConfig()

C3D_API LpvConfig const & castor3d::LightCategory::getLpvConfig ( ) const

◆ getShadowComponentCount()

uint32_t castor3d::LightCategory::getShadowComponentCount ( ) const
inline

◆ getShadowConfig()

C3D_API ShadowConfig const & castor3d::LightCategory::getShadowConfig ( ) const

◆ getShadowPcfFilterSize()

C3D_API castor::RangedValue< uint32_t > castor3d::LightCategory::getShadowPcfFilterSize ( ) const

◆ getShadowPcfOffsets()

C3D_API castor::Point2f const & castor3d::LightCategory::getShadowPcfOffsets ( ) const

◆ getShadowPcfSampleCount()

C3D_API castor::RangedValue< uint32_t > castor3d::LightCategory::getShadowPcfSampleCount ( ) const

◆ getShadowRawOffsets()

C3D_API castor::Point2f const & castor3d::LightCategory::getShadowRawOffsets ( ) const

◆ getSpecularIntensity()

float castor3d::LightCategory::getSpecularIntensity ( ) const
inline

◆ getVolumetricScatteringFactor()

C3D_API float castor3d::LightCategory::getVolumetricScatteringFactor ( ) const

◆ getVolumetricSteps()

C3D_API uint32_t castor3d::LightCategory::getVolumetricSteps ( ) const

name Getters.

◆ getVsmLightBleedingReduction()

C3D_API float castor3d::LightCategory::getVsmLightBleedingReduction ( ) const

◆ getVsmMinVariance()

C3D_API float castor3d::LightCategory::getVsmMinVariance ( ) const

◆ setColour()

C3D_API void castor3d::LightCategory::setColour ( castor::Point3f const & value)

◆ setDiffuseIntensity()

C3D_API void castor3d::LightCategory::setDiffuseIntensity ( float value)

◆ setIntensity()

C3D_API void castor3d::LightCategory::setIntensity ( castor::Point2f const & value)

◆ setPcfFilterSize()

C3D_API void castor3d::LightCategory::setPcfFilterSize ( uint32_t value)

◆ setPcfMaxSlopeOffset()

C3D_API void castor3d::LightCategory::setPcfMaxSlopeOffset ( float value)

◆ setPcfMinOffset()

C3D_API void castor3d::LightCategory::setPcfMinOffset ( float value)

◆ setPcfSampleCount()

C3D_API void castor3d::LightCategory::setPcfSampleCount ( uint32_t value)

◆ setRawMaxSlopeOffset()

C3D_API void castor3d::LightCategory::setRawMaxSlopeOffset ( float value)

◆ setRawMinOffset()

C3D_API void castor3d::LightCategory::setRawMinOffset ( float value)

◆ setSpecularIntensity()

C3D_API void castor3d::LightCategory::setSpecularIntensity ( float value)

◆ setVolumetricScatteringFactor()

C3D_API void castor3d::LightCategory::setVolumetricScatteringFactor ( float value)

◆ setVolumetricSteps()

C3D_API void castor3d::LightCategory::setVolumetricSteps ( uint32_t value)

name Mutators.

◆ setVsmLightBleedingReduction()

C3D_API void castor3d::LightCategory::setVsmLightBleedingReduction ( float value)

◆ setVsmMinVariance()

C3D_API void castor3d::LightCategory::setVsmMinVariance ( float value)

◆ update()

virtual C3D_API void castor3d::LightCategory::update ( )
pure virtual

Updates the light.

Implemented in castor3d::DirectionalLight, castor3d::PointLight, and castor3d::SpotLight.

Friends And Related Symbol Documentation

◆ Light

friend class Light
friend

Member Data Documentation

◆ LightMbrAlign

uint32_t constexpr castor3d::LightCategory::LightMbrAlign = 4u * sizeof( float )
staticconstexpr

◆ m_cubeBox

castor::BoundingBox castor3d::LightCategory::m_cubeBox
protected

The cube box for the light volume of effect.

Referenced by getBoundingBox().

◆ m_farPlane

float castor3d::LightCategory::m_farPlane { 1.0f }
protected

The far plane's depth.

Referenced by getFarPlane().


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