.. _program_listing_file_include_flamegpu_model_LayerData.h: Program Listing for File LayerData.h ==================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/flamegpu/model/LayerData.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef INCLUDE_FLAMEGPU_MODEL_LAYERDATA_H_ #define INCLUDE_FLAMEGPU_MODEL_LAYERDATA_H_ #include #include #include #include "flamegpu/runtime/HostAPI_macros.h" // Todo replace with std/cub style fns (see AgentFunction.cuh) #include "flamegpu/model/ModelData.h" namespace flamegpu { struct AgentFunctionData; class LayerDescription; class HostFunctionCallback; class HostFunctionConditionCallback; struct LayerData { friend class ModelDescription; friend struct ModelData; std::weak_ptr model; std::set> agent_functions; std::set host_functions; std::set host_functions_callbacks; std::shared_ptr sub_model; std::string name; flamegpu::size_type index; bool operator==(const LayerData &rhs) const; bool operator!=(const LayerData &rhs) const; LayerData(const LayerData &other) = delete; protected: friend DependencyGraph; // Uses normal constructor to directly create layers in ModelData - avoids requiring ModelDescription in DependencyGraph LayerData(const std::shared_ptr &model, const LayerData &other); LayerData(const std::shared_ptr &model, const std::string &name, const flamegpu::size_type &index); }; } // namespace flamegpu #endif // INCLUDE_FLAMEGPU_MODEL_LAYERDATA_H_