2 Star 27 Fork 15

新无止竞 / STNodeEditor

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
V3_EN.md 3.47 KB
一键复制 编辑 原始数据 按行查看 历史
DebugST 提交于 2022-10-17 14:56 . update progress

Since the 3.0 version may be partially refactored, it was decided to start a new project. But the project is not currently uploaded to GitHub. Will upload when finished.

Although there are not many users, thanks to those who have been using STNodeEditor, where the author got some feedback. The following adjustments will be made:

Items Status Complete time Note
Add high DPI support 2022-09-12 Create STGraphics
Add json format serialization file 2022-09-30 Add new project STJson
Add STNodeEditorCanvas ☑️ start -
Add mini-map ☑️ - -
Node option hover hint text ☑️ - -
Add mini-map ☑️ - -

Add Controls:

Items Status Complete time Note
Panel ☑️ - -
lable ☑️ - -
button ☑️ - -
textbox ☑️ - -
listview ☑️ - -
chekcbox ☑️ - -
radiobutton ☑️ - -
combobox ☑️ - -
groupbox ☑️ - -
picturebox ☑️ - -
progressbar ☑️ - -
trackbar ☑️ - -
NumericUpDown ☑️ - -

Controls will maintain the WinForm usage habits as much as possible.

Add STNodeEditorCanvas.cs

To replace STNodeEditor.cs

var canvas = new STNodeEditorCanvas("layer_name");
canvas.Nodes.add(new STNode_1());
canvas.Nodes.add(new STNode_2());
STNodeEditor_1.Canvas = canvas;
// STNodeEditor.Layers.Add(canvas) This method is pending.
/*
    The purpose of this is to achieve a TabControl-like effect, where the user may have multiple canvases to load.
    So he had to add multiple STNodeEditors for switching. So use STNodeEditorCanvas to replace the original STNodeEditor.
    And STNodeEditor only acts as a canvas container.
*/

Add STNodeSpy.cs

Although STNodeEditor can distinguish data types by option point color, it does not rule out that there will be different data types with the same color, especially if the node is not developed by one person.

STNodeSpy is provided as a built-in node just like STNodeHub, it will be used in a similar way to SPY++.

Add STNodeGroup.cs

The current STNodeEditor does not have the function of grouping. The author is going to try to use the same grouping method as Blender. After all, the author really likes Blender. Use the group as a node.

var group = new STNodeGroup("group_name");
group.Nodes.Add(new STNode_1());
group.Nodes.Add(new STNode_2());
var layer = new STNodeEditorLayer("layer_name");
layder.Nodes.Add(group);
/*
    The group has editable properties and it will exist in the layer as a normal node. But it can be expanded.
    When the group is expanded, it will become an independent layer, and nodes can be added and removed.
    You can refer to Blender's group, which can be understood as taking the initial input and final output of the entire canvas as the input and output of a node.
*/

The above is for reference only, please refer to the actual product for the final effect. 😏😏😏😏😏 (after all, the author is a dead salted fish, and the possibility of strikes and false propaganda cannot be ruled out).

If one of the above functions has been completed, a time will be marked next to it. For example:

(2023-12-21)Add high DPI support

If you have any ideas you can contact the author: 2212233137@qq.com

C#
1
https://gitee.com/huiwei13/STNodeEditor.git
git@gitee.com:huiwei13/STNodeEditor.git
huiwei13
STNodeEditor
STNodeEditor
main

搜索帮助