Class SubEnvironmentDescription

Inheritance Relationships

Base Type

Class Documentation

class SubEnvironmentDescription : public flamegpu::CSubEnvironmentDescription

This class provides an interface to a mapping between a parent and submodel’s environment properties

Public Functions

explicit SubEnvironmentDescription(std::shared_ptr<SubEnvironmentData> data)

Constructor, creates an interface to the SubEnvironmentData Constructors

Parameters

data – Data store of this subenvironment’s data

SubEnvironmentDescription(const SubEnvironmentDescription &other_agent) = default

Copy constructor Creates a new interface to the same SubEnvironmentData/ModelData

SubEnvironmentDescription(SubEnvironmentDescription &&other_agent) = default
SubEnvironmentDescription &operator=(const SubEnvironmentDescription &other_agent) = default

Assignment operator Assigns this interface to the same SubEnvironmentData/ModelData

SubEnvironmentDescription &operator=(SubEnvironmentDescription &&other_agent) = default
void autoMap()

Automatically map all compatible properties and macro properties In order to be compatible, properties must share the same name, type, dimensions/length (number of elements) Const master properties cannot be mapped to non-const sub properties, however the inverse is permitted

void autoMapProperties()

Automatically map all compatible properties In order to be compatible, properties must share the same name, type, length (number of elements) Const master properties cannot be mapped to non-const sub properties, however the inverse is permitted

void autoMapMacroProperties()

Automatically map all compatible macro properties In order to be compatible, properties must share the same name, type, dimensions

void mapProperty(const std::string &sub_property_name, const std::string &master_property_name)

Links the named properties between the master and sub environment In order to be compatible, properties must share the same name, type, length (number of elements) Const master properties cannot be mapped to non-const sub properties, however the inverse is permitted

Parameters
  • sub_property_name – Name of the property in the sub models agent

  • master_property_name – Name of the property in the master models agent

Throws
  • exception::InvalidParent – If the sub agent or master agent weak_ptrs have expired (this should never happen)

  • exception::InvalidEnvProperty – If the named property does not exist within the bound sub or master environment

  • exception::InvalidEnvProperty – If the named properties do not share the same type and length

void mapMacroProperty(const std::string &sub_property_name, const std::string &master_property_name)

Links the named macro properties between the master and sub environment In order to be compatible, macro properties must share the same name, type, dimensions

Parameters
  • sub_property_name – Name of the macro property in the sub models agent

  • master_property_name – Name of the macro property in the master models agent

Throws
  • exception::InvalidParent – If the sub agent or master agent weak_ptrs have expired (this should never happen)

  • exception::InvalidEnvProperty – If the named macro property does not exist within the bound sub or master environment

  • exception::InvalidEnvProperty – If the named macro properties do not share the same type and length