Message #10651
Sujet: Test de gravité - Irrlicht + Newton
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Dernière modification | 11-08-2012 22:58:07 | Kaze |
Après avoir lu de nouveau les docs, je peux vous assurer ... n'avoir rien compris à cette idée de callback. Je ne comprend pas à quoi elle sert, où il faut placer cette méthode, et surtout ce qui la compose : "ApplyForceAndTorqueEvent".
Pourtant, dans mon code, je donne au cube un corps que Newton peux utiliser, ensuite je lui applique une force. Je ne vois pas quel est le but de cette méthode. Il faut l'appeler à chaque fois que l'objet se déplace, mais je ne comprend pas ce qu'elle fait de plus que "NewtonBodyAddForce(body, force); " Serait il possible que vous m'expliquiez au moins ce qu'est " ApplyForceAndTorqueEvent " ? En fait j'ai créer, à partir d'un code trouver sur internet, les deux callbacks : <code> void SetMeshTransformEvent(NewtonBody* body, float* matrix) { // Copie de la matrice matrix4 mat; memcpy(mat.pointer(), matrix, sizeof(float)*16); // Retreive the user data attached to the newton body ISceneNode *tmp = (ISceneNode *)NewtonBodyGetUserData(body); if (tmp) { tmp->setPosition(mat.getTranslation()); tmp->setRotation(mat.getRotationDegrees()); } } void ApplyForceAndTorqueEvent(NewtonBody* body) { float masse; float inertieX; float inertieY; float inertieZ; float force[3]; float torque[3]; NewtonBodyGetMassMatrix (body, &masse, &inertieX, &inertieY, &inertieZ); force[0] = 0.0f; force[1] = -6.81 * masse; force[2] = 0.0f; torque[0] = 0.0f; torque[1] = 0.0f; torque[2] = 0.0f; NewtonBodyAddForce(body, force); NewtonBodyAddTorque(body, torque); } </code> Et je les appelles avec : <code> NewtonBodySetTransformCallback(body, SetMeshTransformEvent); NewtonBodySetForceAndTorqueCallback(body, ApplyForceAndTorqueEvent); </code> Mais je ne vois pas où est transmis la matrice nécessaire à la méthode SetMeshTransformEvent. S'il est question de la matrice de body, je pourrais la récupérer avec un NewtonBodyGetMatrix ? Merci d'avance. |
| Création du message | 11-08-2012 22:34:50 | Kaze |
Après avoir lu de nouveau les docs, je peux vous assurer ... n'avoir rien compris à cette idée de callback. Je ne comprend pas à quoi elle sert, où il faut placer cette méthode, et surtout ce qui la compose : "ApplyForceAndTorqueEvent".
Pourtant, dans mon code, je donne au cube un corps que Newton peux utiliser, ensuite je lui applique une force. Je ne vois pas quel est le but de cette méthode. Il faut l'appeler à chaque fois que l'objet se déplace, mais je ne comprend pas ce qu'elle fait de plus que "NewtonBodyAddForce(body, force); " Serait il possible que vous m'expliquiez au moins ce qu'est " ApplyForceAndTorqueEvent " ? En fait j'ai créer, à partir d'un code trouver sur internet, les deux callbacks : <code> void SetMeshTransformEvent(NewtonBody* body, float* matrix) { // Copie de la matrice matrix4 mat; memcpy(mat.pointer(), matrix, sizeof(float)*16); // Retreive the user data attached to the newton body ISceneNode *tmp = (ISceneNode *)NewtonBodyGetUserData(body); if (tmp) { tmp->setPosition(mat.getTranslation()); tmp->setRotation(mat.getRotationDegrees()); } } void ApplyForceAndTorqueEvent(NewtonBody* body) { float masse; float inertieX; float inertieY; float inertieZ; float force[3]; float torque[3]; NewtonBodyGetMassMatrix (body, &masse, &inertieX, &inertieY, &inertieZ); force[0] = 0.0f; force[1] = -6.81 * masse; force[2] = 0.0f; torque[0] = 0.0f; torque[1] = 0.0f; torque[2] = 0.0f; NewtonBodyAddForce(body, force); NewtonBodyAddTorque(body, torque); } </code> Et je les appelles avec : <code> NewtonBodySetTransformCallback(body, SetMeshTransformEvent); NewtonBodySetForceAndTorqueCallback(body, ApplyForceAndTorqueEvent); </code> Mais je ne vois pas où est transmis la matrice nécessaire à la méthode SetMeshTransformEvent. S'il est question de la matrice de body, je pourrais la récupérer avec un NewtonBodyGetMatrix ? Merci d'avance. |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 229 invités en ligne membre en ligne: - RSS Feed |