Program Listing for File EnvironmentDirectedGraphData.cuh

Return to documentation for file (include/flamegpu/model/EnvironmentDirectedGraphData.cuh)

#ifndef INCLUDE_FLAMEGPU_MODEL_ENVIRONMENTDIRECTEDGRAPHDATA_CUH_
#define INCLUDE_FLAMEGPU_MODEL_ENVIRONMENTDIRECTEDGRAPHDATA_CUH_

#include <string>
#include <memory>

#include "flamegpu/model/Variable.h"
#include "flamegpu/model/ModelData.h"

namespace flamegpu {

class EnvironmentDescription;

struct EnvironmentDirectedGraphData {
    friend class EnvironmentDescription;
    friend struct EnvironmentData;
    std::weak_ptr<const ModelData> model;
    VariableMap vertexProperties{};
    VariableMap edgeProperties{};
    std::string name;
    bool operator==(const EnvironmentDirectedGraphData& rhs) const;
    bool operator!=(const EnvironmentDirectedGraphData& rhs) const;
    explicit EnvironmentDirectedGraphData(const EnvironmentDirectedGraphData& other) = delete;

 protected:
    explicit EnvironmentDirectedGraphData(const std::shared_ptr<const ModelData>& model, const EnvironmentDirectedGraphData& other);
    explicit EnvironmentDirectedGraphData(const std::shared_ptr<const EnvironmentData>& parent, const std::string& graph_name);
};
}  // namespace flamegpu

#endif  // INCLUDE_FLAMEGPU_MODEL_ENVIRONMENTDIRECTEDGRAPHDATA_CUH_