.. _program_listing_file_src_flamegpu_model_DependencyNode.cpp: Program Listing for File DependencyNode.cpp =========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/flamegpu/model/DependencyNode.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include #include #include "flamegpu/model/DependencyNode.h" #include "flamegpu/model/AgentFunctionDescription.h" namespace flamegpu { DependencyNode::~DependencyNode() { } bool DependencyNode::hasDependents() const { return dependents.size() != 0; } const std::vector DependencyNode::getDependents() const { return dependents; } bool DependencyNode::hasDependencies() const { return dependencies.size() != 0; } const std::vector DependencyNode::getDependencies() const { return dependencies; } void DependencyNode::setMinimumLayerDepth(const int _minLayerDepth) { this->minLayerDepth = _minLayerDepth; } int DependencyNode::getMinimumLayerDepth() { return minLayerDepth; } void DependencyNode::dependsOnImpl(DependencyNode& dependency) { if (auto thisAsAFD = dynamic_cast(this)) { if (auto depAsAFD = dynamic_cast(&dependency)) { if (thisAsAFD->function->model.expired() || !(thisAsAFD->function->model.lock() == depAsAFD->function->model.lock())) { THROW exception::InvalidDependencyGraph("Attempting to add two agent functions from different models to dependency graph!"); } } } dependency.addDependent(*this); dependencies.push_back(&dependency); } void DependencyNode::addDependent(DependencyNode& dependent) { dependents.push_back(&dependent); } } // namespace flamegpu