Historique des modifications - Message

Message #6084

Sujet: rotation absolue >> local ( setAbsoluteRotation )


TypeDateAuteurContenu
Création du message02-03-2009 12:30:22Steph
Hello worldsmile

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éliresroll

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

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
96 invités en ligne
membre en ligne: -
RSS Feed