树状数据结构

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
    

大小树结构有如下特点:

  • 每个小树是初始化后便固定的结构;而大树是动态的,每一个子节点都是集合元素,会动态增删。

  • 小树除了结构节点,其他节点都是叶子节点。

  • 小树内的观察者和写者是扁平化的,仅小树间的是与大树同构的树状关系。

  • 路径索引仅能在小树内索引,无法跨小树索引。