L'ho trattato in qualche modo nell'altro mio commento, ma penso che qui stai pensando alla classificazione esterna / interna. Rimuovendo un voxel, si stanno cambiando i voxel attorno ad esso in voxel 'edge' (se non lo fossero già). Questo dovrebbe ridursi in 3 casi reali (la simmetria ti porta il resto di loro) - nell'esempio sotto i numeri sono gli ID di gruppo, il - è il voxel che viene rimosso
11 2
1- 1- 1-2
Il primo caso è banale: è un angolo, ma i voxel sopra e a sinistra rimangono completamente collegati attraverso l'altro voxel.
Il secondo caso: è un angolo e il voxel rimosso ha disconnesso i voxel precedenti e di quelli precedentemente collegati
Il terzo caso: è una linea e il voxel rimosso ha disconnesso i voxel sinistro e destro precedentemente collegati.
Se ti accorgi che si sono verificati il 2o o il 3o caso, devi fare un po 'di ricerca del percorso per vedere se 1 e 2 sono ancora connessi attraverso i loro altri voxel adiacenti.
Puoi ottenere un po 'di efficienza qui però. Se un voxel è interamente interno a un gruppo (ovvero tutti e 8 i suoi vicini fanno parte dello stesso gruppo), allora può essere scontato. Perché? È una questione di topologia. Immagina il caso 2D: ci sono solo due possibilità. O c'è un solo bordo che, indipendentemente da come si gira e gira, forma ancora un anello di voxel. Oppure, ci sono due anelli, uno contenente un voxel e uno contenente l'altro. Per esempio:
xxx xxx
x x-x x
xxx xxx
o
xxxxxxx
x x
xxx xxx
x-x
xxx xxx
Ciò dovrebbe estendersi anche al 3D, tranne che al posto di un anello perimetrale, avresti una superficie perimetrale. Quindi, quando stai cercando di determinare se i due voxel recentemente disconnessi sono ancora connessi, puoi escludere tutti i voxel interni dal tuo attraversamento, perché per definizione se un voxel è collegato a uno dei voxel di confine di un gruppo, è anche collegato a tutti i voxel interni in quel gruppo.
È una sorta di effetto inverso dei voxel hub di cui ho parlato nella mia risposta all'altra domanda: non devi trovare la tua strada da ogni voxel a ogni altro voxel, devi solo trovare la tua strada verso i voxel interessanti .