Lasten sind lästig


Thomas Wölfer
Thomas Wölfer

20. April 2004


Ich beschäftige mich nun schon seit geraumer Zeit mit der Art und Weise wie Lasten 'funktionieren' sollen. Frustrierende Sache: Lasten sind wirklich deutlich schwieriger als man das meinen möchte.

Hier mal ein kurzer Abriss der Fälle die so eintreten können, wenn man mit Lasten arbeitet - und zwar nur anhand eines ganz einfachen Beispiels.

Angenommen, man hat einen Knoten der mit einer Last belastet ist.

Jetzt wird der Knoten ausgewählt und verschoben (ohne Kopien). In diesem Fall soll die Last wohl mit verschoben werden - obwohl sie selbst gar nicht ausgewählt wurde!

Im zweiten Fall wird die Last ausgewählt, der Knoten aber nicht. Dann wird verschoben: In diesem Fall verbleibt der Knoten an seiner Stelle - die Last landet als beim verschieben auf einem anderen Knoten. Außerdem: An der Zielstelle ist unter Umständen gar kein Knoten - im Zuge des Verschiebens der Last muss also ein neuer Knoten angelegt werden!

Im dritten Fall wird Knoten und Belastung ausgewählt und verschoben: Dabei soll natürlich die Last hinterher immer noch auf dem Knoten sein - nur ist der eben an einer anderen Stelle. Das funktioniert also im Prinzip genauso wie der erste Fall, obwohl die Auswahl der Objekte völlig anders ist.

Jetzt kommt dann der spaßige Teil: Was passiert, wenn an der Stelle an die verschoben wird bereits ein Knoten ist? Das ist wiederum abhängig von der Auswahl: War nur die Last ausgewählt, verschwindet der ursprüngliche Knoten und der vorhandene wird genommen.

War der Knoten auch ausgewählt - dann gibt es an der Zielstelle nach dem verschiebene einen doppelten Knoten. (Es ist zu überlegen ob sowas dann vor der Berechnung per Warnung angemeckert wird oder nicht. Vielleicht sollte man Knoten auch manuelle verschmelzen können...)

Und die Sache wird noch viel komplizierter - und zwar dann, wenn beim verschieben auch Kopien angelegt werden. Denn dann sind alle Fälle für jede Kopie zu prüfen.

Wenn ich Sie wäre, dann wäre ich froh, das man bei den Statikprogrammen einfach nur eine Last anklicken muss und dann den Befehl zum verschieben auswählen kann. Das ist wirklich deutlich einfacher als die Sache zu programmieren... :-)