Historique des modifications - Message

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.

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
229 invités en ligne
membre en ligne: -
RSS Feed