Il y a deux classes dans ce zip :
Une classe permettant de créer un objet comprenant plusieurs sous-objets. Ces sous-objets sont basés sur les quadriques de GLU (disque, sphère, cylindre...) et sont caractérisés par une position, une rotation et une échelle, et sont texturés.
Diverses méthodes utiles sont associées (comme une par exemple qui dessine l'objet tout entier).
Cela permet de manier, transmettre, et utiliser des groupes d'objets 3D de manière aisée.
Il est également possible d'importer un Object3D à partir d'un fichier.
La deuxième classe permet d'animer ces objets ainsi que le repère lui même, à l'aide de clés (méthode largement inspirée des animations sous Blender). Ainsi, pour animer un objet, il vous suffit de créer un objet Object3D, un objet Animation et d'appliquer le premier à une méthode de l'autre dans une boucle, ce qui allège grandement le code)
Pour les animations, diverses trajectoires sont disponibles : rectilignes, curvilignes et courbes de Bézier. Il y a aussi plusieurs modes de vitesse (vitesse constante, polynomiale i.e. objet qui accélère ou décélère, et progressive i.e. qui accélère ET décélère).
Il est également possible d'importer une animation a partir d'un fichier.
Il il a une source model.cpp et son header qui permettent de créer des Object3D simples (cube, tétraèdre) que l'ont peut intégrer à un autre Object3D avec la méthode inherit()
Ci-joint également un exemple d'application, qui met en œuvre un object3D avec divers modes d'animation.
Dans le zip vous trouverez les sources des classes et leur header, un fichier macro.h contenant les macros utilisée dans les deux classes, une source sdlglutils.cpp et son header, qui ne sont pas de moi mais du siteduzero.com et qui me permet d'importer facilement des textures.