私は木を持っています。BSP だけでなく、スペース パーティショニング サービスを提供します。ツリー内のすべてのノードは、(unique_ptr を介して) ポリモーフィック オブジェクトを所有できます。これらのオブジェクトは、割り当てられたノードを認識する必要があります。したがって、ノードのオブジェクトを作成するときは、ノード参照をコンストラクターに渡す必要があります。
node.data.reset(new t_Something(node));
通常、1 つだけでなく、複数のオブジェクトを作成 (および対応するノードに割り当てる) 必要があります。
node_a.data.reset(new t_Wing(node_a, /*wing args*/...));
node_h.data.reset(new t_Hall(node_h, /*hall args*/...));
node_b.data.reset(new t_Wing(node_b, /*wing args*/...));
私はコンテンツ ジェネレーターを開発しています。将来的には、このようなコードをたくさん書く予定です。node_XXX
での繰り返しは避けたいnode_XXX.data.reset(new T(node_XXXX
。