これについては他のコメントで多少取り上げましたが、ここでは外部/内部分類について考えていると思います。ボクセルを削除すると、その周りのボクセルが「エッジ」ボクセルに変更されます(まだボクセルになっていない場合)。これは、3つの実際のケースに要約されます(対称性により残りのケースが取得されます)-以下の例では、番号はグループIDです-は削除されるボクセルです
11 2
1- 1- 1-2
最初のケースは簡単です-それはコーナーですが、上と左のボクセルは他のボクセルを介して完全に接続されたままです。
2番目のケース:コーナーであり、削除されたボクセルが、以前に接続されていた上記のボクセルと左のボクセルを切断しました
3番目のケース:これは線であり、削除されたボクセルは、以前に接続されていた左右のボクセルを切断しました。
2番目または3番目のケースが発生したことが判明した場合は、パス検索を実行して、1と2が他の隣接するボクセルを通じてまだ接続されているかどうかを確認する必要があります。
ここでもある程度の効率が得られます。ボクセルが完全にグループの内部にある場合(つまり、8つの隣接グループすべてが同じグループの一部である場合)、割引が可能です。どうして?それはトポロジーのことです。2Dケースを想像してみてください-可能性は2つだけです。ツイストやターンの方法に関係なく、ボクセルのリングを形成する単一のエッジがあります。または、2つのリングがあり、1つは1つのボクセルを含み、もう1つはもう1つのボクセルを含んでいます。例えば:
xxx xxx
x x-x x
xxx xxx
または
xxxxxxx
x x
xxx xxx
x-x
xxx xxx
境界リングの代わりに境界面があることを除いて、それも3Dに拡張する必要があります。したがって、最近切断された2つのボクセルがまだ接続されているかどうかを判断する場合は、すべての内部ボクセルをトラバーサルから除外できます。これは、ボクセルがグループの境界ボクセルのいずれかに接続されている場合、そのグループのすべての内部ボクセルに接続されています。
これは、他の質問への私の回答で述べたハブボクセルの逆効果のようなものです。すべてのボクセルから他のすべてのボクセルへの道を見つける必要はありません。興味深いボクセルへの道を見つけるだけです。