[solved] OpenGL: 3D Grafik einbinden (.mtl / .obj)


  • Mod

    laut source:

    GLMmodel* pmodel = NULL;
    

    was meinst du mit

    welches es aber nicht laufen lässt

    ? compiliert nicht? linkt nicht? stuerzt ab? fehlermeldung?



  • rapso schrieb:

    laut source:

    GLMmodel* pmodel = NULL;
    

    dies führt zur fehlermeldung

    ´pmodel´was not declared in this scope
    

    😉


  • Mod

    auf welche zeile bezieht sich der compilefehler?
    sicher dass du die member in der richtigen klasse deklariert hast?

    [cpp]void CSonstwasKlasse::
    drawmodel(void)[/cpp]



  • rapso schrieb:

    auf welche zeile bezieht sich der compilefehler?
    sicher dass du die member in der richtigen klasse deklariert hast?

    [cpp]void CSonstwasKlasse::
    drawmodel(void)[/cpp]

    sicher bin ich mir nicht.

    void GLWidget::drawmodel()void
    

    der Fehler bezieht is auf

    if (!pmodel) {
    

    und der gleiche fehler meldet sich auch zu

    glmDraw(pmodel, GLM_SMOOTH | CLM_MATERIAL);
    

    deklariert ist es mit

    GLMmodel* pmodel = NULL;
    

    in glwidget.h



  • mit

    GLMmodel* pmodel;
    

    bleibt der Fehler aus sprich es lässt sich Deklarieren.

    jetzt hat sich jedoch eine neue unbekannte fehlerquelle gemeldet welche je eine ´undefinied reference to`:
    * glmReadOBJ
    * glmUnitize
    * glmFacetNormals
    * glmVertexNormals
    * glmDraw

    ausspuckt. Wie löseich dieses Problem?



  • glm.c deinem projekt hinzufuegen?



  • hellihjb schrieb:

    glm.c deinem projekt hinzufuegen?

    ist drin 😞



  • extern "C"
    {
    #include "glm.h"
    }
    


  • AndiLatte schrieb:

    void
    drawmodel(void)
    {
        if (!pmodel) {
            pmodel = glmReadOBJ("data/al.obj");
            if (!pmodel) exit(0);
            glmUnitize(pmodel);
            glmFacetNormals(pmodel);
            glmVertexNormals(pmodel, 90.0);
        }
        
        glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
    }
    

    folgende fhlerausgabe habe ich erhalten:

    ´pmodel´was not declared
    

    Wie trage ich pmodel in meine header datei ein !!?

    Die Fehlermeldung ist hier wohl eindeutig: 'pmodel' ist nicht deklariert.

    Du ermittelst (if) ob 'pmodel' einen Wert (true, false, 0, 1, äpfel, birnen, bananen) hat, obwohl 'pmodel' eben an dem Punkt, wo du es zu ermitteln versuchst, gar nicht existiert. Ich gehe mal davon aus, das 'pmodel' keine globale Variable ist.

    Lösung:

    Entweder du definierst/deklarierst pmodel in der Funktion wo du es verwenden willst, in einem höheren Scope oder (lass es!) global.

    Grüße... Heiko



  • hellihjb schrieb:

    extern "C"
    {
    #include "glm.h"
    }
    

    den Kniff kannte ich noch nicht !! Danke für die Hilfe - es funktioniert
    Hab grad ein paar Glückshormone ausschütten dürfen 👍


Anmelden zum Antworten