Castor3D 0.17.0
Multiplatform 3D engine
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
castor3d::LightingModelFactory Class Reference

#include <LightingModelFactory.hpp>

Classes

struct  Entry
 
struct  LightingModel
 

Public Types

using Obj = shader::LightingModel
 
using Key = castor::String
 
using Id = LightingModelID
 
using PtrType = shader::LightingModelPtr
 
using Creator = shader::LightingModelCreator
 
using ObjPtr = PtrType
 
using LightingModelPtr = std::unique_ptr< LightingModel >
 
using LightingModelCont = castor::Vector< LightingModelPtr >
 
using ObjCont = castor::Vector< Entry >
 

Public Member Functions

C3D_API void registerType (castor::String const &baseName, shader::LightingModelDesc const &defaultDesc, Creator const &create)
 Registers a lighting model.
 
C3D_API void unregisterType (castor::String const &baseName)
 Unregisters a lighting model.
 
C3D_API void registerDiffuseBrdf (shader::DiffuseBrdfDesc const &desc)
 Registers a diffuse BRDF.
 
C3D_API void unregisterDiffuseBrdf (castor::String const &name)
 Unegisters a diffuse BRDF.
 
C3D_API void registerSpecularBrdf (shader::SpecularBrdfDesc const &desc)
 Registers a specular BRDF.
 
C3D_API void unregisterSpecularBrdf (castor::String const &name)
 Unegisters a specular BRDF.
 
C3D_API void registerSheenBrdf (shader::SheenBrdfDesc const &desc)
 Registers a sheen BRDF.
 
C3D_API void unregisterSheenBrdf (castor::String const &name)
 Unegisters a sheen BRDF.
 
C3D_API void registerClearcoatBrdf (shader::ClearcoatBrdfDesc const &desc)
 Registers a clearcoat BRDF.
 
C3D_API void unregisterClearcoatBrdf (castor::String const &name)
 Unegisters a clearcoat BRDF.
 
C3D_API void registerScatteringModel (shader::ScatteringModelDesc const &desc)
 Registers a scattering model.
 
C3D_API void unregisterScatteringModel (castor::String const &name)
 Unegisters a scattering model.
 
C3D_API Id getLightingModelId (castor::String const &baseName, shader::LightingModelNames descNames={})
 
C3D_API LightingModel const & getModel (castor::String const &baseName) const
 
C3D_API Key getBaseName (Id const &id) const
 
C3D_API castor::String getDiffuseBrdfName (Id const &id) const
 
C3D_API castor::String getSpecularBrdfName (Id const &id) const
 
C3D_API castor::String getSheenBrdfName (Id const &id) const
 
C3D_API castor::String getClearcoatBrdfName (Id const &id) const
 
C3D_API castor::String getScatteringModelName (Id const &id) const
 
C3D_API castor::Vector< LightingModelIDgetLightingModelsID () const
 
C3D_API castor::StringArray listRegisteredTypes () const
 
template<typename ... Parameters>
ObjPtr create (LightingModelID lightingModelId, Parameters &&... params) const
 Creates an object from an ID.
 

Static Public Member Functions

static C3D_API castor::String normaliseName (castor::String name)
 Replaces old names with registered ones.
 

Member Typedef Documentation

◆ Creator

◆ Id

◆ Key

◆ LightingModelCont

◆ LightingModelPtr

◆ Obj

◆ ObjCont

◆ ObjPtr

◆ PtrType

Member Function Documentation

◆ create()

template<typename ... Parameters>
ObjPtr castor3d::LightingModelFactory::create ( LightingModelID lightingModelId,
Parameters &&... params ) const
inline

Creates an object from an ID.

Parameters
[in]lightingModelIdThe lighting model ID.
[in]paramsThe creation parameters.
Returns
The created object.

References CU_Exception, and castor::ERROR_UNKNOWN_OBJECT.

◆ getBaseName()

C3D_API Key castor3d::LightingModelFactory::getBaseName ( Id const & id) const
Parameters
[in]idThe lighting model ID.
Returns
The lighting model name.

◆ getClearcoatBrdfName()

C3D_API castor::String castor3d::LightingModelFactory::getClearcoatBrdfName ( Id const & id) const
Parameters
[in]idThe lighting model ID.
Returns
The clearcoat BRDF name.

◆ getDiffuseBrdfName()

C3D_API castor::String castor3d::LightingModelFactory::getDiffuseBrdfName ( Id const & id) const
Parameters
[in]idThe lighting model ID.
Returns
The diffuse BRDF name.

◆ getLightingModelId()

C3D_API Id castor3d::LightingModelFactory::getLightingModelId ( castor::String const & baseName,
shader::LightingModelNames descNames = {} )
Parameters
[in]baseNameThe lighting model base name.
[in]descNamesThe lighting model desciption names.
Returns
The lighting model ID.

◆ getLightingModelsID()

C3D_API castor::Vector< LightingModelID > castor3d::LightingModelFactory::getLightingModelsID ( ) const
Returns
The unique lighting models IDs.

◆ getModel()

C3D_API LightingModel const & castor3d::LightingModelFactory::getModel ( castor::String const & baseName) const
Parameters
[in]baseNameThe lighting model base name.
Returns
The lighting model description.

◆ getScatteringModelName()

C3D_API castor::String castor3d::LightingModelFactory::getScatteringModelName ( Id const & id) const
Parameters
[in]idThe lighting model ID.
Returns
The scattering model.

◆ getSheenBrdfName()

C3D_API castor::String castor3d::LightingModelFactory::getSheenBrdfName ( Id const & id) const
Parameters
[in]idThe lighting model ID.
Returns
The sheen BRDF name.

◆ getSpecularBrdfName()

C3D_API castor::String castor3d::LightingModelFactory::getSpecularBrdfName ( Id const & id) const
Parameters
[in]idThe lighting model ID.
Returns
The specular BRDF name.

◆ listRegisteredTypes()

C3D_API castor::StringArray castor3d::LightingModelFactory::listRegisteredTypes ( ) const
Returns
The lighting models names.

◆ normaliseName()

static C3D_API castor::String castor3d::LightingModelFactory::normaliseName ( castor::String name)
static

Replaces old names with registered ones.

◆ registerClearcoatBrdf()

C3D_API void castor3d::LightingModelFactory::registerClearcoatBrdf ( shader::ClearcoatBrdfDesc const & desc)

Registers a clearcoat BRDF.

Parameters
[in]descThe BRDF description.

◆ registerDiffuseBrdf()

C3D_API void castor3d::LightingModelFactory::registerDiffuseBrdf ( shader::DiffuseBrdfDesc const & desc)

Registers a diffuse BRDF.

Parameters
[in]descThe BRDF description.

◆ registerScatteringModel()

C3D_API void castor3d::LightingModelFactory::registerScatteringModel ( shader::ScatteringModelDesc const & desc)

Registers a scattering model.

Parameters
[in]descThe model description.

◆ registerSheenBrdf()

C3D_API void castor3d::LightingModelFactory::registerSheenBrdf ( shader::SheenBrdfDesc const & desc)

Registers a sheen BRDF.

Parameters
[in]descThe BRDF description.

◆ registerSpecularBrdf()

C3D_API void castor3d::LightingModelFactory::registerSpecularBrdf ( shader::SpecularBrdfDesc const & desc)

Registers a specular BRDF.

Parameters
[in]descThe BRDF description.

◆ registerType()

C3D_API void castor3d::LightingModelFactory::registerType ( castor::String const & baseName,
shader::LightingModelDesc const & defaultDesc,
Creator const & create )

Registers a lighting model.

Parameters
[in]baseNameThe lighting model base name.
[in]defaultDescThe default model description.
[in]createThe object creation function.

◆ unregisterClearcoatBrdf()

C3D_API void castor3d::LightingModelFactory::unregisterClearcoatBrdf ( castor::String const & name)

Unegisters a clearcoat BRDF.

Parameters
[in]nameThe BRDF name.

◆ unregisterDiffuseBrdf()

C3D_API void castor3d::LightingModelFactory::unregisterDiffuseBrdf ( castor::String const & name)

Unegisters a diffuse BRDF.

Parameters
[in]nameThe BRDF name.

◆ unregisterScatteringModel()

C3D_API void castor3d::LightingModelFactory::unregisterScatteringModel ( castor::String const & name)

Unegisters a scattering model.

Parameters
[in]nameThe model name.

◆ unregisterSheenBrdf()

C3D_API void castor3d::LightingModelFactory::unregisterSheenBrdf ( castor::String const & name)

Unegisters a sheen BRDF.

Parameters
[in]nameThe BRDF name.

◆ unregisterSpecularBrdf()

C3D_API void castor3d::LightingModelFactory::unregisterSpecularBrdf ( castor::String const & name)

Unegisters a specular BRDF.

Parameters
[in]nameThe BRDF name.

◆ unregisterType()

C3D_API void castor3d::LightingModelFactory::unregisterType ( castor::String const & baseName)

Unregisters a lighting model.

Parameters
[in]baseNameThe lighting model base name.

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