Historique des modifications - Message

Message #6084

Sujet: rotation absolue >> local ( setAbsoluteRotation )


Type Date Auteur Contenu
Création du message 02-03-2009 12:30:22 Steph
Hello world smile

Avant de pouvoir faire joujou avec Irrlicht, j'essaye d'avoir un maximum de fonctions de bases pour mouvoir facilement mes objets 3D...
sauf que la je cale pour envoyer une rotation absolue à des objets enfants.

J'ai essayé un truc comme cela...

void setAbsoluteRotation( irr::scene::ISceneNode *objet, core::vector3df vector )
{
    irr::scene::ISceneNode *parent =  objet->getParent();
    if (!parent) objet->setRotation(vector);
    else
    {											  
		irr::core::vector3df rotation( vector - parent->getAbsoluteTransformation().getRotationDegrees() );
		objet->setRotation( rotation );  
    } 
}

Mais cela marche que si le parent à bouger qu'un axe, après ça devient farfelus... Je peu imaginer physiquement le problème de décalage qui peu avoir, mais mathématiquement j'ai mal au crâne, j'ai tenté des trucs tordus avec les matrices, mais la vaut mieux pas voir mes délires roll

Pour les positions, c'était beaucoup plus simple, un petit parent->getAbsoluteTransformation().inverseRotateVect( vector ); remettait les positions à leurs bonne places.

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
153 invités en ligne
membre en ligne: -
RSS Feed