如何处理场景图创建

时间:2017-01-22 01:38:32

标签: architecture d scene scenegraph

我目前正在设计一个场景图,但我遇到了一个问题。

创建场景图时,我创建一个展开的链表来保存子节点。场景图旨在允许使用自定义分配器,场景初始化并作为成员变量携带。

就目前而言,我有许多名为make*的函数,它们接收场景,以及节点可能具有的任何参数(即makeGroup(scene, null))。我的问题是:在删除不必要的膨胀时,我可以使用哪些方法来创建节点?

到目前为止,我已经找到了两个解决方案:

  1. 仅在创建和销毁时将分配器传递给节点。节点本身不保留对分配器的引用。只有创建它的场景才有。这在创建过程中需要一些额外的噪音,尽管它可以很容易地隐藏在make函数中。

  2. 允许节点携带对分配器本身的引用,增加Node类中的依赖关系,以及向该类添加另一个成员。

0 个答案:

没有答案