Program Listing for File SubEnvironmentData.h
↰ Return to documentation for file (include/flamegpu/model/SubEnvironmentData.h
)
#ifndef INCLUDE_FLAMEGPU_MODEL_SUBENVIRONMENTDATA_H_
#define INCLUDE_FLAMEGPU_MODEL_SUBENVIRONMENTDATA_H_
#include <memory>
#include <string>
#include <unordered_map>
namespace flamegpu {
struct ModelData;
struct SubModelData;
struct EnvironmentData;
class SubEnvironmentDescription;
struct SubEnvironmentData : std::enable_shared_from_this<SubEnvironmentData> {
friend class SubEnvironmentDescription;
friend class SubModelDescription;
friend struct ModelData;
std::weak_ptr<const ModelData> model;
std::weak_ptr<EnvironmentData> subEnvironment;
std::weak_ptr<EnvironmentData> masterEnvironment;
typedef std::unordered_map<std::string, std::string> Mapping;
Mapping properties;
Mapping macro_properties;
Mapping directed_graphs;
std::weak_ptr<SubModelData> parent;
bool operator==(const SubEnvironmentData& rhs) const;
bool operator!=(const SubEnvironmentData& rhs) const;
SubEnvironmentData(const SubEnvironmentData &other) = delete;
protected:
explicit SubEnvironmentData(std::shared_ptr<const ModelData> model, const std::shared_ptr<SubModelData> &parent, const SubEnvironmentData &other);
explicit SubEnvironmentData(std::shared_ptr<const ModelData> model, const std::shared_ptr<SubModelData> &_parent, const std::shared_ptr<EnvironmentData> &subEnv);
};
} // namespace flamegpu
#endif // INCLUDE_FLAMEGPU_MODEL_SUBENVIRONMENTDATA_H_