节点编辑器(1):特性介绍
简介
本章将会介绍节点编辑器中的特性和其作用,以及使用方式。
数据结构介绍
节点编辑器的所有数据都存在Graph中,共包含以下三种主要数据。
- Node,只有ID和Position两条数据,
- Connection,包含起始节点和目标节点的ID,以及接口名称,
- Group,包含ID、组名和节点ID列表等数据。
节点的静态数据
节点的静态数据(默认数据)存储在GraphProcessorUtil
中,下方的特性定义的静态数据都存储在此。
- Node Menu Attribute,特性决定了在编辑时节点在节点列表中的位置,并且菜单的最后一项会作为节点的默认名称。
- Node Title Attribute,该特性用于替换默认标题,当然也可以通过
BaseNodeVM.Title
字段修改标题。 - Node Title Color Attribute,该特性用于替换默认标题背景色,也可以通过
BaseeNodeVM.TitleColor
字段修改。 - Node Tooltip Attribute,该特性用于给节点View增加悬停提示,可以通过
BaseNodeVM.Tooltip
字段修改提示文字。
下面是使用方法:
1 | [ ] |
VM与M的映射关系
想要使用一个Graph对象,必须要有一个符合条件的VM对象来控制,默认的BaseGraph
对应BaseGraphVM
,VM基类没有其他功能,需要通过继承实现更多功能。
如何添加映射?
使用ViewModelAttribute
,该特性的使用方式是挂在VM类上,作用是将VM类和Model类一一对应起来,映射数据存储在ViewModelFactory
中,可通过ViewModelFactory.GetViewModelType(modelType)
来获取Model类对应的VM类,ViewModelFactory
是一个通用类,属于GraphProcessor
依赖的一部分。
下面是一个简单的自定义节点,通过ViewModel
特性,把VM类和Model类做了映射。如果没有对应的VM类,会自动创建默认的BaseNodeVM对象。
1 | [ ] |
结尾
GraphProcessor基础运用所需要的特性不多,主要是M和VM的映射,本章到此结束,下期将会用节点编辑器做一个简单的计算器出来。如果有其他问题可以通过我Github主页的QQ或者邮箱直接询问。
评论