新增快速选中节点自身及其所有子节点功能
新增快速选中节点自身及其所有子节点功能
在节点的右键菜单中新增一个选项,或是按住键盘的某个键并点击节点,可选中节点自身及其所有子节点。
- caitsithware
- 管理人
- Posts: 73
- Joined: 2024/03/26 01:56
Re: 新增快速选中节点自身及其所有子节点功能
谢谢您的建议。
如果您能详细描述一下,我们会更容易考虑。
例如,请提供以下详细信息:
如果您能详细描述一下,我们会更容易考虑。
例如,请提供以下详细信息:
- 为什么要选择这种方式? (选择后你想对节点做什么?)
- “子节点”是指“节点的所有OutputPort都连接到的节点”吗?
- “所有子节点”是否包括“孙子节点及以下”?
- 如果存在循环连接,是否还包括“循环目的地的父节点”?
Re: 新增快速选中节点自身及其所有子节点功能
如图例,将图1调整为图2,用拖选的方式比较不容易快速选择需要移动的一组节点。caitsithware wrote: ↑2024/10/18 07:34 谢谢您的建议。
如果您能详细描述一下,我们会更容易考虑。
例如,请提供以下详细信息:等等。
- 为什么要选择这种方式? (选择后你想对节点做什么?)
- “子节点”是指“节点的所有OutputPort都连接到的节点”吗?
- “所有子节点”是否包括“孙子节点及以下”?
- 如果存在循环连接,是否还包括“循环目的地的父节点”?
除了移动,还有删除、复制、对齐等其他对一组节点的操作需求。 如果想快速选择"ForInt"节点及其子节点,应该包含如图3所示的所有节点。 循环连接我从未在项目中使用过,我一般是使用Restart节点或ForInt节点的方式进行循环。
关于是否包括“循环目的地的父节点”,如图4,我认为要判断是否为“循环目的地的父节点”在代码实现上是可能不容易的。
目前我思考的方案是,将节点看成FlowNode和ComputeNode两类,起始节点只可以为FlowNode,起始节点往后FlowLine相连的FlowNode都定为子节点,将起始节点和子FlowNode都保存到FlowNode HashSet,再遍历FlowNode HashSet,如果HashSet中的FlowNode连接的ComputeNode没有连接非FlowNode Hashset中的FlowNode,则这个ComputeNode也属于子节点,保存到ComputeNode HashSet。ComputeNode连接的ComputeNode也需要递归判断,如果ComputeNode在ComputeNode HashSet中或连接了非FlowNode Hashset中的FlowNode则排除。最终两个HashSet中的节点就是要选中的所有节点。 如图5,是以Log"A"为起始节点及其所有子节点。
- caitsithware
- 管理人
- Posts: 73
- Joined: 2024/03/26 01:56
Re: 新增快速选中节点自身及其所有子节点功能
明白了。
节点移动已经实现了类似的功能。
目前,我们将考虑在相同条件下实施。
节点移动已经实现了类似的功能。
- 按住 Alt (Windows) / Option (Mac) 并用鼠标左键拖动节点:一次移动所有子节点(包括旋转的父节点)
- 按住 shift 并用鼠标左键拖动节点:将父节点全部移动(包括旋转后的子节点)
目前,我们将考虑在相同条件下实施。
- caitsithware
- 管理人
- Posts: 73
- Joined: 2024/03/26 01:56
Re: 新增快速选中节点自身及其所有子节点功能
我们还将考虑包括一个从子节点的InputDataPort 连接的“独立ComputeNode”。