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 :

GLM swizzle = erreur


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par d�faut GLM swizzle = erreur
    Bonjour,

    Je suis a me familiariser avec GLM, l'OpenGL Mathematics library, mais n'etant pas encore un expert en C++, je rencontre un probleme que je ne comprend pas.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #define GLM_SWIZZLE GLM_SWIZZLE_FULL
    #include "glm/glm.h"
    using namespace glm;
    
    int main(int argc, char **argv)
    {
    	vec3 testVec = vec3(3.,35.,4.);
    	vec3 testVec2 = vec3(13.,15.,14.);
    	testVec = testVec2.zyx;
    	testVec = testVec2.xyy;
    }
    Dans le code precedent, ca fonctionne comme je veux, mais la ligne en rouge ne compile pas. En fait, j'ai l'impression que chaque fois que j'utilise un swizzle avec 2 fois la meme composante (.xyy, .yyz, .xxx, etc.) ca ne compile plus.

    J'obtient alors les erreurs suivantes dans visual studio:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    glm\core\_cvec3.inl(269) : error C2664: 'glm::_xvec3<T>::_xvec3(const glm::_xvec3<T> &)' : cannot convert parameter 1 from 'glm::_cvec3<T,VEC2,VEC3,VEC4,REF2,REF3>' to 'const glm::_xvec3<T> &'
            with
            [
                T=int
            ]
            Reason: cannot convert from 'glm::_cvec3<T,VEC2,VEC3,VEC4,REF2,REF3>' to 'const glm::_xvec3<T>'
            with
            [
                T=int,
                VEC2=glm::_xvec2<int>,
                VEC3=glm::_xvec3<int>,
                VEC4=glm::_xvec4<int>,
                REF2=glm::_xref2<int>,
                REF3=glm::_xref3<int>
            ]
            and
            [
                T=int
            ]
            No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
            glm\core\_cvec3.inl(268) : while compiling class template member function 'const glm::_xvec3<T> glm::_cvec3<T,VEC2,VEC3,VEC4,REF2,REF3>::_xyy(void) const'
            with
            [
                T=int,
                VEC2=glm::_xvec2<int>,
                VEC3=glm::_xvec3<int>,
                VEC4=glm::_xvec4<int>,
                REF2=glm::_xref2<int>,
                REF3=glm::_xref3<int>
            ]
            glm\core\_xvec3.h(24) : see reference to class template instantiation 'glm::_cvec3<T,VEC2,VEC3,VEC4,REF2,REF3>' being compiled
            with
            [
                T=int,
                VEC2=glm::_xvec2<int>,
                VEC3=glm::_xvec3<int>,
                VEC4=glm::_xvec4<int>,
                REF2=glm::_xref2<int>,
                REF3=glm::_xref3<int>
            ]
            test.cpp(608) : see reference to class template instantiation 'glm::_xvec3<T>' being compiled
            with
            [
                T=int
            ]
    C'est sans doute tout bete, mais les idees seraient appreciees.

    N.B. GLM peut etre trouve ici : http://glm.g-truc.net/

  2. #2
    Membre exp�riment� Avatar de Kujara
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    262
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 262
    Par d�faut
    Si le code dans ton post est exactement celui que tu utilise, alors il manque les parentheses de xyy et zyx. Ce sont des fonctions ^^.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par d�faut
    C'est bien le bon code que j'ai ecrit, mais il ne manque pas de parenthese. Par contre tu as raison, ce sont des fonctions, mais le but de GLM est de pouvoir ecrire pour le CPU du code avec la meme syntaxe que pour les shader en GLSL. Donc il y a des define dans la librairie du genre:
    #define zyx _zyx()

    Donc oui pour les fonctions, mais non les parentheses ne manquent pas vraiment.

Discussions similaires

  1. Erreur de compilation avec GLM
    Par yann458 dans le forum OpenGL
    R�ponses: 2
    Dernier message: 02/11/2014, 18h44
  2. Erreur fr�quente avec ASP et IIS
    Par Community Management dans le forum ASP
    R�ponses: 2
    Dernier message: 11/02/2004, 22h20
  3. R�ponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    R�ponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    R�ponses: 1
    Dernier message: 22/03/2002, 09h41

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