esp::metadata::managers::PbrShaderAttributesManager class

Base classes

template<class T, ManagedObjectAccess Access>
class AttributesManager<attributes::PbrShaderAttributes, ManagedObjectAccess::Copy>
Class template defining responsibilities and functionality for managing esp::metadata::attributes::AbstractAttributes constructs.

Constructors, destructors, conversion operators

PbrShaderAttributesManager()

Public functions

auto createObject(const std::string& pbrConfigFilename = ESP_DEFAULT_PBRSHADER_CONFIG_REL_PATH, bool registerTemplate = true) -> attributes::PbrShaderAttributes::ptr override
Creates an instance of a PBR shader configuration file used to govern which calculations are performed by the PBR shader (such as Image-based Lighting and/or specific PBR layer calculations), as well as to provide some user-configurable shader-wide control values.
void setValsFromJSONDoc(attributes::PbrShaderAttributes::ptr attribs, const io::JsonGenericValue& jsonConfig) override
Method to take an existing attributes and set its values from passed json config file.
void setAllIBLEnabled(bool isIblEnabled)
This will set all the metadata::attributes::PbrShaderAttributes to have IBL either on or off.
void setAllDirectLightsEnabled(bool isDirLightEnabled)
This will set all the metadata::attributes::PbrShaderAttributes to have Direct Ligthing either on or off.

Protected functions

auto initNewObjectInternal(const std::string& handleName, bool builtFromConfig) -> attributes::PbrShaderAttributes::ptr override
Used Internally. Create and configure newly-created attributes with any default values, before any specific values are set.
void deleteObjectInternalFinalize(int templateID, const std::string& templateHandle) override
This method will perform any necessary updating that is attributesManager-specific upon template removal, such as removing a specific template handle from the list of file-based template handles in ObjectAttributesManager. This should only be called esp::core::ManagedContainerBase.
auto registerObjectFinalize(attributes::PbrShaderAttributes::ptr pbrShaderConfigurationTemplate, const std::string& pbrShaderConfigurationHandle, bool forceRegistration) -> int override
Add a copy of the esp::metadata::attributes::PbrShaderAttributes shared_ptr object to the objectLibrary_.
void resetFinalize() override
Any physics-attributes-specific resetting that needs to happen on reset.

Function documentation

attributes::PbrShaderAttributes::ptr esp::metadata::managers::PbrShaderAttributesManager::createObject(const std::string& pbrConfigFilename = ESP_DEFAULT_PBRSHADER_CONFIG_REL_PATH, bool registerTemplate = true) override

Creates an instance of a PBR shader configuration file used to govern which calculations are performed by the PBR shader (such as Image-based Lighting and/or specific PBR layer calculations), as well as to provide some user-configurable shader-wide control values.

Parameters
pbrConfigFilename The location of the PBR shader configuration file to parse. Defaults to the file location ESP_DEFAULT_PHYSICS_CONFIG_REL_PATH set by cmake.
registerTemplate whether to add this template to the library. If the user is going to edit this template, this should be false - any subsequent editing will require re-registration. Defaults to true. If specified as true, then this function returns a copy of the registered template.
Returns a reference to the physics simulation meta data object parsed from the specified configuration file.

If a template exists with this handle, this existing template will be overwritten with the newly created one if registerTemplate is true.

void esp::metadata::managers::PbrShaderAttributesManager::setValsFromJSONDoc(attributes::PbrShaderAttributes::ptr attribs, const io::JsonGenericValue& jsonConfig) override

Method to take an existing attributes and set its values from passed json config file.

Parameters
attribs (out) an existing attributes to be modified.
jsonConfig json document to parse

attributes::PbrShaderAttributes::ptr esp::metadata::managers::PbrShaderAttributesManager::initNewObjectInternal(const std::string& handleName, bool builtFromConfig) override protected

Used Internally. Create and configure newly-created attributes with any default values, before any specific values are set.

Parameters
handleName handle name to be assigned to attributes
builtFromConfig Whether this PbrShaderAttributes is being built from a config file (i.e. handleName is the name of a configuration file) or from some other source.
Returns Newly created but unregistered PbrShaderAttributes pointer, with only default values set.

void esp::metadata::managers::PbrShaderAttributesManager::deleteObjectInternalFinalize(int templateID, const std::string& templateHandle) override protected

This method will perform any necessary updating that is attributesManager-specific upon template removal, such as removing a specific template handle from the list of file-based template handles in ObjectAttributesManager. This should only be called esp::core::ManagedContainerBase.

Parameters
templateID the ID of the template to remove
templateHandle the string key of the attributes desired.

int esp::metadata::managers::PbrShaderAttributesManager::registerObjectFinalize(attributes::PbrShaderAttributes::ptr pbrShaderConfigurationTemplate, const std::string& pbrShaderConfigurationHandle, bool forceRegistration) override protected

Add a copy of the esp::metadata::attributes::PbrShaderAttributes shared_ptr object to the objectLibrary_.

Parameters
pbrShaderConfigurationTemplate The attributes template.
pbrShaderConfigurationHandle The key for referencing the template in the objectLibrary_.
forceRegistration Will register object even if conditionalE registration checks fail.
Returns The index in the objectLibrary_ of object template.