class
SemanticAttributesManager
Base classes
-
template<class T, ManagedObjectAccess Access>class AttributesManager<attributes::SemanticAttributes, ManagedObjectAccess::Copy>
- Class template defining responsibilities and functionality for managing esp::
metadata:: attributes:: AbstractAttributes constructs.
Constructors, destructors, conversion operators
Public functions
-
auto createObject(const std::
string& semanticConfigFilename, bool registerTemplate = true) -> attributes::SemanticAttributes::ptr override - Creates an instance of a semantic attributes 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::SemanticAttributes::ptr attribs, const io::JsonGenericValue& jsonConfig) override
- Method to take an existing attributes and set its values from passed json config file.
-
auto createEmptyRegionAttributes(const std::
string& handle) -> attributes::SemanticVolumeAttributes::ptr - This will return a attributes::
SemanticVolumeAttributes object with passed handle.
Protected functions
- auto createRegionAttributesFromJSON(const io::JsonGenericValue& jCell) -> attributes::SemanticVolumeAttributes::ptr
- Used Internally. Create a esp::
metadata:: attributes:: SemanticVolumeAttributes object from the passed JSON doc. - void setSemanticVolumeAttributesFromJson(const attributes::SemanticVolumeAttributes::ptr& attributes, const io::JsonGenericValue& jCell)
- Populate an existing metadata::
attributes:: SemanticVolumeAttributes from a JSON config. -
auto initNewObjectInternal(const std::
string& handleName, bool builtFromConfig) -> attributes::SemanticAttributes::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 preRegisterObjectFinalize(attributes::SemanticAttributes::ptr object,
const std::
string& objectHandle, bool forceRegistration) -> core:: managedContainers:: ManagedObjectPreregistration override - Not required for this manager.
-
void postRegisterObjectHandling(int objectID,
const std::
string& objectHandle) override - Not required for this manager.
- void resetFinalize() override
- Any physics-attributes-specific resetting that needs to happen on reset.
Function documentation
attributes::SemanticAttributes::ptr esp:: metadata:: managers:: SemanticAttributesManager:: createObject(const std:: string& semanticConfigFilename,
bool registerTemplate = true) override
Creates an instance of a semantic attributes 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 | |
---|---|
semanticConfigFilename | The location of the Semantic Configuratioo. |
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:: SemanticAttributesManager:: setValsFromJSONDoc(attributes::SemanticAttributes::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::SemanticVolumeAttributes::ptr esp:: metadata:: managers:: SemanticAttributesManager:: createRegionAttributesFromJSON(const io::JsonGenericValue& jCell) protected
Used Internally. Create a esp::
Parameters | |
---|---|
jCell | JSON object containing the description of the semantic retion |
Returns | the constructed esp:: |
void esp:: metadata:: managers:: SemanticAttributesManager:: setSemanticVolumeAttributesFromJson(const attributes::SemanticVolumeAttributes::ptr& attributes,
const io::JsonGenericValue& jCell) protected
Populate an existing metadata::
Parameters | |
---|---|
attributes | (out) the attributes to populate with JSON values |
jCell | JSON document to parse to populate the metadata:: |
attributes::SemanticAttributes::ptr esp:: metadata:: managers:: SemanticAttributesManager:: 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 SemanticAttributes 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 SemanticAttributes pointer, with only default values set. |
void esp:: metadata:: managers:: SemanticAttributesManager:: 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. |
core:: managedContainers:: ManagedObjectPreregistration esp:: metadata:: managers:: SemanticAttributesManager:: preRegisterObjectFinalize(attributes::SemanticAttributes::ptr object,
const std:: string& objectHandle,
bool forceRegistration) override protected
Not required for this manager.
Parameters | |
---|---|
object | the managed object to be registered |
objectHandle | the name to register the managed object with. Expected to be valid. |
forceRegistration | Should register object even if conditional registration checks fail. |
Returns | Whether the preregistration has succeeded and what handle to use to register the object if it has. |
This method will perform any essential updating to the managed object before registration is performed. If this updating fails, registration will also fail.
void esp:: metadata:: managers:: SemanticAttributesManager:: postRegisterObjectHandling(int objectID,
const std:: string& objectHandle) override protected
Not required for this manager.
Parameters | |
---|---|
objectID | the ID of the successfully registered managed object |
objectHandle | The name of the managed objbect |
This method will perform any final manager-related handling after successfully registering an object.
See esp::attributes::managers::ObjectAttributesManager for an example.