From ae6364ebb08b4f6934a38e8945518f7b7c7c1875 Mon Sep 17 00:00:00 2001 From: rtk0c Date: Wed, 21 Apr 2021 09:23:38 -0700 Subject: Draft of workflow graph rebuild algorithm (working set based) --- core/src/Model/Workflow/Workflow.hpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'core/src/Model/Workflow/Workflow.hpp') diff --git a/core/src/Model/Workflow/Workflow.hpp b/core/src/Model/Workflow/Workflow.hpp index a7b2c31..bfed722 100644 --- a/core/src/Model/Workflow/Workflow.hpp +++ b/core/src/Model/Workflow/Workflow.hpp @@ -99,6 +99,7 @@ protected: std::vector mOutputs; Type mType; Kind mKind; + int mDepth; public: WorkflowNode(Type type, Kind kind); @@ -144,6 +145,7 @@ private: std::vector mConnections; std::vector> mNodes; std::vector> mConstants; + bool mDepthsDirty = true; public: WorkflowConnection* GetConnectionById(size_t id); @@ -157,6 +159,16 @@ public: bool DisconnectBySource(WorkflowNode& sourceNode, int sourcePin); bool DisconnectByDestination(WorkflowNode& destinationNode, int destinationPin); + void RemoveConnection(size_t id); + + bool DoesDepthNeedsUpdate() const; + + enum GraphUpdateResult { + Success, + CyclicReference, + }; + GraphUpdateResult UpdateGraph(); + private: std::pair AllocWorkflowConnection(); std::pair&, size_t> AllocWorkflowStep(); -- cgit v1.2.3-70-g09d2