Аргумент типа float не соответствует GLfloat? - PullRequest
0 голосов
/ 27 сентября 2010

я пытаюсь сделать что-то здесь, но эта ошибка появляется, я действительно не знаю, как это сделать правильно, я попытался поместить все переменные в Figure.h как GLfloat вместо просто float, и та же самая ошибка продолжает появлятьсяидея?вот мой Figure.h

Class Figure
{
    public:
        Figure(float x,float y,float z);
        void Parameters(float x,float y,float z);
        void Draw();
        float paramx(){
        return x1;
        }
        float paramy(){
        return y1;
        }
        float paramz(){
        return z1;
        }
    protected:
    private:
    float x1,y1,z1;
    list <Figure> m_vertices;
};

, а вот мой .cpp, который доставляет мне все неприятности>. <</p>

Figure::Figure(float x,float y,float z){
this->x1=x;
this->y1=y;
this->z1=z;
}
void Figure::Parameters(float x,float y,float z)
{
m_vertices.push_back(Figure(x, y, z));
}
void Figure::Draw()
{
    list<Figure>::iterator p = m_vertices.begin();
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glLoadIdentity();
    gluLookAt(0.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,0.0);

    glBegin(GL_TRIANGLES);
    while(p != m_vertices.end()){
        glNormal3f(p->paramx,p->paramy,p->paramz);
        glVertex3f(p->paramx,p->paramy,p->paramz);
        p++;
    }
    glEnd();

}

Возможно, проблема в glNormal3f и glVertex3f в любой помощибыл бы очень признателен большое спасибо

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

Вам нужно вызвать функции:

    glNormal3f(p->paramx(), p->paramy(), p->paramz());
    glVertex3f(p->paramx(), p->paramy(), p->paramz());
0 голосов
/ 27 сентября 2010

list<Figure>::iterator p ... поэтому p - это итератор, который означает, что вам необходим доступ к базовым данным, подобным этому (*p).paramx(). Но это, возможно, не вся проблема. Если нет неявного преобразования из float в GLfloat, компилятор все равно будет жаловаться.

[РЕДАКТИРОВАТЬ] Я исправлен. (*p).paramx() совпадает с p->paramx()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...