Historique des modifications - Message

Message #10641

Sujet: Test de gravité - Irrlicht + Newton


Type Date Auteur Contenu
Dernière modification 11-08-2012 07:10:16 Gehogor
Salut Kaze, alors j'ai vu deux trois tucs:

Déjà, pour ton code:
NewtonBodySetUserData(body, cubeNode);

Écris plutôt:
NewtonBodySetUserData(body,reinterpret_cast<void*>(cubeNode));

De cette manière, tu dis au compilo comment le pointeur de ton cubeNode doit être.

De plus, lorsque Newton désire changer la position du cube, il appelle le pointeur d'une méthode que tu peux capter, c'est la méthode:
void GrNewton::SetMeshTransformMesh(const NewtonBody* body,const float* matrix,int threadIndex)
{
    // On retransforme le pointeur dans la bonne forme.
    ISceneNode*cubeNode = reinterpret_cast<ISceneNode*>(NewtonBodyGetUserData(body));
    if(cubeNode == 0)
        return;

    // Conversion et création de la bonne matrice, ...
    cubeNode->setPosition(mat.getTranslation());
    cubeNode->setRotation(mat.getRotationDegrees());
}

Cette méthode se configure comme ça dans l'initialisation de ton code:
    ...ton code
    NewtonBodySetUserData(body, cubeNode);

    // Association d'une "Callback" (ici:SetMeshTransformMesh) à l'objet Newton,
    // elle sera appellée lorsque l'objet bougera selon le moteur Newton (il y a bcp d'exemple là dessus).
    NewtonBodySetTransformCallback(body,SetMeshTransformMesh);

Il est donc inutile d'écrire le code suivant dans la méthode "drawScene()":
NewtonBodyGetMatrix(body, mat.pointer());

Voilà, j'espère qu'il n'y avait que ça, désolé de ne pas être plus précis, ma fille pleure, il faut que j'y aille ! smile
Création du message 11-08-2012 07:07:57 Gehogor
Salut Kaze, alors j'ai vu deux trois tucs:

Déjà, pour ton code:
NewtonBodySetUserData(body, cubeNode);

Écris plutôt:
NewtonBodySetUserData(body,reinterpret_cast<void*>(cubeNode));

De cette manière, tu dis au compilo comment le pointeur de ton cubeNode doit être.

De plus, lorsque Newton désire changer la position du cube, il appelle le pointeur d'une méthode que tu peux capter, c'est la méthode:
void GrNewton::SetMeshTransformMesh(const NewtonBody* body,const float* matrix,int threadIndex)
{
    // On retransforme le pointeur dans la bonne forme.
    ISceneNode*cubeNode = reinterpret_cast<ISceneNode*>(NewtonBodyGetUserData(body));
    if(cubeNode == 0)
        return;

    // Conversion et création de la bonne matrice, ...
    cubeNode->setPosition(mat.getTranslation());
    cubeNode->setRotation(mat.getRotationDegrees());
}

Cette méthode se configure comme ça dans l'initialisation de ton code:
    ...ton code
    NewtonBodySetUserData(body, cubeNode);

    // Association d'une "Callback" (ici:SetMeshTransformMesh) à l'objet Newton,
    // elle sera appellée lorsque l'objet bougera selon le moteur Newton (il y a bcp d'exemple là dessus).
    NewtonBodySetTransformCallback(body,SetMeshTransformMesh);

Il est donc inutile d'écrire le code suivant dans la méthode "drawScene()":
NewtonBodyGetMatrix(body, mat.pointer());

Voilà, j'espère qu'il n'y avait que ça, désolé de ne pas être plus précis, ma fille pleure, il faut que j'y aille ! smile

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