An glVertex einen Vektor übergeben, geht das???



  • Hallo,

    ich möchte ganz gern an glVertex die Werte eines Vektors übergeben.
    So sieht das ungefähr aus:

    void field(vector<C_Koordinaten> *m_xyzWerte)
    {
    		glVertex3d(m_xyzWerte[0],m_xyzWerte[1],m_xyzWerte[2]);
    }
    

    So wie ich es mache, geht es anscheinend nicht, denn ich kriege folgende Fehlermeldung:

    cpp(27): error C2664: 'glVertex3d': Konvertierung des Parameters 1 von 'std::vector<_Ty>' in 'GLfloat' nicht möglich
    with
    [
    _Ty=C_Koordinaten
    ]

    Gibt es für glVertex überhaupt die Möglichkeit Vektoren zu übergeben, oder gibt es eine schöne und einfache Alternative.

    Danke euch für die zahlreichen Antworten 😉



  • Wenn Du eine Koordinate uebergeben willst:

    class Vector
    {
      float x,y,z;
    };
    
    Vector v;
    
    glVertex3fv( (GLfloat*)&v );
    

    Wenn Du den ganzen vector<> uebergeben willst, brauchst Du Vertex-Arrays oder -Buffer.



  • Du dereferenzierst den vector nicht richtig:

    glVertex3d((*m_xyzWerte)[0],(*m_xyzWerte)[1],(*m_xyzWerte)[2]);
    

Anmelden zum Antworten