# blueprintsdk
**Repository Path**: OpenCodeWin/blueprintsdk
## Basic Information
- **Project Name**: blueprintsdk
- **Description**: An UI component based on imgui to create and edit complex node graphs for data flow.
- **Primary Language**: C/C++
- **License**: LGPL-3.0
- **Default Branch**: master
- **Homepage**: https://github.com/opencodewin/blueprintsdk
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2023-12-22
- **Last Updated**: 2024-04-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: imgui, Framework, node-graph-editor, Canvas, SDK
## README
BluePrintSDK

BluePrintSDK is the core of Media filters and transitions in **[MediaEditor](https://github.com/opencodewin/MediaEditor.git)**. Blueprint is a form composed of **multiple nodes** that can **handle complex functions** through the flows between nodes. Node is the basic unit in the blueprint, it's a function module.
## INTRODUCTION
When you first use the BluePrintSDK, in its editing area, you can have a hard time understanding how a node somehow connects to communicate with anpother node. But by observing, you quickly discover that:
* There are three types of nodes: Start node, Functional node, and End node.
* Functional nodes have pins on the left and right sides. Start node and End node have pins only on one side.
* Pins and connections have different colors and icons;
* Connection mode is from the right side of the previous node to the left side of the next node.
Actually, node‘s pins is divided into process pin and data pin:
* Process pin indicates the overall flow direction, which is shown as the node is triggered by who and triggered nodes, process pin can be triggered by multiple nodes.
* Data pin indicates that data is available. It can be provided for use by multiple nodes, but can only accept data from a single node. Data pins have data types, such as mat, float, int, etc.
## SCREENSHOT
|Demo 1
|
|---|
|
|
|Demo 2
|
|---|
|
|
|Demo 3
|
|---|
|
|
## LICENSE
BluePrintSDK is **[LGPLv3 licensed](LICENSE)**. You may use, distribute and copy it under the license terms.