私は境界型のボリューム階層を格納するためにバイナリツリー構造を作成しました。これは、使いやすさと安全性を高めるために、幅優先と深さ優先の2つのイテレータを追加しました。過去のイテレータを作成する方法は?
幅優先イテレータは基本的に元のQListのラッパーです。しかし、深度優先イテレータ(双方向のみ)にはまっているので、ツリーの周りの実際の反復を処理できます。私はちょうど過去のイテレータを作成する方法がありません。
最下位の右端のノードもツリー全体の右端のノードであるという保証がないため、を使用することはできません。私は、さまざまなノード管理機構に偽のノードを無視させ、ツリー構築の自動化を無効にするために大きなコード変更(おそらくオーバーヘッド)が必要になるため、テストできる「偽の」BVHノードを作ることには消極的です(例えば、偽のノードの親はそれが葉であると言わなければならない)。しかし、これが唯一の方法なら、それは唯一の方法です。
とコードは? 。 –
私はこれがより構造的な問題であると想定しました。イテレータ、ツリー構築コンストラクト、およびBVHノード自体は、数百行のコードです。具体的に何を見たいですか? – cmannett85
偽のノードを追加する場合は、実際にはツリーに接続する必要はなく、実際には(一部のコンテナでは)存在することさえあります。唯一の要件は、イテレータがイテレータを最後から最後まで、イテレータの_コードで実行できる必要があることです。 (構造によっては) –