C'est quand même bizarre d'utiliser l'opérateur + ici car la sémantique et assez éloignée d'une addition. L'opérateur * à la rigueur (composition).
En tout cas tu peux toujours remplacer un opérateur par une simple fonction membre
new Cercle(100, 100, 10)->Add(new Translation(100, 0, 0.2))->Add(new Rotation(90, 0.2))
Mais peut-être que le plus simple reste d'écrire tout simplement
new Rotation(new Translation(new Cercle(100, 100, 10), 100, 0, 0.2), 90, 0.2)
Ou mieux en utilisant une matrice de transformation, il ne devrait même pas y avoir besoin d'une hiérarchie de classes.
Partager