树状数据结构
GDVM以树的形式组织数据,与Godot的节点树相匹配。
在GDVM的概念里,所绑定的根部数据是已存在的,确定的数据, 而列表、字典、节点的元素是尚未生成的,无法在创建前就绑定。
所以GDVM会记录元素是如何创建的,以及创建后该如何绑定。
于是树状的数据结构分为两个层次:
flowchart TD
subgraph SA[基小树]
A(基)-->B(a(Variant))
A-->C(b(Float))
A-->D(c(Node))
end
D-->E
subgraph SB[子节点小树]
E(d(Struct))-->F(e)
E-->G(f)
E-->H(g)
end
大小树结构有如下特点:
每个小树是初始化后便固定的结构;而大树是动态的,每一个子节点都是集合元素,会动态增删。
小树除了结构节点,其他节点都是叶子节点。
小树内的观察者和写者是扁平化的,仅小树间的是与大树同构的树状关系。
路径索引仅能在小树内索引,无法跨小树索引。