Bonjour, c'est encore moi!

J'ai décidément des problèmes avec les transformations dans l'API.

Je veux insérer un .OBJ dans ma scène.
J'aimerai qu'il soit positionner dans le cube suivant : [0, 0, 0], [Max, Max, Max]

J'utilise la méthode suivante pour l'insérer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
		FileReader reader = DataManager.getBattleObjReader( objPath );
		ObjectFile objfile = new ObjectFile( ObjectFile.LOAD_ALL | ObjectFile.RESIZE );
		BranchGroup branch = objfile.load( reader).getSceneGroup();
		branch.setName( "ground" );
D'après ce que j'ai compris, cela me positionne mon objet dans le cube [-1, -1, -1], [1, 1, 1]
( Flag ObjectFile.RESIZE )

Je veux donc lui appliquer une homothétie et une translation

Je crée donc mes deux transformations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
		Transform3D translate = new Transform3D();
		translate.set(new Vector3d( 1.0f, 1.0f, 1.0f));
 
		Transform3D scale = new Transform3D();
		scale.setScale( scalecoeff );

La ou j'ai besoin d'une confirmation c'est pour la suite :

J'aimerai appliquer a mon objet la translation puis homothétie.
Mes souvenirs des matrices de transformation étant loin, je ne me rappelle plus exactement comment il faut procéder :

- Manifestement, il ne faut pas faire une addition des matrices :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
scale.add( translate );
Renvoie une erreur : Non-affine transformation

- Si mes souvenirs sont bons, il faut faire une multiplication des deux matrices
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
scale.mul( translate );
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
translate .mul( scale);
Le truc c'est que je ne me rappelle plus dans quel ordre il faut le faire.
Dans mon code, les deux me donnent le même résultat. ( Ce qui ne me rassure pas )

Donc, je voulais bien m'assurer que c'est la bonne méthode pour le faire.

Merci d'avance !

PS :
J'ai aussi essayer d'utiliser un MultiTranformGroup mais je n'ai pas su comment l'insérer comme BranchGroup par la suite