#ifndef VOWELCUBE_H #define VOWELCUBE_H #include <QtCore> #include <QtGui> #include <QtOpenGL> class VowelCube : public QGLWidget { Q_OBJECT public: VowelCube(QWidget *parent = 0); ~VowelCube(); protected: void paintEvent(QPaintEvent *e); void mousePressEvent(QMouseEvent *e); void mouseMoveEvent(QMouseEvent *e); void wheelEvent(QWheelEvent *e); private: void createGradient(); void createGLObject(); void drawBackground(QPainter *painter); void drawCube(); void drawLegend(QPainter *painter); GLuint glObject; QRadialGradient gradient; GLfloat xrot, yrot, zrot; GLfloat scaling; QPoint lastPos; }; #endif // VOWELCUBE_H #include <cmath> #include "vowelcube.h" #ifndef GL_MULTISAMPLE #define GL_MULTISAMPLE 0x809D #endif VowelCube::VowelCube(QWidget *parent) : QGLWidget(parent) { //setFormat(QGLFormat(QGL::SampleBuffers)); xrot = -38.0; yrot = -58.0; zrot = 0.0; scaling = 1.0; setAutoBufferSwap(false); setAutoFillBackground(false); createGradient(); createGLObject(); } VowelCube::~VowelCube() { makeCurrent(); glDeleteLists(glObject, 1); } void VowelCube::paintEvent(QPaintEvent *e) { QPainter painter(this); //painter.begin(this); drawBackground(&painter); painter.end(); //painter.beginNativePainting(); drawCube(); //painter.endNativePainting(); painter.begin(this); drawLegend(&painter); painter.end();