start 3.0

This commit is contained in:
DebugST 2022-08-30 15:47:04 +08:00
parent 3ced81000a
commit e92206a462
3 changed files with 169 additions and 0 deletions

View File

@ -1,3 +1,14 @@
# Version 3.0
现在: 2022-08-30
`3.0`版本进入排期开发,开发进度将同步更新。具体说明请查看 [V3_CN.md](./V3_CN.md)
now: 2022-08-30
The version `3.0` has been start coding,The development progress is updated synchronously. more info refer [V3_EN.md](./V3_EN.md)
# STNodeEditor
[![VS2010](https://img.shields.io/badge/Visual%20Studio-2010-blueviolet)](https://visualstudio.microsoft.com/zh-hans/vs/) [![.NET35](https://img.shields.io/badge/DotNet-3.5-blue)](https://www.microsoft.com/zh-cn/download/details.aspx?id=25150) [![NuGet](https://img.shields.io/badge/NuGet-5.9-blue)](https://www.nuget.org/packages/ST.Library.UI/) [![license](https://img.shields.io/badge/License-MIT-green)](https://github.com/DebugST/STNodeEditor/blob/main/LICENSE)

79
V3_CN.md Normal file
View File

@ -0,0 +1,79 @@
由于`3.0`版本可能部分代码会被重构,所以决定开一个新的项目。但是项目目前并未上传`GitHub`。将在完成时候上传。
虽然用户量不多,但是感谢那些一直在使用`STNodeEditor`的用户,在他们那里作者得到了一些反馈。将做如下调整:
修复已知bug
增加高DPI支持
添加json格式序列化文件
添加缩略图
节点选项悬浮提示信息
添加控件支持:
`Panel`
`lable`
`button`
`textbox`
`listview`
`chekcbox`
`radiobutton`
`combobox`
`groupbox`
`picturebox`
`progressbar`
`trackbar`
`NumericUpDown`
控件将尽可能保持`WinForm`的使用习惯。
添加`STNodeEditorLayer.cs`
替代原本的`STNodeEditor.cs`
```cs
var layer = new STNodeEditorLayer("layer_name");
layer.Nodes.add(new STNode_1());
layer.Nodes.add(new STNode_2());
STNodeEditor_1.Layer = layer;
// STNodeEditor.Layers.Add(layer) 此方式先待定
/*
这样做的目的是想实现类似TabControl的效果用户可能有多个画布需要加载
所以他不得不添加多个STNodeEditor做切换。所以用STNodeEditorLayer代替原本的STNodeEditor
而STNodeEditor仅仅作为一个画布容器
*/
```
添加`STNodeSpy.cs`
虽然`STNodeEditor`可以通过选项点颜色来区分数据类型,但是不排除会出现同一个颜色不同数据类型的情况,尤其是节点并非一个人开发的情况。
`STNodeSpy`作为一个内置节点提供就像`STNodeHub`一样,它的使用方式将会和`SPY++`类似。
添加`STNodeGroup.cs`
目前的`STNodeEditor`并没有分组的功能,作者准备尝试使用`Blender`一样的分组方式,毕竟作者确实很喜欢`Blender`。将分组作为一个节点使用。
```cs
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);
/*
group 具有可编辑属性它将以普通节点的形式存在于layer中。但是它可以被展开
当group被展开时它将变成一个独立的layer可以进行节点的添加和删除。
可以参考Blender的group可以理解为将整个画布的最开始的输入和最终的输出作为一个节点的输入和输出。
*/
```
以上仅供参考,最终效果请以实物为准。😏😏😏😏😏(毕竟作者是个死咸鱼,不排除摆烂、虚假宣传的可能)。
如上面的某一个功能已经完成则会在旁边标记一个时间 比如:
(2023-12-21)`增加高DPI支持`
如果你有什么想法可以联系咸鱼作者2212233137@qq.com

79
V3_EN.md Normal file
View File

@ -0,0 +1,79 @@
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:
Fix known bugs
Add high DPI support
Add json format serialization file
Add mini-map
Node option hover hint text
Add Controls
`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 `STNodeEditorLayer.cs`
To replace `STNodeEditor.cs`
```cs
var layer = new STNodeEditorLayer("layer_name");
layer.Nodes.add(new STNode_1());
layer.Nodes.add(new STNode_2());
STNodeEditor_1.Layer = layer;
// STNodeEditor.Layers.Add(layer) 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 STNodeEditorLayer 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.
```cs
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