From 4f00c4c74d213a37a4b1a3313e50ce2b4dd51271 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 22 Mar 2013 21:48:15 +0100 Subject: finish rename --- ftnoir_posewidget/PoseWidget.qrc | 10 -- ftnoir_posewidget/glwidget.cpp | 210 --------------------------------- ftnoir_posewidget/glwidget.h | 72 ----------- ftnoir_posewidget/images/side1.bmp | Bin 44950 -> 0 bytes ftnoir_posewidget/images/side1.png | Bin 9018 -> 0 bytes ftnoir_posewidget/images/side2.png | Bin 2922 -> 0 bytes ftnoir_posewidget/images/side3.png | Bin 2922 -> 0 bytes ftnoir_posewidget/images/side4.png | Bin 2922 -> 0 bytes ftnoir_posewidget/images/side5.png | Bin 2922 -> 0 bytes ftnoir_posewidget/images/side6.png | Bin 4768 -> 0 bytes ftnoir_posewidget/images/xxx_side1.bmp | Bin 0 -> 44950 bytes ftnoir_posewidget/images/xxx_side1.png | Bin 0 -> 9018 bytes ftnoir_posewidget/images/xxx_side2.png | Bin 0 -> 2922 bytes ftnoir_posewidget/images/xxx_side3.png | Bin 0 -> 2922 bytes ftnoir_posewidget/images/xxx_side4.png | Bin 0 -> 2922 bytes ftnoir_posewidget/images/xxx_side5.png | Bin 0 -> 2922 bytes ftnoir_posewidget/images/xxx_side6.png | Bin 0 -> 4768 bytes ftnoir_posewidget/xxx_glwidget.cpp | 210 +++++++++++++++++++++++++++++++++ ftnoir_posewidget/xxx_glwidget.h | 72 +++++++++++ ftnoir_posewidget/xxx_posewidget.qrc | 10 ++ 20 files changed, 292 insertions(+), 292 deletions(-) delete mode 100644 ftnoir_posewidget/PoseWidget.qrc delete mode 100644 ftnoir_posewidget/glwidget.cpp delete mode 100644 ftnoir_posewidget/glwidget.h delete mode 100644 ftnoir_posewidget/images/side1.bmp delete mode 100644 ftnoir_posewidget/images/side1.png delete mode 100644 ftnoir_posewidget/images/side2.png delete mode 100644 ftnoir_posewidget/images/side3.png delete mode 100644 ftnoir_posewidget/images/side4.png delete mode 100644 ftnoir_posewidget/images/side5.png delete mode 100644 ftnoir_posewidget/images/side6.png create mode 100644 ftnoir_posewidget/images/xxx_side1.bmp create mode 100644 ftnoir_posewidget/images/xxx_side1.png create mode 100644 ftnoir_posewidget/images/xxx_side2.png create mode 100644 ftnoir_posewidget/images/xxx_side3.png create mode 100644 ftnoir_posewidget/images/xxx_side4.png create mode 100644 ftnoir_posewidget/images/xxx_side5.png create mode 100644 ftnoir_posewidget/images/xxx_side6.png create mode 100644 ftnoir_posewidget/xxx_glwidget.cpp create mode 100644 ftnoir_posewidget/xxx_glwidget.h create mode 100644 ftnoir_posewidget/xxx_posewidget.qrc (limited to 'ftnoir_posewidget') diff --git a/ftnoir_posewidget/PoseWidget.qrc b/ftnoir_posewidget/PoseWidget.qrc deleted file mode 100644 index 65038eba..00000000 --- a/ftnoir_posewidget/PoseWidget.qrc +++ /dev/null @@ -1,10 +0,0 @@ - - - images/side1.png - images/side2.png - images/side3.png - images/side4.png - images/side5.png - images/side6.png - - diff --git a/ftnoir_posewidget/glwidget.cpp b/ftnoir_posewidget/glwidget.cpp deleted file mode 100644 index 55b65619..00000000 --- a/ftnoir_posewidget/glwidget.cpp +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************** -* FaceTrackNoIR This program is a private project of the some enthusiastic * -* gamers from Holland, who don't like to pay much for * -* head-tracking. * -* * -* Copyright (C) 2010 Wim Vriend (Developing) * -* Ron Hendriks (Researching and Testing) * -* * -* Homepage * -* * -* This program is free software; you can redistribute it and/or modify it * -* under the terms of the GNU General Public License as published by the * -* Free Software Foundation; either version 3 of the License, or (at your * -* option) any later version. * -* * -* This program is distributed in the hope that it will be useful, but * -* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * -* more details. * -* * -* Adopted this widget from the 'textures' sample of the Nokia Qt toolkit. * -* * -* You should have received a copy of the GNU General Public License along * -* with this program; if not, see . * -*********************************************************************************/ - -#include -#include - -#include "glwidget.h" - -GLWidget::GLWidget(QWidget *parent, QGLWidget *shareWidget) - : QGLWidget(parent, shareWidget) -{ - clearColor = Qt::black; - xRot = 0; - yRot = 0; - zRot = 0; - -#ifdef QT_OPENGL_ES_2 - program = 0; -#endif -} - -GLWidget::~GLWidget() -{ -} - -QSize GLWidget::minimumSizeHint() const -{ - return QSize(60, 60); -} - -QSize GLWidget::sizeHint() const -{ - return QSize(90, 90); -} - -void GLWidget::rotateBy(int xAngle, int yAngle, int zAngle) -{ - xRot = xAngle; - yRot = yAngle; - zRot = zAngle; - updateGL(); -} - -void GLWidget::setClearColor(const QColor &color) -{ - clearColor = color; - updateGL(); -} - -void GLWidget::initializeGL() -{ - makeObject(); - - glEnable(GL_DEPTH_TEST); - glEnable(GL_CULL_FACE); -#ifndef QT_OPENGL_ES_2 - glEnable(GL_TEXTURE_2D); -#endif - -#ifdef QT_OPENGL_ES_2 - -#define PROGRAM_VERTEX_ATTRIBUTE 0 -#define PROGRAM_TEXCOORD_ATTRIBUTE 1 - - QGLShader *vshader = new QGLShader(QGLShader::Vertex, this); - const char *vsrc = - "attribute highp vec4 vertex;\n" - "attribute mediump vec4 texCoord;\n" - "varying mediump vec4 texc;\n" - "uniform mediump mat4 matrix;\n" - "void main(void)\n" - "{\n" - " gl_Position = matrix * vertex;\n" - " texc = texCoord;\n" - "}\n"; - vshader->compileSourceCode(vsrc); - - QGLShader *fshader = new QGLShader(QGLShader::Fragment, this); - const char *fsrc = - "uniform sampler2D texture;\n" - "varying mediump vec4 texc;\n" - "void main(void)\n" - "{\n" - " gl_FragColor = texture2D(texture, texc.st);\n" - "}\n"; - fshader->compileSourceCode(fsrc); - - program = new QGLShaderProgram(this); - program->addShader(vshader); - program->addShader(fshader); - program->bindAttributeLocation("vertex", PROGRAM_VERTEX_ATTRIBUTE); - program->bindAttributeLocation("texCoord", PROGRAM_TEXCOORD_ATTRIBUTE); - program->link(); - - program->bind(); - program->setUniformValue("texture", 0); - -#endif -} - -void GLWidget::paintGL() -{ - qglClearColor(clearColor); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - -#if !defined(QT_OPENGL_ES_2) - - glLoadIdentity(); - glTranslatef(0.0f, 0.0f, -10.0f); - - glRotatef(xRot, 1.0f, 0.0f, 0.0f); - glRotatef(yRot, 0.0f, 1.0f, 0.0f); - glRotatef(-1.0f * zRot, 0.0f, 0.0f, 1.0f); - - glVertexPointer(3, GL_FLOAT, 0, vertices.constData()); - glTexCoordPointer(2, GL_FLOAT, 0, texCoords.constData()); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - -#else - - QMatrix4x4 m; - m.ortho(-0.5f, +0.5f, +0.5f, -0.5f, 4.0f, 15.0f); - m.translate(0.0f, 0.0f, -10.0f); - m.rotate(xRot / 16.0f, 1.0f, 0.0f, 0.0f); - m.rotate(yRot / 16.0f, 0.0f, 1.0f, 0.0f); - m.rotate(zRot / 16.0f, 0.0f, 0.0f, 1.0f); - - program->setUniformValue("matrix", m); - program->enableAttributeArray(PROGRAM_VERTEX_ATTRIBUTE); - program->enableAttributeArray(PROGRAM_TEXCOORD_ATTRIBUTE); - program->setAttributeArray - (PROGRAM_VERTEX_ATTRIBUTE, vertices.constData()); - program->setAttributeArray - (PROGRAM_TEXCOORD_ATTRIBUTE, texCoords.constData()); - -#endif - - for (int i = 0; i < 6; ++i) { - glBindTexture(GL_TEXTURE_2D, textures[i]); - glDrawArrays(GL_TRIANGLE_FAN, i * 4, 4); - } -} - -void GLWidget::resizeGL(int width, int height) -{ - int side = qMin(width, height); - glViewport((width - side) / 2, (height - side) / 2, side, side); - -#if !defined(QT_OPENGL_ES_2) - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); -#ifndef QT_OPENGL_ES - glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0); -#else - glOrthof(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0); -#endif - glMatrixMode(GL_MODELVIEW); -#endif -} - -void GLWidget::makeObject() -{ - static const int coords[6][4][3] = { - { { +1, -1, -1 }, { -1, -1, -1 }, { -1, +1, -1 }, { +1, +1, -1 } }, - { { +1, +1, -1 }, { -1, +1, -1 }, { -1, +1, +1 }, { +1, +1, +1 } }, - { { +1, -1, +1 }, { +1, -1, -1 }, { +1, +1, -1 }, { +1, +1, +1 } }, - { { -1, -1, -1 }, { -1, -1, +1 }, { -1, +1, +1 }, { -1, +1, -1 } }, - { { +1, -1, +1 }, { -1, -1, +1 }, { -1, -1, -1 }, { +1, -1, -1 } }, - { { -1, -1, +1 }, { +1, -1, +1 }, { +1, +1, +1 }, { -1, +1, +1 } } - }; - - for (int j=0; j < 6; ++j) { - textures[j] = bindTexture - (QPixmap(QString(":/images/side%1.png").arg(j + 1)), GL_TEXTURE_2D); - } - - for (int i = 0; i < 6; ++i) { - for (int j = 0; j < 4; ++j) { - texCoords.append - (QVector2D(j == 0 || j == 3, j == 0 || j == 1)); - vertices.append - (QVector3D(0.4 * coords[i][j][0], 0.4 * coords[i][j][1], - 0.02 * coords[i][j][2])); - } - } -} diff --git a/ftnoir_posewidget/glwidget.h b/ftnoir_posewidget/glwidget.h deleted file mode 100644 index cff8cb83..00000000 --- a/ftnoir_posewidget/glwidget.h +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************** -* FaceTrackNoIR This program is a private project of the some enthusiastic * -* gamers from Holland, who don't like to pay much for * -* head-tracking. * -* * -* Copyright (C) 2010 Wim Vriend (Developing) * -* Ron Hendriks (Researching and Testing) * -* * -* Homepage * -* * -* This program is free software; you can redistribute it and/or modify it * -* under the terms of the GNU General Public License as published by the * -* Free Software Foundation; either version 3 of the License, or (at your * -* option) any later version. * -* * -* This program is distributed in the hope that it will be useful, but * -* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * -* more details. * -* * -* Adopted this widget from the 'textures' sample of the Nokia Qt toolkit. * -* * -* You should have received a copy of the GNU General Public License along * -* with this program; if not, see . * -*********************************************************************************/ - -#ifndef GLWIDGET_H -#define GLWIDGET_H - -#include -#include - -class QGLShaderProgram; - -class GLWidget : public QGLWidget -{ - Q_OBJECT - -public: - GLWidget(QWidget *parent = 0, QGLWidget *shareWidget = 0); - ~GLWidget(); - - QSize minimumSizeHint() const; - QSize sizeHint() const; - void rotateBy(int xAngle, int yAngle, int zAngle); - void setClearColor(const QColor &color); - -signals: - void clicked(); - -protected: - void initializeGL(); - void paintGL(); - void resizeGL(int width, int height); - -private: - void makeObject(); - - QColor clearColor; - QPoint lastPos; - int xRot; - int yRot; - int zRot; - GLuint textures[6]; - QVector vertices; - QVector texCoords; -#ifdef QT_OPENGL_ES_2 - QGLShaderProgram *program; -#endif -}; - -#endif diff --git a/ftnoir_posewidget/images/side1.bmp b/ftnoir_posewidget/images/side1.bmp deleted file mode 100644 index 29c28d80..00000000 Binary files a/ftnoir_posewidget/images/side1.bmp and /dev/null differ diff --git a/ftnoir_posewidget/images/side1.png b/ftnoir_posewidget/images/side1.png deleted file mode 100644 index e0315b77..00000000 Binary files a/ftnoir_posewidget/images/side1.png and /dev/null differ diff --git a/ftnoir_posewidget/images/side2.png b/ftnoir_posewidget/images/side2.png deleted file mode 100644 index 67eb060b..00000000 Binary files a/ftnoir_posewidget/images/side2.png and /dev/null differ diff --git a/ftnoir_posewidget/images/side3.png b/ftnoir_posewidget/images/side3.png deleted file mode 100644 index 67eb060b..00000000 Binary files a/ftnoir_posewidget/images/side3.png and /dev/null differ diff --git a/ftnoir_posewidget/images/side4.png b/ftnoir_posewidget/images/side4.png deleted file mode 100644 index 67eb060b..00000000 Binary files a/ftnoir_posewidget/images/side4.png and /dev/null differ diff --git a/ftnoir_posewidget/images/side5.png b/ftnoir_posewidget/images/side5.png deleted file mode 100644 index 67eb060b..00000000 Binary files a/ftnoir_posewidget/images/side5.png and /dev/null differ diff --git a/ftnoir_posewidget/images/side6.png b/ftnoir_posewidget/images/side6.png deleted file mode 100644 index f4160001..00000000 Binary files a/ftnoir_posewidget/images/side6.png and /dev/null differ diff --git a/ftnoir_posewidget/images/xxx_side1.bmp b/ftnoir_posewidget/images/xxx_side1.bmp new file mode 100644 index 00000000..29c28d80 Binary files /dev/null and b/ftnoir_posewidget/images/xxx_side1.bmp differ diff --git a/ftnoir_posewidget/images/xxx_side1.png b/ftnoir_posewidget/images/xxx_side1.png new file mode 100644 index 00000000..e0315b77 Binary files /dev/null and b/ftnoir_posewidget/images/xxx_side1.png differ diff --git a/ftnoir_posewidget/images/xxx_side2.png b/ftnoir_posewidget/images/xxx_side2.png new file mode 100644 index 00000000..67eb060b Binary files /dev/null and b/ftnoir_posewidget/images/xxx_side2.png differ diff --git a/ftnoir_posewidget/images/xxx_side3.png b/ftnoir_posewidget/images/xxx_side3.png new file mode 100644 index 00000000..67eb060b Binary files /dev/null and b/ftnoir_posewidget/images/xxx_side3.png differ diff --git a/ftnoir_posewidget/images/xxx_side4.png b/ftnoir_posewidget/images/xxx_side4.png new file mode 100644 index 00000000..67eb060b Binary files /dev/null and b/ftnoir_posewidget/images/xxx_side4.png differ diff --git a/ftnoir_posewidget/images/xxx_side5.png b/ftnoir_posewidget/images/xxx_side5.png new file mode 100644 index 00000000..67eb060b Binary files /dev/null and b/ftnoir_posewidget/images/xxx_side5.png differ diff --git a/ftnoir_posewidget/images/xxx_side6.png b/ftnoir_posewidget/images/xxx_side6.png new file mode 100644 index 00000000..f4160001 Binary files /dev/null and b/ftnoir_posewidget/images/xxx_side6.png differ diff --git a/ftnoir_posewidget/xxx_glwidget.cpp b/ftnoir_posewidget/xxx_glwidget.cpp new file mode 100644 index 00000000..55b65619 --- /dev/null +++ b/ftnoir_posewidget/xxx_glwidget.cpp @@ -0,0 +1,210 @@ +/******************************************************************************** +* FaceTrackNoIR This program is a private project of the some enthusiastic * +* gamers from Holland, who don't like to pay much for * +* head-tracking. * +* * +* Copyright (C) 2010 Wim Vriend (Developing) * +* Ron Hendriks (Researching and Testing) * +* * +* Homepage * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 3 of the License, or (at your * +* option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but * +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * +* more details. * +* * +* Adopted this widget from the 'textures' sample of the Nokia Qt toolkit. * +* * +* You should have received a copy of the GNU General Public License along * +* with this program; if not, see . * +*********************************************************************************/ + +#include +#include + +#include "glwidget.h" + +GLWidget::GLWidget(QWidget *parent, QGLWidget *shareWidget) + : QGLWidget(parent, shareWidget) +{ + clearColor = Qt::black; + xRot = 0; + yRot = 0; + zRot = 0; + +#ifdef QT_OPENGL_ES_2 + program = 0; +#endif +} + +GLWidget::~GLWidget() +{ +} + +QSize GLWidget::minimumSizeHint() const +{ + return QSize(60, 60); +} + +QSize GLWidget::sizeHint() const +{ + return QSize(90, 90); +} + +void GLWidget::rotateBy(int xAngle, int yAngle, int zAngle) +{ + xRot = xAngle; + yRot = yAngle; + zRot = zAngle; + updateGL(); +} + +void GLWidget::setClearColor(const QColor &color) +{ + clearColor = color; + updateGL(); +} + +void GLWidget::initializeGL() +{ + makeObject(); + + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); +#ifndef QT_OPENGL_ES_2 + glEnable(GL_TEXTURE_2D); +#endif + +#ifdef QT_OPENGL_ES_2 + +#define PROGRAM_VERTEX_ATTRIBUTE 0 +#define PROGRAM_TEXCOORD_ATTRIBUTE 1 + + QGLShader *vshader = new QGLShader(QGLShader::Vertex, this); + const char *vsrc = + "attribute highp vec4 vertex;\n" + "attribute mediump vec4 texCoord;\n" + "varying mediump vec4 texc;\n" + "uniform mediump mat4 matrix;\n" + "void main(void)\n" + "{\n" + " gl_Position = matrix * vertex;\n" + " texc = texCoord;\n" + "}\n"; + vshader->compileSourceCode(vsrc); + + QGLShader *fshader = new QGLShader(QGLShader::Fragment, this); + const char *fsrc = + "uniform sampler2D texture;\n" + "varying mediump vec4 texc;\n" + "void main(void)\n" + "{\n" + " gl_FragColor = texture2D(texture, texc.st);\n" + "}\n"; + fshader->compileSourceCode(fsrc); + + program = new QGLShaderProgram(this); + program->addShader(vshader); + program->addShader(fshader); + program->bindAttributeLocation("vertex", PROGRAM_VERTEX_ATTRIBUTE); + program->bindAttributeLocation("texCoord", PROGRAM_TEXCOORD_ATTRIBUTE); + program->link(); + + program->bind(); + program->setUniformValue("texture", 0); + +#endif +} + +void GLWidget::paintGL() +{ + qglClearColor(clearColor); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + +#if !defined(QT_OPENGL_ES_2) + + glLoadIdentity(); + glTranslatef(0.0f, 0.0f, -10.0f); + + glRotatef(xRot, 1.0f, 0.0f, 0.0f); + glRotatef(yRot, 0.0f, 1.0f, 0.0f); + glRotatef(-1.0f * zRot, 0.0f, 0.0f, 1.0f); + + glVertexPointer(3, GL_FLOAT, 0, vertices.constData()); + glTexCoordPointer(2, GL_FLOAT, 0, texCoords.constData()); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + +#else + + QMatrix4x4 m; + m.ortho(-0.5f, +0.5f, +0.5f, -0.5f, 4.0f, 15.0f); + m.translate(0.0f, 0.0f, -10.0f); + m.rotate(xRot / 16.0f, 1.0f, 0.0f, 0.0f); + m.rotate(yRot / 16.0f, 0.0f, 1.0f, 0.0f); + m.rotate(zRot / 16.0f, 0.0f, 0.0f, 1.0f); + + program->setUniformValue("matrix", m); + program->enableAttributeArray(PROGRAM_VERTEX_ATTRIBUTE); + program->enableAttributeArray(PROGRAM_TEXCOORD_ATTRIBUTE); + program->setAttributeArray + (PROGRAM_VERTEX_ATTRIBUTE, vertices.constData()); + program->setAttributeArray + (PROGRAM_TEXCOORD_ATTRIBUTE, texCoords.constData()); + +#endif + + for (int i = 0; i < 6; ++i) { + glBindTexture(GL_TEXTURE_2D, textures[i]); + glDrawArrays(GL_TRIANGLE_FAN, i * 4, 4); + } +} + +void GLWidget::resizeGL(int width, int height) +{ + int side = qMin(width, height); + glViewport((width - side) / 2, (height - side) / 2, side, side); + +#if !defined(QT_OPENGL_ES_2) + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); +#ifndef QT_OPENGL_ES + glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0); +#else + glOrthof(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0); +#endif + glMatrixMode(GL_MODELVIEW); +#endif +} + +void GLWidget::makeObject() +{ + static const int coords[6][4][3] = { + { { +1, -1, -1 }, { -1, -1, -1 }, { -1, +1, -1 }, { +1, +1, -1 } }, + { { +1, +1, -1 }, { -1, +1, -1 }, { -1, +1, +1 }, { +1, +1, +1 } }, + { { +1, -1, +1 }, { +1, -1, -1 }, { +1, +1, -1 }, { +1, +1, +1 } }, + { { -1, -1, -1 }, { -1, -1, +1 }, { -1, +1, +1 }, { -1, +1, -1 } }, + { { +1, -1, +1 }, { -1, -1, +1 }, { -1, -1, -1 }, { +1, -1, -1 } }, + { { -1, -1, +1 }, { +1, -1, +1 }, { +1, +1, +1 }, { -1, +1, +1 } } + }; + + for (int j=0; j < 6; ++j) { + textures[j] = bindTexture + (QPixmap(QString(":/images/side%1.png").arg(j + 1)), GL_TEXTURE_2D); + } + + for (int i = 0; i < 6; ++i) { + for (int j = 0; j < 4; ++j) { + texCoords.append + (QVector2D(j == 0 || j == 3, j == 0 || j == 1)); + vertices.append + (QVector3D(0.4 * coords[i][j][0], 0.4 * coords[i][j][1], + 0.02 * coords[i][j][2])); + } + } +} diff --git a/ftnoir_posewidget/xxx_glwidget.h b/ftnoir_posewidget/xxx_glwidget.h new file mode 100644 index 00000000..cff8cb83 --- /dev/null +++ b/ftnoir_posewidget/xxx_glwidget.h @@ -0,0 +1,72 @@ +/******************************************************************************** +* FaceTrackNoIR This program is a private project of the some enthusiastic * +* gamers from Holland, who don't like to pay much for * +* head-tracking. * +* * +* Copyright (C) 2010 Wim Vriend (Developing) * +* Ron Hendriks (Researching and Testing) * +* * +* Homepage * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 3 of the License, or (at your * +* option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but * +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * +* more details. * +* * +* Adopted this widget from the 'textures' sample of the Nokia Qt toolkit. * +* * +* You should have received a copy of the GNU General Public License along * +* with this program; if not, see . * +*********************************************************************************/ + +#ifndef GLWIDGET_H +#define GLWIDGET_H + +#include +#include + +class QGLShaderProgram; + +class GLWidget : public QGLWidget +{ + Q_OBJECT + +public: + GLWidget(QWidget *parent = 0, QGLWidget *shareWidget = 0); + ~GLWidget(); + + QSize minimumSizeHint() const; + QSize sizeHint() const; + void rotateBy(int xAngle, int yAngle, int zAngle); + void setClearColor(const QColor &color); + +signals: + void clicked(); + +protected: + void initializeGL(); + void paintGL(); + void resizeGL(int width, int height); + +private: + void makeObject(); + + QColor clearColor; + QPoint lastPos; + int xRot; + int yRot; + int zRot; + GLuint textures[6]; + QVector vertices; + QVector texCoords; +#ifdef QT_OPENGL_ES_2 + QGLShaderProgram *program; +#endif +}; + +#endif diff --git a/ftnoir_posewidget/xxx_posewidget.qrc b/ftnoir_posewidget/xxx_posewidget.qrc new file mode 100644 index 00000000..65038eba --- /dev/null +++ b/ftnoir_posewidget/xxx_posewidget.qrc @@ -0,0 +1,10 @@ + + + images/side1.png + images/side2.png + images/side3.png + images/side4.png + images/side5.png + images/side6.png + + -- cgit v1.2.3