LINUX.ORG.RU

Qt OpenGl объекты


0

1

Возможно я сильно разбалован ООП. Но я хотел бы на Gl сцену помещать обьекты которые знают как себя рисовать, им нужно только сообщит на чём рисовать.

То есть что-то около этого

class Fig{
public:
    float A1,A2,B1,B2,C1,C2,D1,D2;
    Fig(float a1,float a2,float b1,float b2, float c1 ,float c2,float d1,float d2){
        A1=a1;
        A2=a2;
        B1=b1;
        B2=b2;
        C1=c1;
        C2=c2;
        D1=d1;
        D2=d2;
     }

    void draw(QGLWidget widget){
        QColor sqare(90, 60, 90, 150);
        widget.qglColor(sqare);
        widget.glBegin(widget.GL_QUADS);
            widget.glVertex3f( A1,A2, 0.0f);  // Слева вверху
            widget.glVertex3f( B1,B2, 0.0f);  // Справа вверху
            widget.glVertex3f( C1,C2, 0.f);  // Справа внизу
            widget.glVertex3f( D1 ,D2, 0.0f);  // Слева внизу
        widget.glEnd();
    }
};

Но компилятор ругается что QGLWidget не содержит тех функций. widget.glBegin и widget.glEnd() и т.д. Как бы реализовать что-то подобное.


Решено

Прошу прощения. Рано полез на форум, написал пост, и сам понял в чём проблема. функция draw вот какой должна быть [code] void draw(QGLWidget* widget){ QColor sqare(90, 60, 90, 150); widget->qglColor(sqare); glBegin(GL_QUADS); glVertex3f( A1,A2, 0.0f); // Слева вверху glVertex3f( B1,B2, 0.0f); // Справа вверху glVertex3f( C1,C2, 0.f); // Справа внизу glVertex3f( D1 ,D2, 0.0f); // Слева внизу glEnd(); } [/code]

vsrmis
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.