Code Overview

I'm not going to cover every directory and file in this overview but I will go over a few of the key areas.

The directory structure is organized as follows:

project
│   README.md  
│
└───CMake
│   │   [various cmake config files]
│   │   ...
│   
└───Editor_UI
│   │
│   └───Common
│   │   │   entry.cpp               - Location of Editor Application main
│   │   │   ...
│   │
│   └───Node_Editor
│       │   node_editor.cpp         - Editor UI code
│       │   ...
│   
└───Examples
│   │   OpenCV_Dataflow_Test        - Simple example showing how to use the dataflow framework to build processing applications
│   
└───FlowCV_SDK
│   │   [SDK Files and Folders]     - The core FlowCV SDK for building applications or plugins
│   │   ...
│   
└───Internal_Nodes
│   │   [Various Internal Nodes]    - The core OpenCV functionality nodes
│   │   ...
│   
└───Managers
│   │   FlowCV_Manager.cpp          - A simple management class to keep track of node instances, connections and processing
│   │   Internal_Node_Manager.cpp   - A class for registering and handling internal node instances
│   │   Plugin_Manager.cpp          - A class for registering and handling external node plugins
│   │   ...
│   
└───Plugins
│   │   [Various Plugin Nodes]      - External node plugins to extend FlowCV functionality
│   │   ...
│   
└───Processing_Engine
│   │   Headless_Process_Engine     - Application for running flows in headless processing mode
│   
└───Templates
│   │   Internal_Node               - A template for creating new internal nodes
│   │   Plugin                      - A template for creating new plugin nodes
│   
└───third-party
│   │   [various third-party dependecies]
│   │   ...
│   
└───Tools
    │   PluginMaker.py              - Python script to help automate the creation of new nodes