Hallo Jochen,
ich glaube das ist gar nicht so einfach. Also rein vom Code her schon, aber es ist erst einmal viel zu schreiben, zumindest fällt mir gerade nichts Besseres ein.
Du müsstest sämtliche Bodies durchgehen. Entweder über eine Suche (wahrscheinlich das Einfachste) oder indem du die komplette Struktur, also immer die Body.Bodies durchgehst, sowie die boole'schen Operationen.
Dann müsstest Du eine Funktion schreiben und für jeden Body aufrufen, die dessen Inhalt prüft. Also .Bodies, bolle'sche Operationen, sind Shapes enthalten, etc. Sobald was drin ist, was Geometrie sein könnte, kannste schon False zurückliefern und mit dem nächsten Body weiter machen.
Liefert die Funktion True, oder was auch immer Du vergibst, zurück, so kannst Du den Body löschen.
Zusammenfassung, wie ich es machen würde:
* Funktion isEmptyBody schreiben
* Funktion liefert True zurück, wenn er leer ist
* Funktion bekommt einen Body übergeben
* Body wird geprüft ob er Shapes oder Solids enthält sobald etwas drin ist, wird False zurückgegeben und die Funktion abgebrochen
* Body wird in der Funktion geprüft ob er Kinder hat, sind welche drin, wird die Löschfunktion für die Kinder aufgerufen - ich glaub das ist gar nicht möglich
* Body wird geprüft ob er bolle'sche Operationen enthält, sind welche drin wird die Löschfunktion für die Kinder aufgerufen - sobald einer nicht gelöscht wird, ausstieg mit False
* Es wird eine Löschfunktion geschrieben, der ein Body übergeben wird, diese prüft ob der Body leer ist mit der Funktion isEmptyBody
* Es wird eine Funktion geschrieben, die die Struktur durcharbeitet und für jeden Body die Löschfunktion aufruft, da in der isEmpty-Funktion die Kinder überprüft werden, muss in dieser Mainfunktion nur auf oberster Ebene gearbeitet werden
Hoffe mit meinen wirren Gedanken lässt sich was anfangen. :-)
------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila
Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen
Xing
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP