Ich habe eine Szene, in der beliebige Spiel-Objekte vorhanden sein können (Baumstruktur). Spiel-Objekte können ihrerseits wieder aus mehreren anderen Spiel-Objekten zusammengesetzt sein. Möchte ich nun ein Spiel-Objekt transformieren, so sollen die Kind-Objekte entsprechend mit transformiert werden. Also was ganz Gewöhnliches.
Die Spielobjekte haben Member für Position, Rotation und Skalierung. Mein Ziel war nun, dass man direkt diese Membervariablen ändern kann und die Transformation automatisch an die Kind-Objekte weitergegeben wird. In C# könnte man das wie gesagt als Property implementieren und im Setter einfach für alle Kind-Elemente ebenfalls deren Properties ändern. In C++ geht das leider nicht so einfach.
Bislang löse ich das Problem, indem ich Methoden wie setPosition, move, setRotation, rotate, setScale und scale anbiete. Allerdings schränkt das wieder ein, da die Position ein Vektor ist und z.B. Multiplikationen wieder durch zusätzliche Methoden wie mulPosition oder Ähnliches realisiert werden muss.
Mir schwebt sowas vor:
Code: Alles auswählen
myGameObject.Position *= myVector;
myGameObject.Scale.X = 0.5f;
...
Wie löst ihr sowas bzw. habt ihr da ein paar Vorschläge zu?