IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Conversion d'un tableau de float en double ?


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut Conversion d'un tableau de float en double ?
    Bonjour à tout le monde,

    J'ai défini un type comme ceci :
    typedef float vec3_t[3];
    Puis j'ai déclaré un pointeur de type vec3_t :
    vec3_t *vertices;
    Et plus loin, je veux récupèrer un élément du tableau dans un glVertex mais le compilateur me réponds :
    error C2440: '='*: impossible de convertir de 'vec3_t (*)' en 'float *'

    Quelqu'un saurait-il comment procéder dans ce cas ?
    Merci d'avance.

    Alex

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    On peut avoir la partie de code qui génère l'erreur stp ?
    Vu l'erreur, il doit manquer un trois fois rien quelque part vu que tu tentes de faire une affectation de "float **" vers un float *

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    glVertex3d (fileLoader.mesh[i].vertices[0],fileLoader.mesh[i].vertices[1],fileLoader.mesh[i].vertices[2]);
    Voilà la ligne qui génère l'erreur.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    vertices[i] est un vec3_t, donc un tableau de 3 floats. Pas un float. A mon avis tu voulais déclarer vertices en tant que vec3_t et non comme un vec3_t*.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    Conversion d'un tableau de float en double ?
    En tous cas ce n'est pas le fait de faire du float qui pose problème. Cepandant je pense que tu devrais t'habituer a utiliser les types d'OpenGl GLuint, GLint, GLfloat, GLdouble et compagnie. A ma connaissance c'est surtout pour un problème de portabilité, OpenGl est capable de convertir ses GLfloat etc pour l'environement Windows comme pour Unix (et peut être d'autres?). Mais il est toujours recommandé d'utiliser les types définis par ton API car on ne sais pas comment sont implémentés les fonctions!
    Mais c'est juste une remarque, ton problème ne vient pas de là, il ne peut pas y avoir de problème en affectant un type plus petit dans un plus grand. Il me semble en tout cas.

    En effet c'est bizzard, quand on fait float vec3_t[3]; vec3_t est un const float* alors si tu fais vec3_t* vertices vertices deviens un const float**. Je pense que tu as eu le reflexe de la déclaration de pointeurs pour des tableaux. vec3_t verticies devrais suffire!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par alex6891
    glVertex3d (fileLoader.mesh[i].vertices[0],fileLoader.mesh[i].vertices[1],fileLoader.mesh[i].vertices[2]);
    Voilà la ligne qui génère l'erreur.
    Indice: glVertex3d

Discussions similaires

  1. conversion float ou double en date/heure
    Par me_myself dans le forum C++
    Réponses: 5
    Dernier message: 04/06/2008, 11h42
  2. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39
  3. Réponses: 1
    Dernier message: 30/09/2005, 19h17
  4. Tableau de float
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/02/2005, 11h47
  5. float ou double ?
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/01/2004, 20h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo