diff options
Diffstat (limited to 'demos')
208 files changed, 0 insertions, 15823 deletions
diff --git a/demos/demos.pro b/demos/demos.pro deleted file mode 100644 index c5663106..00000000 --- a/demos/demos.pro +++ /dev/null @@ -1,2 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = quick3d qt3d diff --git a/demos/qt3d/README b/demos/qt3d/README deleted file mode 100644 index 9188d92d..00000000 --- a/demos/qt3d/README +++ /dev/null @@ -1,14 +0,0 @@ -This directory contains demos for the Qt3D C++ API. - -Qt3D can be used to extend Qt Quick3D with custom 3D items. Qt3D is also -a general 3D toolkit, featuring a scenegraph API, support for OpenGL VBO's -and other utilities for general 3D programming. - -Research work on Qt3D also continues in the labs repository: - - http://qt.gitorious.org/qt-labs/qt3d - -...and is from time to time ported into Qt Quick3D. - -Check the labs version of Qt3D for additional cutting edge features such as -support for stereoscopic hardware. diff --git a/demos/qt3d/cubehouse/cube.qrc b/demos/qt3d/cubehouse/cube.qrc deleted file mode 100644 index 9de1d255..00000000 --- a/demos/qt3d/cubehouse/cube.qrc +++ /dev/null @@ -1,7 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>qtlogo.png</file> - <file>shaders/objectlineartexgen.frag</file> - <file>shaders/objectlineartexgen.vert</file> -</qresource> -</RCC> diff --git a/demos/qt3d/cubehouse/cubehouse.desktop b/demos/qt3d/cubehouse/cubehouse.desktop deleted file mode 100644 index 685e6418..00000000 --- a/demos/qt3d/cubehouse/cubehouse.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=CubeHouse -Icon=/usr/share/icons/hicolor/80x80/apps/qt3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/cubehouse -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_cubehouse diff --git a/demos/qt3d/cubehouse/cubehouse.pro b/demos/qt3d/cubehouse/cubehouse.pro deleted file mode 100644 index f809849e..00000000 --- a/demos/qt3d/cubehouse/cubehouse.pro +++ /dev/null @@ -1,22 +0,0 @@ -TEMPLATE = app -TARGET = cubehouse -CONFIG += qt warn_on - -CONFIG += qt3d_deploy_pkg -include(../../../pkg.pri) - -SOURCES = cubeview.cpp main.cpp projectivetextureeffect.cpp -HEADERS = cubeview.h projectivetextureeffect.h -win32:DEFINES+=_CRT_SECURE_NO_WARNINGS -RESOURCES = cube.qrc - -OTHER_FILES += \ - shaders/objectlineartexgen.frag \ - shaders/objectlineartexgen.vert - -OTHER_FILES += \ - cubehouse.rc \ - cubehouse.desktop - -RC_FILE = cubehouse.rc - diff --git a/demos/qt3d/cubehouse/cubehouse.rc b/demos/qt3d/cubehouse/cubehouse.rc deleted file mode 100644 index b40ecdc1..00000000 --- a/demos/qt3d/cubehouse/cubehouse.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qt3d.ico" diff --git a/demos/qt3d/cubehouse/cubeview.cpp b/demos/qt3d/cubehouse/cubeview.cpp deleted file mode 100644 index 8c4f5e30..00000000 --- a/demos/qt3d/cubehouse/cubeview.cpp +++ /dev/null @@ -1,460 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "cubeview.h" -#include "qglcube.h" -#include "qglteapot.h" -#include <QtCore/qdebug.h> -#include <QtCore/qtimer.h> -#include <QtCore/qpropertyanimation.h> -#include <stdio.h> -#include <qmath.h> -#include "projectivetextureeffect.h" - -//#define PROJECTOR_CAMERA_DEBUG_MARKERS - - -CubeView::CubeView(QWidget *parent) - : QGLView(parent), scene(0), cube(0), teapot(0), room(0), - sensitivity(0.1f), - lightParameters(0), - showFrameRate(false), - stereo(false), - useProjectiveTextureEffect(false), - cangle(0.0f), - prevX(0), - prevY(0), - prevZ(0), - havePrev(false), - projectiveTextureEffect(0) -{ - setOption(CameraNavigation, false); - - roomCamera = new QGLCamera(this); - roomCamera->setAdjustForAspectRatio(false); - - QPropertyAnimation *animation; - - animation = new QPropertyAnimation(this, "cubeAngle", this); - animation->setStartValue(0.0f); - animation->setEndValue(360.0f); - animation->setDuration(5000); - animation->setLoopCount(-1); - animation->start(); - - time.start(); -} - -void CubeView::initializeGL(QGLPainter *painter) -{ - QGLBuilder builder; - builder << QGL::Faceted << QGLCube(1.0f); - cube = builder.currentNode(); - builder << QGL::Faceted; - room = builder.currentNode(); - builder.pushNode(); - QGLSceneNode *back = builder.newNode(); - { - QGeometryData quad; - quad.appendVertex(QVector3D(-3.0f, -3.0f, -15.0f)); - quad.appendVertex(QVector3D( 3.0f, -3.0f, -15.0f)); - quad.appendVertex(QVector3D( 3.0f, 3.0f, -15.0f)); - quad.appendVertex(QVector3D(-3.0f, 3.0f, -15.0f)); - builder.addQuads(quad); - } - QGLSceneNode *left = builder.newNode(); - { - QGeometryData quad; - quad.appendVertex(QVector3D(-3.0f, -3.0f, -15.0f)); - quad.appendVertex(QVector3D(-3.0f, 3.0f, -15.0f)); - quad.appendVertex(QVector3D(-3.0f, 3.0f, 0.0f)); - quad.appendVertex(QVector3D(-3.0f, -3.0f, 0.0f)); - builder.addQuads(quad); - } - QGLSceneNode *right = builder.newNode(); - { - QGeometryData quad; - quad.appendVertex(QVector3D(3.0f, 3.0f, -15.0f)); - quad.appendVertex(QVector3D(3.0f, -3.0f, -15.0f)); - quad.appendVertex(QVector3D(3.0f, -3.0f, 0.0f)); - quad.appendVertex(QVector3D(3.0f, 3.0f, 0.0f)); - builder.addQuads(quad); - } - QGLSceneNode *top = builder.newNode(); - { - QGeometryData quad; - quad.appendVertex(QVector3D(-3.0f, 3.0f, -15.0f)); - quad.appendVertex(QVector3D( 3.0f, 3.0f, -15.0f)); - quad.appendVertex(QVector3D( 3.0f, 3.0f, 0.0f)); - quad.appendVertex(QVector3D(-3.0f, 3.0f, 0.0f)); - builder.addQuads(quad); - } - QGLSceneNode *bottom = builder.newNode(); - { - QGeometryData quad; - quad.appendVertex(QVector3D(-3.0f, -3.0f, -15.0f)); - quad.appendVertex(QVector3D(-3.0f, -3.0f, 0.0f)); - quad.appendVertex(QVector3D( 3.0f, -3.0f, 0.0f)); - quad.appendVertex(QVector3D( 3.0f, -3.0f, -15.0f)); - builder.addQuads(quad); - } - builder.popNode(); - - int index; - QGLMaterialCollection *palette = builder.sceneNode()->palette(); - - QGLMaterial *mat1 = new QGLMaterial(); - mat1->setDiffuseColor(QColor(128, 100, 0)); - index = palette->addMaterial(mat1); - back->setMaterialIndex(index); - - QGLMaterial *mat2 = new QGLMaterial(); - mat2->setDiffuseColor(Qt::cyan); - index = palette->addMaterial(mat2); - left->setMaterialIndex(index); - right->setMaterialIndex(index); - - QGLMaterial *mat3 = new QGLMaterial(); - mat3->setDiffuseColor(Qt::yellow); - index = palette->addMaterial(mat3); - top->setMaterialIndex(index); - bottom->setMaterialIndex(index); - - //qDumpScene(room); - - builder.newSection(); - builder << QGLTeapot(); - teapot = builder.currentNode(); - QGLMaterial *china = new QGLMaterial(); - china->setAmbientColor(QColor(192, 150, 128)); - china->setSpecularColor(QColor(60, 60, 60)); - china->setShininess(128); - teapot->setMaterial(china); - - scene = builder.finalizedSceneNode(); - scene->setParent(this); - - roomModel = new QGLLightModel(this); - roomModel->setAmbientSceneColor(Qt::white); - roomModel->setViewerPosition(QGLLightModel::LocalViewer); - - normalModel = new QGLLightModel(this); - - lightParameters = new QGLLightParameters(this); - lightParameters->setPosition(QVector3D(0.0f, 0.0f, 3.0f)); - painter->setMainLight(lightParameters); - - QImage textureImage(QLatin1String(":/qtlogo.png")); - texture.setImage(textureImage); - - if (stereo) { - camera()->setEyeSeparation(0.4f); - roomCamera->setEyeSeparation(0.1f); - } - - if (useProjectiveTextureEffect) - { - // initialize the projector camera - projectorCamera = new QGLCamera(this); - projectiveTextureEffect = new ProjectiveTextureEffect; - connect(projectorCamera, SIGNAL(viewChanged()), - this, SLOT(updateProjectorViewMatrix())); - connect(projectorCamera, SIGNAL(projectionChanged()), - this, SLOT(updateProjectorProjectionMatrix())); - } -} - -void CubeView::paintGL(QGLPainter *painter) -{ - if (showFrameRate) - qWarning("time since last frame: %d ms", time.restart()); - - glDisable(GL_BLEND); - - // Animate the projector position so the effect can be seen - if (useProjectiveTextureEffect) - { - projectorCamera->tiltPanRollCenter - (-0.1f, -0.3f, 0.0f, QGLCamera::PanTiltRoll); - } - - painter->modelViewMatrix().push(); - painter->projectionMatrix().push(); - - painter->setStandardEffect(QGL::LitMaterial); - painter->setCamera(roomCamera); - painter->setLightModel(roomModel); - room->draw(painter); - - painter->modelViewMatrix().pop(); - painter->projectionMatrix().pop(); - - painter->modelViewMatrix().push(); - // These are the model transformations - painter->modelViewMatrix().translate(-0.8f, -1.5f, -3.0f); - painter->setLightModel(normalModel); - if (useProjectiveTextureEffect) - { - modelMatrix.push(); - // For an effect that looks like we have only one projector - // Over the whole screen, we duplicate transformations into the - // projector's model matrix. For now, we don't apply the transform - // to center the effect on each object and see it more clearly. - // modelMatrix.translate(-0.8f, -1.5f, -3.0f); - - updateProjectiveTextureEffect(); - - painter->setUserEffect(projectiveTextureEffect); - texture.bind(); - } - else - { - painter->setStandardEffect(QGL::LitMaterial); - } - teapot->draw(painter); - - if (useProjectiveTextureEffect) - modelMatrix.pop(); - painter->modelViewMatrix().pop(); - - - // These are the model transformations - painter->modelViewMatrix().push(); - painter->modelViewMatrix().translate(1.0f, -0.5f, 0.0f); - painter->modelViewMatrix().rotate(cangle, 1.0f, 1.0f, 1.0f); - - texture.bind(); - if (useProjectiveTextureEffect) - { - modelMatrix.push(); - // For an effect that looks like we have only one projector - // Over the whole screen, we duplicate transformations into the - // projector's model matrix. For now, we don't apply the transform - // to center the effect on each object and see it more clearly. -// modelMatrix.translate(1.0f, -0.5f, 0.0f); - modelMatrix.rotate(cangle, 1.0f, 1.0f, 1.0f); - updateProjectiveTextureEffect(); - painter->setUserEffect(projectiveTextureEffect); -// painter->setStandardEffect(QGL::FlatDecalTexture2D); - cube->draw(painter); - modelMatrix.pop(); - } - else - { - glEnable(GL_BLEND); - painter->setStandardEffect(QGL::LitDecalTexture2D); - painter->setFaceColor(QGL::AllFaces, QColor(170, 202, 0, 120)); - glDisable(GL_DEPTH_TEST); - glCullFace(GL_FRONT); - glEnable(GL_CULL_FACE); - cube->draw(painter); - glCullFace(GL_BACK); - cube->draw(painter); - glDisable(GL_CULL_FACE); - glEnable(GL_DEPTH_TEST); - glBindTexture(GL_TEXTURE_2D, 0); - } - - painter->modelViewMatrix().pop(); -#ifdef PROJECTOR_CAMERA_DEBUG_MARKERS - if (useProjectiveTextureEffect) - { - - painter->modelViewMatrix().push(); - modelMatrix.push(); - painter->modelViewMatrix().translate(projectorCamera->eye()); - painter->modelViewMatrix().scale(0.2); - painter->setStandardEffect(QGL::LitMaterial); - modelMatrix.translate(projectorCamera->eye()); - cube->draw(painter); - - modelMatrix.pop(); - painter->modelViewMatrix().pop(); - - painter->modelViewMatrix().push(); - modelMatrix.push(); - painter->modelViewMatrix().translate(projectorCamera->center()); - painter->modelViewMatrix().scale(0.1); - painter->setStandardEffect(QGL::LitMaterial); - cube->draw(painter); - modelMatrix.pop(); - painter->modelViewMatrix().pop(); - - QVector3DArray verts; - - QVector3D origin = projectorCamera->eye(); - - QVector3D target = projectorCamera->center(); - QVector3D direction = projectorCamera->center() - projectorCamera->eye(); - - QVector3D normal = projectorCamera->upVector().normalized(); - qreal nearPlane = projectorCamera->nearPlane(); - qreal farPlane = projectorCamera->farPlane(); - qreal fieldOfView = projectorCamera->fieldOfView(); - - QVector3D nearTopLeft; - QVector3D nearTopRight; - QVector3D nearBottomLeft; - QVector3D nearBottomRight; - QVector3D farTopLeft; - QVector3D farTopRight; - QVector3D farBottomLeft; - QVector3D farBottomRight; - - QSizeF viewSize = projectorCamera->viewSize(); - - qreal fieldDepthRatio = farPlane / nearPlane; - - QVector3D rightVector = QVector3D::crossProduct(direction, normal).normalized() * viewSize.width() / 2.0; - QVector3D topVector = normal * viewSize.height() / 2.0; - - QVector3D topLeftVector = direction + topVector - rightVector; - QVector3D topRightVector = direction + topVector + rightVector; - QVector3D bottomLeftVector = direction - topVector - rightVector; - QVector3D bottomRightVector = direction - topVector + rightVector; - - verts.append(origin, origin + (direction * (farPlane / direction.length()))); - - verts.append(origin, origin + (topLeftVector * fieldDepthRatio)); - verts.append(origin, origin + (topRightVector * fieldDepthRatio)); - verts.append(origin, origin + (bottomLeftVector * fieldDepthRatio)); - verts.append(origin, origin + (bottomRightVector * fieldDepthRatio)); - - verts.append(origin + topLeftVector, origin + topRightVector); - verts.append(origin + topRightVector, origin + bottomRightVector); - verts.append(origin + bottomRightVector, origin + bottomLeftVector); - verts.append(origin + bottomLeftVector, origin + topLeftVector); - - verts.append(origin + (topLeftVector * fieldDepthRatio), - (origin + topRightVector * fieldDepthRatio)); - verts.append(origin + (topRightVector * fieldDepthRatio), - (origin + bottomRightVector * fieldDepthRatio)); - verts.append(origin + (bottomRightVector * fieldDepthRatio), - (origin + bottomLeftVector * fieldDepthRatio)); - verts.append(origin + (bottomLeftVector * fieldDepthRatio), - (origin + topLeftVector * fieldDepthRatio)); - - verts.append(origin, origin + normal); - - painter->modelViewMatrix().push(); - painter->setStandardEffect(QGL::FlatColor); - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, QGLAttributeValue(verts)); - glLineWidth(1.0f); - - painter->setColor(QColor(255,255,255,255)); - painter->draw(QGL::Lines, verts.size()); - painter->modelViewMatrix().pop(); - } -#endif -} - -//inline void CubeView::setProjectiveTextureEffect(bool value) -//{ -// useProjectiveTextureEffect = value; -//} - -void CubeView::setCubeAngle(qreal angle) -{ - cangle = angle; - accelerometerTimeout(); - update(); -} - -void CubeView::accelerometerTimeout() -{ - QVector3D g = gravity(); - camera()->setMotionAdjustment(g); - roomCamera->setMotionAdjustment(g); -} - -QVector3D CubeView::gravity() const -{ - // Access the raw accelerometer data on the N900. - FILE *file = fopen("/sys/class/i2c-adapter/i2c-3/3-001d/coord", "r"); - if (!file) - return QVector3D(0, 0, -1); - float x = 0; - float y = 0; - float z = 0; - fscanf(file, "%f %f %f", &x, &y, &z); - fclose(file); - - // Smooth out the reported values. Large changes are applied as-is, - // and small jitters smooth to the rest position. - if (havePrev) { - qreal xdiff = x - prevX; - qreal ydiff = y - prevY; - qreal zdiff = z - prevZ; - if (qAbs(xdiff) < 20.0f && qAbs(ydiff) < 20.0f && qAbs(zdiff) < 20.0f) { - x = prevX + xdiff * 0.1f; - y = prevY + ydiff * 0.1f; - z = prevZ + zdiff * 0.1f; - } - } - prevX = x; - prevY = y; - prevZ = z; - havePrev = true; - - return QVector3D((x / 1000.0f) * sensitivity, - (-y / 1000.0f) * sensitivity, -z / 1000.0f); -} - -void CubeView::updateProjectorViewMatrix() -{ - Q_ASSERT_X(projectorCamera != 0, Q_FUNC_INFO, "Null projector camera in updateProjectorViewMatrix()"); - projectiveTextureEffect->setProjectorViewMatrix(projectorCamera->modelViewMatrix()); - updateProjectiveTextureEffect(); -} - -void CubeView::updateProjectorProjectionMatrix() -{ - qreal projectorAspectRatio = 1.0; - projectiveTextureEffect->setProjectorProjectionMatrix(projectorCamera->projectionMatrix(projectorAspectRatio)); - updateProjectiveTextureEffect(); -} - -void CubeView::updateProjectiveTextureEffect() -{ - projectiveTextureEffect->setProjectorDirection(projectorCamera->center() - projectorCamera->eye()); - projectiveTextureEffect->setModelMatrix(modelMatrix); -} diff --git a/demos/qt3d/cubehouse/cubeview.h b/demos/qt3d/cubehouse/cubeview.h deleted file mode 100644 index 52517ea1..00000000 --- a/demos/qt3d/cubehouse/cubeview.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef CUBEVIEW_H -#define CUBEVIEW_H - -#include "qglview.h" -#include "qglbuilder.h" -#include "qgltexture2d.h" -#include <QtCore/qdatetime.h> - -class ProjectiveTextureEffect; - -class CubeView : public QGLView -{ - Q_OBJECT - Q_PROPERTY(qreal cubeAngle READ cubeAngle WRITE setCubeAngle) -public: - CubeView(QWidget *parent = 0); - ~CubeView() {} - - void setShowFrameRate(bool value) { showFrameRate = value; } - void setStereo(bool value) { stereo = value; } - void setProjectiveTextureEffect(bool value) -{ - useProjectiveTextureEffect = value; -} - - qreal cubeAngle() const { return cangle; } - void setCubeAngle(qreal angle); - -protected: - void initializeGL(QGLPainter *painter); - void paintGL(QGLPainter *painter); - -private slots: - void accelerometerTimeout(); - void updateProjectorViewMatrix(); - void updateProjectorProjectionMatrix(); - void updateProjectiveTextureEffect(); - -private: - QGLTexture2D texture; - QGLSceneNode *scene; - QGLSceneNode *cube; - QGLSceneNode *teapot; - QGLSceneNode *room; - QGLCamera *roomCamera; - QGLCamera *projectorCamera; - qreal sensitivity; - QGLLightModel *roomModel; - QGLLightModel *normalModel; - QGLLightParameters *lightParameters; - bool showFrameRate; - bool stereo; - bool useProjectiveTextureEffect; - QTime time; - qreal cangle; - mutable qreal prevX, prevY, prevZ; - mutable bool havePrev; - - QVector3D gravity() const; - - ProjectiveTextureEffect* projectiveTextureEffect; - QMatrix4x4 biasMatrix; - QMatrix4x4Stack modelMatrix; - QMatrix4x4 objectLinearTexgenMatrix; -}; - -#endif diff --git a/demos/qt3d/cubehouse/main.cpp b/demos/qt3d/cubehouse/main.cpp deleted file mode 100644 index a18b6584..00000000 --- a/demos/qt3d/cubehouse/main.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QApplication> -#include "cubeview.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - CubeView view; - if (QApplication::arguments().contains(QLatin1String("-framerate"))) - view.setShowFrameRate(true); - if (QApplication::arguments().contains(QLatin1String("-projectivetexture"))) - view.setProjectiveTextureEffect(true); - if (QApplication::arguments().contains(QLatin1String("-stereo"))) - view.setStereo(true); - else if (view.stereoType() != QGLView::RedCyanAnaglyph) - view.setStereo(true); - -#ifdef Q_OS_SYMBIAN - view.setAttribute(Qt::WA_LockLandscapeOrientation, true); - view.showFullScreen(); -#else - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - view.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - view.showFullScreen(); - else - view.show(); -#endif - return app.exec(); -} diff --git a/demos/qt3d/cubehouse/projectivetextureeffect.cpp b/demos/qt3d/cubehouse/projectivetextureeffect.cpp deleted file mode 100644 index 4a88dd37..00000000 --- a/demos/qt3d/cubehouse/projectivetextureeffect.cpp +++ /dev/null @@ -1,148 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QFile> -#include "projectivetextureeffect.h" -#include <QtOpenGL/qglshaderprogram.h> - -static const QMatrix4x4 biasMatrix = QMatrix4x4(0.5, 0.0, 0.0, 0.5, - 0.0, 0.5, 0.0, 0.5, - 0.0, 0.0, 0.5, 0.5, - 0.0, 0.0, 0.0, 1.0); - -/*! - The ProjectiveTextureEffect mimics the effect of shining a projector onto - a scene from a specific direction. Vertex coordinates in object space are - transformed into eye-space coordinates relative to the light direction, - using the objectLinearTexgenMatrix. -*/ -ProjectiveTextureEffect::ProjectiveTextureEffect() : - matrixDirty(true) -{ - setupShaders(); -} - -void ProjectiveTextureEffect::setActive(QGLPainter *painter, bool flag) -{ - QGLShaderProgramEffect::setActive(painter, flag); -} - -void ProjectiveTextureEffect::update(QGLPainter *painter, QGLPainter::Updates updates) -{ - QGLShaderProgramEffect::update(painter, updates); - - if (matrixDirty) - { - recalulateObjectLinearTexgenMatrix(); - matrixDirty = false; - } - - program()->setUniformValue("objectLinearTexgenMatrix", - objectLinearTexgenMatrix); - program()->setUniformValue("projectorDirection", - projectorDirection); -} - -void ProjectiveTextureEffect::setProjectorDirection(const QVector4D &direction) -{ - this->projectorDirection = direction; - matrixDirty = true; -} - -void ProjectiveTextureEffect::setCameraModelViewMatrix(const QMatrix4x4 &newCameraModelViewMatrix) -{ - cameraModelViewMatrix = newCameraModelViewMatrix; - bool invertible; - inverseCameraModelViewMatrix = - newCameraModelViewMatrix.inverted(&invertible); - Q_ASSERT(invertible); - if (!invertible) - qWarning() << "camera Model view matrix not invertible in ProjectiveDepthTestEffect::setCameraModelViewMatrix()"; - matrixDirty = true; -} - -void ProjectiveTextureEffect::setProjectorProjectionMatrix(const QMatrix4x4 &newMatrix) -{ - projectorProjectionMatrix = newMatrix; - matrixDirty = true; -} - -void ProjectiveTextureEffect::setProjectorViewMatrix(const QMatrix4x4 &newMatrix) -{ - projectorViewMatrix = newMatrix; - matrixDirty = true; -} - -void ProjectiveTextureEffect::setModelMatrix(const QMatrix4x4 &newMatrix) -{ - modelMatrix = newMatrix; - matrixDirty = true; -} - -void ProjectiveTextureEffect::recalulateObjectLinearTexgenMatrix() -{ - objectLinearTexgenMatrix = biasMatrix * - projectorProjectionMatrix * - projectorViewMatrix * - modelMatrix; -} - -void ProjectiveTextureEffect::setupShaders() -{ - QString vertexShaderFileName = QLatin1String(":/shaders/objectlineartexgen.vert"); - QFile vertexShaderFile(vertexShaderFileName); - if (vertexShaderFile.open(QIODevice::ReadOnly | QIODevice::Text)) - { - setVertexShader(vertexShaderFile.readAll()); - } else { - qWarning() << "Could not open file "<<vertexShaderFileName<<", failed to load vertex shader"; - } - - QString fragmentShaderFileName = QLatin1String(":/shaders/objectlineartexgen.frag"); - QFile fragmentShaderFile(fragmentShaderFileName); - if (fragmentShaderFile.open(QIODevice::ReadOnly | QIODevice::Text)) - { - setFragmentShader(fragmentShaderFile.readAll()); - } else { - qWarning() << "Could not open file "<<fragmentShaderFileName<<", failed to load fragment shader"; - } - -} diff --git a/demos/qt3d/cubehouse/projectivetextureeffect.h b/demos/qt3d/cubehouse/projectivetextureeffect.h deleted file mode 100644 index 8730710a..00000000 --- a/demos/qt3d/cubehouse/projectivetextureeffect.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PROJECTIVEDTEXTUREEFFECT_H -#define PROJECTIVEDTEXTUREEFFECT_H - -#include "qglshaderprogrameffect.h" -//#include "deptheffect.h" -#include "qmatrix4x4.h" - -class ProjectiveTextureEffect : public QGLShaderProgramEffect -{ -public: - explicit ProjectiveTextureEffect(); - virtual void setActive(QGLPainter *painter, bool flag); - virtual void update(QGLPainter *painter, QGLPainter::Updates updates); - virtual void setProjectorDirection(const QVector4D &direction); - - void setCameraModelViewMatrix(const QMatrix4x4 &newCameraModelViewMatrix); - void setProjectorProjectionMatrix(const QMatrix4x4 &newMatrix); - void setProjectorViewMatrix(const QMatrix4x4 &newMatrix); - void setModelMatrix(const QMatrix4x4 &newMatrix); - -// TODO: -// QMatrix4x4 eyeLinearTexgenMatrix; - -protected: - virtual void setupShaders(); -private: - virtual void recalulateObjectLinearTexgenMatrix(); - bool matrixDirty; - QMatrix4x4 modelMatrix; - QMatrix4x4 objectLinearTexgenMatrix; - QMatrix4x4 cameraModelViewMatrix; - QMatrix4x4 inverseCameraModelViewMatrix; - QMatrix4x4 projectorProjectionMatrix; - QMatrix4x4 projectorViewMatrix; - QVector4D projectorDirection; -}; - -#endif // PROJECTIVEDTEXTUREEFFECT_H diff --git a/demos/qt3d/cubehouse/qt3d.ico b/demos/qt3d/cubehouse/qt3d.ico Binary files differdeleted file mode 100644 index e6442baf..00000000 --- a/demos/qt3d/cubehouse/qt3d.ico +++ /dev/null diff --git a/demos/qt3d/cubehouse/qt3d.png b/demos/qt3d/cubehouse/qt3d.png Binary files differdeleted file mode 100644 index 21ec0176..00000000 --- a/demos/qt3d/cubehouse/qt3d.png +++ /dev/null diff --git a/demos/qt3d/cubehouse/qtlogo.png b/demos/qt3d/cubehouse/qtlogo.png Binary files differdeleted file mode 100644 index 7d3e97eb..00000000 --- a/demos/qt3d/cubehouse/qtlogo.png +++ /dev/null diff --git a/demos/qt3d/cubehouse/shaders/depth.frag b/demos/qt3d/cubehouse/shaders/depth.frag deleted file mode 100644 index 939cfc95..00000000 --- a/demos/qt3d/cubehouse/shaders/depth.frag +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -varying float depth; - -void main(void) -{ - float stupidMathsDepth = depth; - stupidMathsDepth = (stupidMathsDepth + 10.0) / 20.0; -// gl_FragColor = vec4(vec3(stupidMathsDepth), 1.0); - gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0); -}; diff --git a/demos/qt3d/cubehouse/shaders/depth.vert b/demos/qt3d/cubehouse/shaders/depth.vert deleted file mode 100644 index 8e13193b..00000000 --- a/demos/qt3d/cubehouse/shaders/depth.vert +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -attribute highp vec4 vertex; -varying float depth; -uniform highp mat4 qt_ModelViewMatrix; -uniform highp mat4 qt_ProjectionMatrix; - -attribute highp vec4 texCoords; - -uniform highp mat4 cameraCombinedMatrix; -uniform highp mat4 cameraModelViewMatrix; -uniform highp mat4 cameraProjectionMatrix; - -uniform highp mat4 lightCombinedMatrix; - -varying highp vec4 qt_TexCoord0; -varying highp vec4 onScreenPosition; -varying highp vec4 lightScreenPosition; -varying highp vec4 worldSpaceVertex; - -void main(void) -{ - qt_TexCoord0 = texCoords; - - // qt_ProjectionMatrix == cameraProjectionMatrix -// onScreenPosition = qt_ProjectionMatrix * qt_ModelViewMatrix * vertex; -//onScreenPosition = cameraProjectionMatrix * qt_ModelViewMatrix * vertex; - - onScreenPosition = cameraProjectionMatrix - * cameraModelViewMatrix -// * qt_ModelViewMatrix - * vertex; - depth = onScreenPosition.z; - - gl_Position = onScreenPosition; -}; diff --git a/demos/qt3d/cubehouse/shaders/depthTestShader.frag b/demos/qt3d/cubehouse/shaders/depthTestShader.frag deleted file mode 100644 index b2c6957b..00000000 --- a/demos/qt3d/cubehouse/shaders/depthTestShader.frag +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// This is equivilent to GL_REPLACE -varying highp vec4 qt_TexCoord0; - -uniform mediump sampler2D texture; -uniform mediump mat4 textureMatrix; -varying highp vec4 onScreenPosition; -varying highp vec4 lightScreenPosition; -varying highp vec4 worldSpaceVertex; -varying float lightDepth; -varying float actualDepth; - -void main(void) -{ - - // I should be able to build a matrix to do this: -// vec4 normalizedOnScreenPosition = (onScreenPosition + 5.0) / 10.0; -vec4 normalizedLightScreenPosition = (((lightScreenPosition -//+ lightScreenPosition.w -) / lightScreenPosition.w ) + 1.0) / 2.0; - -// float lightMapDepth = texture2D(texture, normalizedLightScreenPosition.st).z; - float lightMapDepth = texture2D(texture, normalizedLightScreenPosition.st ).z; -// gl_FragColor = vec4(lightMapDepth, lightMapDepth, lightMapDepth, 1.0); - -// gl_FragColor = vec4(normalizedLightScreenPosition.st,0.0,1.0); - -// float lightActualDepth = normalizedLightScreenPosition.z; - float lightActualDepth = lightDepth; -// gl_FragColor = vec4(lightActualDepth, lightActualDepth, lightActualDepth, 1.0); - float lightActualDepthWithStupidMaths = (lightActualDepth + 10.0) / 20.0; - float lightDepthWithStupidMaths = (lightDepth + 10.0) / 20.0; -// gl_FragColor = vec4(vec3(lightActualDepthWithStupidMaths), 1.0); - - -// if (lightActualDepthWithStupidMaths > lightMapDepth ) -// gl_FragColor = vec4(0.2, 0.2, 0.2, 1.0); -// else - gl_FragColor = vec4(1.0, 1.0, 0.5, 1.0); - - -// gl_FragColor = vec4(lightDepthWithStupidMaths, lightDepthWithStupidMaths, lightDepthWithStupidMaths, 1.0); - - -//float stupidMathslightDepth = (lightDepth + 10.0) / 20; -//gl_FragColor = vec4(stupidMathslightDepth, stupidMathslightDepth, stupidMathslightDepth, 1.0); - -//float stupidMathsActualDepth = (actualDepth + 10.0) / 20.0; -//gl_FragColor = vec4(stupidMathsActualDepth, stupidMathsActualDepth, stupidMathsActualDepth, 1.0); - -}; diff --git a/demos/qt3d/cubehouse/shaders/depthTestShader.vert b/demos/qt3d/cubehouse/shaders/depthTestShader.vert deleted file mode 100644 index 6f640c87..00000000 --- a/demos/qt3d/cubehouse/shaders/depthTestShader.vert +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -attribute highp vec4 vertex; -attribute highp vec4 texCoords; - -uniform highp mat4 matrix; -uniform highp mat4 qt_ProjectionMatrix; -uniform highp mat4 qt_ModelViewMatrix; - -uniform highp mat4 cameraCombinedMatrix; -uniform highp mat4 lightCombinedMatrix; - -uniform highp mat4 cameraModelViewMatrix; -uniform highp mat4 inverseCameraModelViewMatrix; -uniform highp mat4 lightModelViewMatrix; - -uniform highp mat4 cameraProjectionMatrix; -uniform highp mat4 lightProjectionMatrix; - -varying highp vec4 qt_TexCoord0; -varying highp vec4 onScreenPosition; -varying highp vec4 lightScreenPosition; -varying highp vec4 worldSpaceVertex; -varying float lightDepth; -varying float actualDepth; - -void main(void) -{ - qt_TexCoord0 = texCoords; -// onScreenPosition = matrix * vertex; -//onScreenPosition = cameraCombinedMatrix * vertex; // works - onScreenPosition = qt_ProjectionMatrix * - qt_ModelViewMatrix - * vertex; - - highp vec4 worldPosition = inverseCameraModelViewMatrix * - qt_ModelViewMatrix * vertex; - -// lightScreenPosition = lightCombinedMatrix * vertex; -// lightScreenPosition = lightCombinedMatrix * worldPosition; - lightScreenPosition = lightProjectionMatrix * lightModelViewMatrix * vertex; - lightDepth = lightScreenPosition.z; - - actualDepth = onScreenPosition.z; - - worldSpaceVertex = vertex; - -// gl_Position = qt_ProjectionMatrix * worldPosition; -//gl_Position = onScreenPosition; -gl_Position = onScreenPosition; -// gl_Position = lightScreenPosition; -}; diff --git a/demos/qt3d/cubehouse/shaders/objectlineartexgen.frag b/demos/qt3d/cubehouse/shaders/objectlineartexgen.frag deleted file mode 100644 index a4439f28..00000000 --- a/demos/qt3d/cubehouse/shaders/objectlineartexgen.frag +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -uniform sampler2D texture; -varying highp vec4 texCoord; -varying float facingProjector; - -void main(void) -{ - vec2 clampedCoords = texCoord.st; - clampedCoords = clamp(texCoord.st, vec2(0.0), vec2(1.0)); - vec4 textureColor = texture2D(texture, clampedCoords); - gl_FragColor = vec4(textureColor.rgb * facingProjector, 1.0); -}; diff --git a/demos/qt3d/cubehouse/shaders/objectlineartexgen.vert b/demos/qt3d/cubehouse/shaders/objectlineartexgen.vert deleted file mode 100644 index b78b938c..00000000 --- a/demos/qt3d/cubehouse/shaders/objectlineartexgen.vert +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -attribute highp vec4 qt_Vertex; -attribute highp vec4 qt_Normal; -uniform highp mat3 qt_NormalMatrix; -uniform highp mat4 qt_ModelViewProjectionMatrix; - -uniform highp mat4 objectLinearTexgenMatrix; -uniform highp vec4 projectorDirection; - -varying highp vec4 texCoord; -varying float facingProjector; - -void main(void) -{ - texCoord = objectLinearTexgenMatrix * qt_Vertex; - vec4 normal = normalize(vec4(qt_NormalMatrix * vec3(qt_Vertex), qt_Vertex.w)); - // We're facing the projector if the normal and projector direction - // are pointing in opposite directions, i.e. if their dot product - // is negative. - facingProjector = -dot(normalize(normal), normalize(projectorDirection)); - facingProjector = clamp(facingProjector, 0.0, 1.0); - gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex; -}; diff --git a/demos/qt3d/pageflip/gradient.png b/demos/qt3d/pageflip/gradient.png Binary files differdeleted file mode 100644 index ddadf69d..00000000 --- a/demos/qt3d/pageflip/gradient.png +++ /dev/null diff --git a/demos/qt3d/pageflip/pageflip.cpp b/demos/qt3d/pageflip/pageflip.cpp deleted file mode 100644 index a6e1f232..00000000 --- a/demos/qt3d/pageflip/pageflip.cpp +++ /dev/null @@ -1,388 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QApplication> -#include <QTimer> -#include <QMouseEvent> -#include "qglpainter.h" -#include "qglabstracteffect.h" -#include "qgltexture2d.h" -#include "qglshaderprogrameffect.h" -#include <QtOpenGL/qglshaderprogram.h> -#include "pageflipmath_p.h" - -class PageFlipGradientEffect; - -class PageFlipView : public QGLWidget -{ - Q_OBJECT -public: - PageFlipView(QWidget *parent = 0); - ~PageFlipView(); - - void setBlend(bool value) { blend = value; } - void setVertical(bool value) { vertical = value; } - -protected: - void resizeGL(int width, int height); - void initializeGL(); - void paintGL(); - void mousePressEvent(QMouseEvent *e); - -private slots: - void animate(); - -private: - bool blend; - bool vertical; - - qreal posn; // Position within the animation - 0...1 - QSize pageSize; // Size of a page within the window. - - QRect pageRect1; - QRect pageRect2; - - QColor colors[4]; - int colorIndex; - - QGLTexture2D textures[4]; - - QGLTexture2D gradientTexture; - - PageFlipMath pageFlipMath; - - PageFlipGradientEffect *effect; - - void setAlphaValue(QGLPainter *painter, GLfloat value); -}; - -class PageFlipGradientEffect : public QGLShaderProgramEffect -{ -public: - PageFlipGradientEffect(); - ~PageFlipGradientEffect(); - - void setAlphaValue(GLfloat value); -}; - -PageFlipView::PageFlipView(QWidget *parent) - : QGLWidget(parent) -{ - posn = 0.0f; - blend = false; - vertical = false; - - colors[0] = QColor(0, 192, 192, 255); - colors[1] = QColor(192, 0, 0, 255); - colors[2] = QColor(192, 192, 0, 255); - colors[3] = QColor(128, 128, 0, 255); - colorIndex = 0; - - QTimer *timer = new QTimer(this); - connect(timer, SIGNAL(timeout()), this, SLOT(animate())); - timer->start(40); - - effect = new PageFlipGradientEffect(); -} - -PageFlipView::~PageFlipView() -{ - delete effect; -} - -void PageFlipView::resizeGL(int width, int height) -{ - glViewport(0, 0, width, height); -} - -void PageFlipView::initializeGL() -{ - QGLPainter painter(this); - - //QSize size = rect().size(); - //int width = size.width() / 3; - //int height = (int)(width * 1.414f); - int width = 227; - int height = 320; - pageSize = QSize(width, height); - - textures[0].setImage(QImage(QLatin1String(":/qqpage1.png"))); - textures[1].setImage(QImage(QLatin1String(":/qqpage2.png"))); - textures[2].setImage(QImage(QLatin1String(":/qqpage3.png"))); - textures[3].setImage(QImage(QLatin1String(":/qqpage4.png"))); - - gradientTexture.setImage(QImage(QLatin1String(":/gradient.png"))); - - if (painter.hasOpenGLFeature(QOpenGLFunctions::BlendColor)) - painter.glBlendColor(0, 0, 0, 0); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - if (painter.hasOpenGLFeature(QOpenGLFunctions::BlendEquation)) - painter.glBlendEquation(GL_FUNC_ADD); - else if (painter.hasOpenGLFeature(QOpenGLFunctions::BlendEquationSeparate)) - painter.glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD); - - glEnable(GL_BLEND); - - if (vertical) - pageFlipMath.setStartCorner(PageFlipMath::VerticalBottomRight); - else - pageFlipMath.setStartCorner(PageFlipMath::BottomRight); -} - -void PageFlipView::paintGL() -{ - QGLPainter painter(this); - - QRect rect = this->rect(); - int midx = rect.width() / 2; - int topy = (rect.height() - pageSize.height()) / 2; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - QMatrix4x4 projm; - projm.ortho(rect); - painter.projectionMatrix() = projm; - painter.modelViewMatrix().setToIdentity(); - - if (vertical) { - pageRect2 = QRect(QPoint(midx - pageSize.width() / 2, topy), pageSize); - pageRect1 = QRect(QPoint(pageRect2.x() - pageSize.width(), topy), pageSize); - } else { - pageRect1 = QRect(QPoint(midx - pageSize.width(), topy), pageSize); - pageRect2 = QRect(QPoint(midx, topy), pageSize); - } - pageFlipMath.setPageRect(pageRect2); - pageFlipMath.setShowPageReverse(false); - pageFlipMath.compute(posn); - - QGLAttributeValue positions - (2, GL_FLOAT, pageFlipMath.stride(), pageFlipMath.vertexArray()); - QGLAttributeValue texCoords - (2, GL_FLOAT, pageFlipMath.stride(), pageFlipMath.vertexArray() + 2); - QGLAttributeValue gradientCoords - (1, GL_FLOAT, pageFlipMath.stride(), pageFlipMath.vertexArray() + 4); - - if (painter.isFixedFunction()) - painter.setStandardEffect(QGL::FlatReplaceTexture2D); - else - painter.setUserEffect(effect); - painter.setColor(colors[colorIndex]); - painter.glActiveTexture(GL_TEXTURE0); - textures[colorIndex].bind(); - if (!painter.isFixedFunction()) { - painter.glActiveTexture(GL_TEXTURE1); - gradientTexture.bind(); - } - painter.clearAttributes(); - painter.setVertexAttribute(QGL::Position, positions); - painter.setVertexAttribute(QGL::TextureCoord0, texCoords); - painter.setVertexAttribute(QGL::CustomVertex0, gradientCoords); - setAlphaValue(&painter, 1.0f); - painter.update(); - pageFlipMath.drawPage(0); - - painter.setColor(colors[(colorIndex + 1) % 4]); - painter.glActiveTexture(GL_TEXTURE0); - textures[(colorIndex + 1) % 4].bind(); - setAlphaValue(&painter, 1.0f); - painter.update(); - pageFlipMath.drawPage(1); - - painter.setColor(colors[(colorIndex + 2) % 4]); - if (!pageFlipMath.showPageReverse()) - textures[(colorIndex + 2) % 4].bind(); - if (blend) - setAlphaValue(&painter, 0.75f); - else - setAlphaValue(&painter, 1.0f); - painter.update(); - pageFlipMath.drawPage(2); - - painter.setColor(colors[(colorIndex + 3) % 4]); - textures[(colorIndex + 3) % 4].bind(); - setAlphaValue(&painter, 1.0f); - painter.update(); - pageFlipMath.drawPage(3); - - glBindTexture(GL_TEXTURE_2D, 0); - painter.glActiveTexture(GL_TEXTURE1); - glBindTexture(GL_TEXTURE_2D, 0); - - painter.setStandardEffect(QGL::FlatColor); - painter.clearAttributes(); - painter.setVertexAttribute(QGL::Position, positions); - painter.setVertexAttribute(QGL::TextureCoord0, texCoords); - painter.setVertexAttribute(QGL::CustomVertex0, gradientCoords); - painter.setColor(QColor(0, 0, 0, 255)); - painter.update(); - pageFlipMath.drawOutline(2); -} - -void PageFlipView::mousePressEvent(QMouseEvent *e) -{ - int x = e->x(); - int y = e->y(); - bool changed = true; - if (vertical) { - if (x >= pageRect2.x() && x < (pageRect2.x() + 20) && - y >= pageRect2.y() && y < (pageRect2.y() + 20)) - pageFlipMath.setStartCorner(PageFlipMath::VerticalTopLeft); - else if (x >= pageRect2.x() && x < (pageRect2.x() + 20) && - y >= (pageRect2.bottom() - 20) && y <= pageRect2.bottom()) - pageFlipMath.setStartCorner(PageFlipMath::VerticalBottomLeft); - else if (x >= (pageRect2.right() - 20) && x <= pageRect2.right() && - y >= pageRect2.y() && y < (pageRect2.y() + 20)) - pageFlipMath.setStartCorner(PageFlipMath::VerticalTopRight); - else if (x >= (pageRect2.right() - 20) && x <= pageRect2.right() && - y >= (pageRect2.bottom() - 20) && y <= pageRect2.bottom()) - pageFlipMath.setStartCorner(PageFlipMath::VerticalBottomRight); - else - changed = false; - } else { - if (x >= pageRect1.x() && x < (pageRect1.x() + 20) && - y >= pageRect1.y() && y < (pageRect1.y() + 20)) - pageFlipMath.setStartCorner(PageFlipMath::TopLeft); - else if (x >= pageRect1.x() && x < (pageRect1.x() + 20) && - y >= (pageRect1.bottom() - 20) && y <= pageRect1.bottom()) - pageFlipMath.setStartCorner(PageFlipMath::BottomLeft); - else if (x >= pageRect2.x() && x < (pageRect2.x() + 20) && - y >= pageRect2.y() && y < (pageRect2.y() + 20)) - pageFlipMath.setStartCorner(PageFlipMath::TopLeftOnePage); - else if (x >= pageRect2.x() && x < (pageRect2.x() + 20) && - y >= (pageRect2.bottom() - 20) && y <= pageRect2.bottom()) - pageFlipMath.setStartCorner(PageFlipMath::BottomLeftOnePage); - else if (x >= (pageRect2.right() - 20) && x <= pageRect2.right() && - y >= pageRect2.y() && y < (pageRect2.y() + 20)) - pageFlipMath.setStartCorner(PageFlipMath::TopRight); - else if (x >= (pageRect2.right() - 20) && x <= pageRect2.right() && - y >= (pageRect2.bottom() - 20) && y <= pageRect2.bottom()) - pageFlipMath.setStartCorner(PageFlipMath::BottomRight); - else - changed = false; - } - if (changed) - posn = 0.0f; - QGLWidget::mousePressEvent(e); -} - -void PageFlipView::animate() -{ - posn += 0.04f; - if (posn >= 1.0f) { - posn = 0.0f; - colorIndex = (colorIndex + 2) % 4; - } - updateGL(); -} - -void PageFlipView::setAlphaValue(QGLPainter *painter, GLfloat value) -{ - if (!painter->isFixedFunction()) - effect->setAlphaValue(value); -} - -static char const gradientVertexShader[] = - "attribute highp vec4 qt_Vertex;\n" - "attribute highp vec4 qt_MultiTexCoord0;\n" - "attribute highp float qt_Custom0;\n" - "uniform mediump mat4 qt_ModelViewProjectionMatrix;\n" - "varying highp vec4 qt_TexCoord0;\n" - "varying highp float qGradCtrl;\n" - "void main(void)\n" - "{\n" - " gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;\n" - " qt_TexCoord0 = qt_MultiTexCoord0;\n" - " qGradCtrl = qt_Custom0;\n" - "}\n"; - -static char const gradientFragmentShader[] = - "uniform sampler2D qt_Texture0;\n" - "uniform sampler2D qt_Texture1;\n" - "uniform mediump float alphaValue;\n" - "varying highp vec4 qt_TexCoord0;\n" - "varying highp float qGradCtrl;\n" - "void main(void)\n" - "{\n" - " mediump vec4 col = texture2D(qt_Texture0, qt_TexCoord0.st);\n" - " mediump vec4 gradcol = texture2D(qt_Texture1, vec2(qGradCtrl, qt_TexCoord0.t));\n" - " gl_FragColor = vec4((col * gradcol).xyz, alphaValue);\n" - "}\n"; - -PageFlipGradientEffect::PageFlipGradientEffect() -{ - setVertexShader(gradientVertexShader); - setFragmentShader(gradientFragmentShader); -} - -PageFlipGradientEffect::~PageFlipGradientEffect() -{ -} - -void PageFlipGradientEffect::setAlphaValue(GLfloat value) -{ - program()->setUniformValue("alphaValue", value); -} - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - PageFlipView view; - if (QApplication::arguments().contains(QLatin1String("-blend"))) - view.setBlend(true); - if (QApplication::arguments().contains(QLatin1String("-vertical"))) - view.setVertical(true); - - -#ifdef Q_OS_SYMBIAN - view.setAttribute(Qt::WA_LockLandscapeOrientation, true); - view.showFullScreen(); -#else - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - view.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - view.showFullScreen(); - else - view.show(); -#endif - - return app.exec(); -} - -#include "pageflip.moc" diff --git a/demos/qt3d/pageflip/pageflip.desktop b/demos/qt3d/pageflip/pageflip.desktop deleted file mode 100644 index 4ee69dad..00000000 --- a/demos/qt3d/pageflip/pageflip.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Pageflip -Icon=/usr/share/icons/hicolor/80x80/apps/qt3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/pageflip -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_pageflip diff --git a/demos/qt3d/pageflip/pageflip.pro b/demos/qt3d/pageflip/pageflip.pro deleted file mode 100644 index cdcfd4f9..00000000 --- a/demos/qt3d/pageflip/pageflip.pro +++ /dev/null @@ -1,17 +0,0 @@ -TEMPLATE = app -TARGET = pageflip -CONFIG += qt warn_on - -CONFIG += qt3d_deploy_pkg -include(../../../pkg.pri) - -SOURCES = pageflip.cpp pageflipmath.cpp -HEADERS = pageflipmath_p.h -RESOURCES = pageflip.qrc - -OTHER_FILES += \ - pageflip.rc \ - pageflip.desktop - -RC_FILE = pageflip.rc - diff --git a/demos/qt3d/pageflip/pageflip.qrc b/demos/qt3d/pageflip/pageflip.qrc deleted file mode 100644 index 1584add5..00000000 --- a/demos/qt3d/pageflip/pageflip.qrc +++ /dev/null @@ -1,9 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>qqpage1.png</file> - <file>qqpage2.png</file> - <file>qqpage3.png</file> - <file>qqpage4.png</file> - <file>gradient.png</file> -</qresource> -</RCC> diff --git a/demos/qt3d/pageflip/pageflip.rc b/demos/qt3d/pageflip/pageflip.rc deleted file mode 100644 index b40ecdc1..00000000 --- a/demos/qt3d/pageflip/pageflip.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qt3d.ico" diff --git a/demos/qt3d/pageflip/pageflipmath.cpp b/demos/qt3d/pageflip/pageflipmath.cpp deleted file mode 100644 index afb66dbc..00000000 --- a/demos/qt3d/pageflip/pageflipmath.cpp +++ /dev/null @@ -1,592 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "pageflipmath_p.h" -#include <QtCore/qmath.h> - -QT_BEGIN_NAMESPACE - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -PageFlipMath::PageFlipMath() -{ - m_showPageReverse = false; - m_startCorner = BottomRight; - - qMemSet(vertices, 0, sizeof(vertices)); - qMemSet(pageCount, 0, sizeof(pageCount)); -} - -PageFlipMath::~PageFlipMath() -{ -} - -void PageFlipMath::drawPage(int page) const -{ - if (page < 0 || page >= 4 || pageCount[page] == 0) - return; - glDrawArrays(GL_TRIANGLE_FAN, page * 5, pageCount[page]); -} - -void PageFlipMath::drawOutline(int page) const -{ - if (page < 0 || page >= 4 || pageCount[page] == 0) - return; - glDrawArrays(GL_LINE_LOOP, page * 5, pageCount[page]); -} - -void PageFlipMath::compute(qreal t) -{ - int page, vertex; - - // Compute the relative vertices for position t. - if (m_startCorner < VerticalBottomRight) - flip(m_pageRect.width() - 1, m_pageRect.height() - 1, t); - else - flip(m_pageRect.height() - 1, m_pageRect.width() - 1, t); - - // Deal with starting corner issues by swapping co-ordinates. - switch (m_startCorner) { - - case BottomRight: break; - - case TopRight: - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - vertices[page][vertex][1] - = m_pageRect.height() - 1 - vertices[page][vertex][1]; - vertices[page][vertex][3] - = 1.0f - vertices[page][vertex][3]; - } - } - break; - - case BottomLeft: - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - vertices[page][vertex][0] - = m_pageRect.width() - 1 - vertices[page][vertex][0]; - vertices[page][vertex][0] -= m_pageRect.width(); - vertices[page][vertex][2] - = 1.0f - vertices[page][vertex][2]; - } - } - break; - - case TopLeft: - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - vertices[page][vertex][0] - = m_pageRect.width() - 1 - vertices[page][vertex][0]; - vertices[page][vertex][0] -= m_pageRect.width(); - vertices[page][vertex][1] - = m_pageRect.height() - 1 - vertices[page][vertex][1]; - vertices[page][vertex][2] - = 1.0f - vertices[page][vertex][2]; - vertices[page][vertex][3] - = 1.0f - vertices[page][vertex][3]; - } - } - break; - - case BottomLeftOnePage: - for (page = 1; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - vertices[page][vertex][0] - = m_pageRect.width() - 1 - vertices[page][vertex][0]; - vertices[page][vertex][2] - = 1.0f - vertices[page][vertex][2]; - } - } - break; - - case TopLeftOnePage: - for (page = 1; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - vertices[page][vertex][0] - = m_pageRect.width() - 1 - vertices[page][vertex][0]; - vertices[page][vertex][1] - = m_pageRect.height() - 1 - vertices[page][vertex][1]; - vertices[page][vertex][2] - = 1.0f - vertices[page][vertex][2]; - vertices[page][vertex][3] - = 1.0f - vertices[page][vertex][3]; - } - } - break; - - case VerticalBottomRight: - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - qSwap(vertices[page][vertex][0], vertices[page][vertex][1]); - vertices[page][vertex][0] - = m_pageRect.width() - 1 - vertices[page][vertex][0]; - vertices[page][vertex][1] - = m_pageRect.height() - 1 - vertices[page][vertex][1]; - qSwap(vertices[page][vertex][2], vertices[page][vertex][3]); - vertices[page][vertex][2] - = 1.0f - vertices[page][vertex][2]; - vertices[page][vertex][3] - = 1.0f - vertices[page][vertex][3]; - } - } - break; - - case VerticalTopRight: - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - qSwap(vertices[page][vertex][0], vertices[page][vertex][1]); - vertices[page][vertex][0] - = m_pageRect.width() - 1 - vertices[page][vertex][0]; - qSwap(vertices[page][vertex][2], vertices[page][vertex][3]); - vertices[page][vertex][2] - = 1.0f - vertices[page][vertex][2]; - } - } - break; - - case VerticalBottomLeft: - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - qSwap(vertices[page][vertex][0], vertices[page][vertex][1]); - vertices[page][vertex][1] - = m_pageRect.height() - 1 - vertices[page][vertex][1]; - qSwap(vertices[page][vertex][2], vertices[page][vertex][3]); - vertices[page][vertex][3] - = 1.0f - vertices[page][vertex][3]; - } - } - break; - - case VerticalTopLeft: - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - qSwap(vertices[page][vertex][0], vertices[page][vertex][1]); - qSwap(vertices[page][vertex][2], vertices[page][vertex][3]); - } - } - break; - } - - // Adjust the vertices for the final rectangle position. - for (page = 0; page < 4; ++page) { - for (vertex = 0; vertex < pageCount[page]; ++vertex) { - vertices[page][vertex][0] += m_pageRect.x(); - vertices[page][vertex][1] - = m_pageRect.y() + - (m_pageRect.height() - 1 - vertices[page][vertex][1]); - } - } - - // Flip the x texture co-ordinates for page 2 if showing the page reverse. - if (m_showPageReverse) { - if (m_startCorner < VerticalBottomRight) { - for (int vertex = 0; vertex < pageCount[2]; ++vertex) - vertices[2][vertex][2] = 1.0f - vertices[2][vertex][2]; - } else { - for (int vertex = 0; vertex < pageCount[2]; ++vertex) - vertices[2][vertex][3] = 1.0f - vertices[2][vertex][3]; - } - } -} - -// Page 1 is the reference page and extends from the bottom-left -// corner at (0, 0) to the top-right corner at (pageWidth, pageHeight). -// The flip starts at the bottom-right corner and proceeds leftwards -// across the page. All other flip directions and starting corners -// can be derived from this basic reference flip animation. -void PageFlipMath::flip(qreal pageWidth, qreal pageHeight, qreal t) -{ - // Handle the simple start and end position cases first. - if (t <= 0.0f) { - // Starting position: pages 0 and 1 in their rest states - // and pages 2 and 3 not visible. - pageCount[0] = 4; - pageCount[1] = 4; - pageCount[2] = 0; - pageCount[3] = 0; - - vertices[0][0][0] = -pageWidth; // corner 0 at (-pageWidth, 0) - vertices[0][0][1] = 0.0f; - vertices[0][0][2] = 0.0f; // texture co-ordinate - vertices[0][0][3] = 0.0f; - vertices[0][0][4] = 0.0f; // gradient control - - vertices[0][1][0] = 0.0f; // corner 1 at (0, 0) - vertices[0][1][1] = 0.0f; - vertices[0][1][2] = 1.0f; - vertices[0][1][3] = 0.0f; - vertices[0][1][4] = 1.0f; // gradient along fold on the right - - vertices[0][2][0] = 0.0f; // corner 2 at (0, pageHeight) - vertices[0][2][1] = pageHeight; - vertices[0][2][2] = 1.0f; - vertices[0][2][3] = 1.0f; - vertices[0][2][4] = 1.0f; - - vertices[0][3][0] = -pageWidth; // corner 3 at (-pageWidth, pageHeight) - vertices[0][3][1] = pageHeight; - vertices[0][3][2] = 0.0f; - vertices[0][3][3] = 1.0f; - vertices[0][3][4] = 0.0f; - - vertices[1][0][0] = 0.0f; // corner 0 at (0, 0) - vertices[1][0][1] = 0.0f; - vertices[1][0][2] = 0.0f; // texture co-ordinate - vertices[1][0][3] = 0.0f; - vertices[1][0][4] = 1.0f; // gradient along fold on the left - - vertices[1][1][0] = pageWidth; // corner 1 at (pageWidth, 0) - vertices[1][1][1] = 0.0f; - vertices[1][1][2] = 1.0f; - vertices[1][1][3] = 0.0f; - vertices[1][1][4] = 0.0f; - - vertices[1][2][0] = pageWidth; // corner 2 at (pageWidth, pageHeight) - vertices[1][2][1] = pageHeight; - vertices[1][2][2] = 1.0f; - vertices[1][2][3] = 1.0f; - vertices[1][2][4] = 0.0f; - - vertices[1][3][0] = 0.0f; // corner 3 at (0, pageHeight) - vertices[1][3][1] = pageHeight; - vertices[1][3][2] = 0.0f; - vertices[1][3][3] = 1.0f; - vertices[1][3][4] = 1.0f; - return; - } else if (t >= 1.0f) { - // Ending position: pages 0 and 1 are not visible, but - // pages 2 and 3 are visible in the rest states. - pageCount[0] = 0; - pageCount[1] = 0; - pageCount[2] = 4; - pageCount[3] = 4; - - vertices[2][0][0] = -pageWidth; // corner 0 at (-pageWidth, 0) - vertices[2][0][1] = 0.0f; - vertices[2][0][2] = 0.0f; // texture co-ordinate - vertices[2][0][3] = 0.0f; - vertices[2][0][4] = 0.0f; // gradient control - - vertices[2][1][0] = 0.0f; // corner 1 at (0, 0) - vertices[2][1][1] = 0.0f; - vertices[2][1][2] = 1.0f; - vertices[2][1][3] = 0.0f; - vertices[2][1][4] = 1.0f; // gradient along fold on the right - - vertices[2][2][0] = 0.0f; // corner 2 at (0, pageHeight) - vertices[2][2][1] = pageHeight; - vertices[2][2][2] = 1.0f; - vertices[2][2][3] = 1.0f; - vertices[2][2][4] = 1.0f; - - vertices[2][3][0] = -pageWidth; // corner 3 at (-pageWidth, pageHeight) - vertices[2][3][1] = pageHeight; - vertices[2][3][2] = 0.0f; - vertices[2][3][3] = 1.0f; - vertices[2][3][4] = 0.0f; - - vertices[3][0][0] = 0.0f; // corner 0 at (0, 0) - vertices[3][0][1] = 0.0f; - vertices[3][0][2] = 0.0f; // texture co-ordinate - vertices[3][0][3] = 0.0f; - vertices[3][0][4] = 1.0f; // gradient along fold on the left - - vertices[3][1][0] = pageWidth; // corner 1 at (pageWidth, 0) - vertices[3][1][1] = 0.0f; - vertices[3][1][2] = 1.0f; - vertices[3][1][3] = 0.0f; - vertices[3][1][4] = 0.0f; - - vertices[3][2][0] = pageWidth; // corner 2 at (pageWidth, pageHeight) - vertices[3][2][1] = pageHeight; - vertices[3][2][2] = 1.0f; - vertices[3][2][3] = 1.0f; - vertices[3][2][4] = 0.0f; - - vertices[3][3][0] = 0.0f; // corner 3 at (0, pageHeight) - vertices[3][3][1] = pageHeight; - vertices[3][3][2] = 0.0f; - vertices[3][3][3] = 1.0f; - vertices[3][3][4] = 1.0f; - return; - } - - // Page 0 is the same for all other animation positions. - pageCount[0] = 4; - - vertices[0][0][0] = -pageWidth; // corner 0 at (-pageWidth, 0) - vertices[0][0][1] = 0.0f; - vertices[0][0][2] = 0.0f; // texture co-ordinate - vertices[0][0][3] = 0.0f; - vertices[0][0][4] = 0.0f; // gradient control - - vertices[0][1][0] = 0.0f; // corner 1 at (0, 0) - vertices[0][1][1] = 0.0f; - vertices[0][1][2] = 1.0f; - vertices[0][1][3] = 0.0f; - vertices[0][1][4] = 1.0f; // gradient along fold on the right - - vertices[0][2][0] = 0.0f; // corner 2 at (0, pageHeight) - vertices[0][2][1] = pageHeight; - vertices[0][2][2] = 1.0f; - vertices[0][2][3] = 1.0f; - vertices[0][2][4] = 1.0f; - - vertices[0][3][0] = -pageWidth; // corner 3 at (-pageWidth, pageHeight) - vertices[0][3][1] = pageHeight; - vertices[0][3][2] = 0.0f; - vertices[0][3][3] = 1.0f; - vertices[0][3][4] = 0.0f; - - // Get the angle of the "curling" dividing line to the bottom of the page. - // Basically: 45deg + (45deg * t) = 45deg * (1 + t), where t is between - // 0 and 1 but is neither 0 nor 1. - qreal angle = (M_PI / 4.0f) * (1.0f + t); - - // We need the cos and sin of both the angle and angle * 2. - qreal cosAngle = qCos(angle); - qreal sinAngle = qSin(angle); - qreal cosAngle2 = qCos(angle * 2.0f); - qreal sinAngle2 = qSin(angle * 2.0f); - - // Find the reference point. This is the point along the bottom of - // the page where the dividing line intersects the page bottom. - qreal refx = pageWidth * (1.0f - t); - qreal refy = 0.0f; - - // Distance from the reference point to the right side of the page. - qreal d = pageWidth - refx; - - // Determine the intersection of the dividing line with the - // top of the page. If the intersection is not on the page (k >= d), - // then we need to generate similar triangles. If the intersection is - // on the page (k < d), then we need to generate similar trapezoids. - qreal k = (pageHeight * cosAngle) / sinAngle; - if (k >= d) { - // Generate similar triangles. Find the intersection with - // the right-hand side of the page at x == pageWidth. - qreal intx = pageWidth; - qreal inty = refy + (d * sinAngle) / cosAngle; - - // Find the opposite triangle corner on the back page. - qreal oppx = refx + d * cosAngle2; - qreal oppy = refy + d * sinAngle2; - - // Generate vertices and texture co-ordinates for the back page. - qreal texa = 1.0f - (d * sinAngle) / (pageHeight * cosAngle); - qreal texb = d / pageWidth; - vertices[2][0][0] = intx; - vertices[2][0][1] = inty; - vertices[2][0][2] = 0.0f; - vertices[2][0][3] = 1.0f - texa; - vertices[2][0][4] = 1.0f; - - vertices[2][1][0] = oppx; - vertices[2][1][1] = oppy; - vertices[2][1][2] = 0.0f; - vertices[2][1][3] = 0.0f; - vertices[2][1][4] = 1.0f - texb; - - vertices[2][2][0] = refx; - vertices[2][2][1] = refy; - vertices[2][2][2] = texb; - vertices[2][2][3] = 0.0f; - vertices[2][2][4] = 1.0f; - - pageCount[2] = 3; - - // Generate vertices and texture co-ordinates for the next page. - vertices[3][0][0] = intx; - vertices[3][0][1] = inty; - vertices[3][0][2] = 1.0f; - vertices[3][0][3] = 1.0f - texa; - vertices[3][0][4] = 1.0f; - - vertices[3][1][0] = refx; - vertices[3][1][1] = refy; - vertices[3][1][2] = 1.0f - texb; - vertices[3][1][3] = 0.0f; - vertices[3][1][4] = 1.0f; - - vertices[3][2][0] = pageWidth; - vertices[3][2][1] = 0.0f; - vertices[3][2][2] = 1.0f; - vertices[3][2][3] = 0.0f; - vertices[3][2][4] = 1.0f - texb; - - pageCount[3] = 3; - - // Set page 1's vertices to clip off pixels we don't need to draw. - vertices[1][0][0] = 0.0f; - vertices[1][0][1] = 0.0f; - vertices[1][0][2] = 0.0f; - vertices[1][0][3] = 0.0f; - vertices[1][0][4] = 1.0f; - - vertices[1][1][0] = pageWidth - d; - vertices[1][1][1] = 0.0f; - vertices[1][1][2] = 1.0f - texb; - vertices[1][1][3] = 0.0f; - vertices[1][1][4] = texb; - - vertices[1][2][0] = intx; - vertices[1][2][1] = inty; - vertices[1][2][2] = 1.0f; - vertices[1][2][3] = 1.0f - texa; - vertices[1][2][4] = 0.0f; - - vertices[1][3][0] = pageWidth; - vertices[1][3][1] = pageHeight; - vertices[1][3][2] = 1.0f; - vertices[1][3][3] = 1.0f; - vertices[1][3][4] = 0.0f; - - vertices[1][4][0] = 0.0f; - vertices[1][4][1] = pageHeight; - vertices[1][4][2] = 0.0f; - vertices[1][4][3] = 1.0f; - vertices[1][4][4] = 1.0f; - - pageCount[1] = 5; - } else { - // Generate similar trapezoids. Find the intersection with - // the top of the page at y == pageHeight. - qreal intx = refx + (pageHeight * cosAngle) / sinAngle; - qreal inty = pageHeight; - - // Get the distance between the intersection and the right of the page. - qreal e = pageWidth - intx; - - // Find the opposite trapezoid corners to "ref" and "int". - qreal opprefx = refx + d * cosAngle2; - qreal opprefy = refy + d * sinAngle2; - qreal oppintx = intx + e * cosAngle2; - qreal oppinty = inty + e * sinAngle2; - - // Generate vertices and texture co-ordinates for the back page. - qreal texa = e / pageWidth; - qreal texb = d / pageWidth; - vertices[2][0][0] = intx; - vertices[2][0][1] = inty; - vertices[2][0][2] = texa; - vertices[2][0][3] = 1.0f; - vertices[2][0][4] = 1.0f; - - vertices[2][1][0] = oppintx; - vertices[2][1][1] = oppinty; - vertices[2][1][2] = 0.0f; - vertices[2][1][3] = 1.0f; - vertices[2][1][4] = 1.0f - texa; - - vertices[2][2][0] = opprefx; - vertices[2][2][1] = opprefy; - vertices[2][2][2] = 0.0f; - vertices[2][2][3] = 0.0f; - vertices[2][2][4] = 1.0f - texb; - - vertices[2][3][0] = refx; - vertices[2][3][1] = refy; - vertices[2][3][2] = texb; - vertices[2][3][3] = 0.0f; - vertices[2][3][4] = 1.0f; - - pageCount[2] = 4; - - // Generate vertices and texture co-ordinates for the next page. - vertices[3][0][0] = intx; - vertices[3][0][1] = inty; - vertices[3][0][2] = 1.0f - texa; - vertices[3][0][3] = 1.0f; - vertices[3][0][4] = 1.0f; - - vertices[3][1][0] = refx; - vertices[3][1][1] = refy; - vertices[3][1][2] = 1.0f - texb; - vertices[3][1][3] = 0.0f; - vertices[3][1][4] = 1.0f; - - vertices[3][2][0] = pageWidth; - vertices[3][2][1] = 0.0f; - vertices[3][2][2] = 1.0f; - vertices[3][2][3] = 0.0f; - vertices[3][2][4] = 1.0f - texb; - - vertices[3][3][0] = pageWidth; - vertices[3][3][1] = pageHeight; - vertices[3][3][2] = 1.0f; - vertices[3][3][3] = 1.0f; - vertices[3][3][4] = 1.0f - texa; - - pageCount[3] = 4; - - // Set page 1's vertices to clip off pixels we don't need to draw. - vertices[1][0][0] = 0.0f; - vertices[1][0][1] = 0.0f; - vertices[1][0][2] = 0.0f; - vertices[1][0][3] = 0.0f; - vertices[1][0][4] = 1.0f; - - vertices[1][1][0] = pageWidth - d; - vertices[1][1][1] = 0.0f; - vertices[1][1][2] = 1.0f - texb; - vertices[1][1][3] = 0.0f; - vertices[1][1][4] = texb; - - vertices[1][2][0] = pageWidth - e; - vertices[1][2][1] = pageHeight; - vertices[1][2][2] = 1.0f - texa; - vertices[1][2][3] = 1.0f; - vertices[1][2][4] = texa; - - vertices[1][3][0] = 0.0f; - vertices[1][3][1] = pageHeight; - vertices[1][3][2] = 0.0f; - vertices[1][3][3] = 1.0f; - vertices[1][3][4] = 1.0f; - - pageCount[1] = 4; - } -} - -QT_END_NAMESPACE diff --git a/demos/qt3d/pageflip/pageflipmath_p.h b/demos/qt3d/pageflip/pageflipmath_p.h deleted file mode 100644 index 21280b05..00000000 --- a/demos/qt3d/pageflip/pageflipmath_p.h +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PAGEFLIPMATH_P_H -#define PAGEFLIPMATH_P_H - -#include <QtOpenGL/qgl.h> - -QT_BEGIN_NAMESPACE - -class PageFlipMath -{ -public: - PageFlipMath(); - ~PageFlipMath(); - - enum StartCorner - { - BottomRight, - TopRight, - BottomLeft, - TopLeft, - BottomLeftOnePage, - TopLeftOnePage, - VerticalBottomRight, - VerticalTopRight, - VerticalBottomLeft, - VerticalTopLeft - }; - - // Corner to start flipping from. - StartCorner startCorner() const { return m_startCorner; } - void setStartCorner(StartCorner value) { m_startCorner = value; } - - // Rectangle to display the main page (usually the one on the right). - QRect pageRect() const { return m_pageRect; } - void setPageRect(const QRect& rect) { m_pageRect = rect; } - - // Show the reverse of the right-hand page on the back when - // flipping pages. That is, the user will essentially see - // the texture on the front of the page "through" it in reverse - // while it is being flipped. - bool showPageReverse() const { return m_showPageReverse; } - void setShowPageReverse(bool value) { m_showPageReverse = value; } - - // Get the vertex array pointer. - const GLfloat *vertexArray() const { return vertices[0][0]; } - - // Get the vertex array stride in bytes. - int stride() const { return 5 * sizeof(GLfloat); } - - // Draw a specific page. - void drawPage(int page) const; - - // Draw the outline of a page as a set of lines. - void drawOutline(int page) const; - - // Compute the frame at position t (0...1) in the animation. - void compute(qreal t); - -private: - StartCorner m_startCorner; - QRect m_pageRect; - bool m_showPageReverse; - - // Vertex array: up to 4 pages, with up to 5 vertices per page, - // and 5 components (2D position, 2D texcoord, 1D gradient control) - // per vertex. The gradient control value is interpolated between - // 0 and 1 - it is 1 at the fold point and 0 on the side of the page - // opposite the fold point. Shaders can use this to extract a color - // value from a gradient texture to blend with the page texture. - GLfloat vertices[4][5][5]; - - // Number of vertices for drawing the triangle fan for each page. - int pageCount[4]; - - void flip(qreal pageWidth, qreal pageHeight, qreal t); -}; - -QT_END_NAMESPACE - -#endif diff --git a/demos/qt3d/pageflip/qqpage1.png b/demos/qt3d/pageflip/qqpage1.png Binary files differdeleted file mode 100644 index 8abf37d9..00000000 --- a/demos/qt3d/pageflip/qqpage1.png +++ /dev/null diff --git a/demos/qt3d/pageflip/qqpage2.png b/demos/qt3d/pageflip/qqpage2.png Binary files differdeleted file mode 100644 index afd1b047..00000000 --- a/demos/qt3d/pageflip/qqpage2.png +++ /dev/null diff --git a/demos/qt3d/pageflip/qqpage3.png b/demos/qt3d/pageflip/qqpage3.png Binary files differdeleted file mode 100644 index fa2a85a0..00000000 --- a/demos/qt3d/pageflip/qqpage3.png +++ /dev/null diff --git a/demos/qt3d/pageflip/qqpage4.png b/demos/qt3d/pageflip/qqpage4.png Binary files differdeleted file mode 100644 index 0a6ba7b0..00000000 --- a/demos/qt3d/pageflip/qqpage4.png +++ /dev/null diff --git a/demos/qt3d/pageflip/qt3d.ico b/demos/qt3d/pageflip/qt3d.ico Binary files differdeleted file mode 100644 index e6442baf..00000000 --- a/demos/qt3d/pageflip/qt3d.ico +++ /dev/null diff --git a/demos/qt3d/pageflip/qt3d.png b/demos/qt3d/pageflip/qt3d.png Binary files differdeleted file mode 100644 index 21ec0176..00000000 --- a/demos/qt3d/pageflip/qt3d.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/buttons.cpp b/demos/qt3d/photobrowser3d/buttons.cpp deleted file mode 100644 index 16373e65..00000000 --- a/demos/qt3d/photobrowser3d/buttons.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "buttons.h" -#include "qglpainter.h" - -Buttons::Buttons(QObject *parent, QGLMaterialCollection *palette) - : QGLSceneNode(parent) -{ - setObjectName("Buttons"); - setPalette(palette); - setOption(QGLSceneNode::CullBoundingBox, false); - - m_left = new QGLSceneNode(this); - m_left->setObjectName("Left Button"); - m_right = new QGLSceneNode(this); - m_right->setObjectName("Right Button"); - - QGLMaterial *mat = new QGLMaterial; - QImage im(":/controls/arrows-left.png"); - m_size = im.size(); - QGLTexture2D *tex = new QGLTexture2D(mat); - tex->setImage(im); - mat->setTexture(tex); - - setMaterial(mat); - setEffect(QGL::FlatReplaceTexture2D); - - QGeometryData data; - QSize f = im.size() / 2; - QVector2D a(-f.width(), -f.height()); - QVector2D b(f.width(), -f.height()); - QVector2D c(f.width(), f.height()); - QVector2D d(-f.width(), f.height()); - QVector2D ta(0, 1); - QVector2D tb(1, 1); - QVector2D tc(1, 0); - QVector2D td(0, 0); - data.appendVertex(a, b, c, d); - data.appendTexCoord(ta, tb, tc, td); - data.appendIndices(0, 1, 2); - data.appendIndices(0, 2, 3); - - // the right hand arrow geometry is same as above, flipped X <-> -X - data.appendGeometry(data); - data.texCoord(4).setX(1); - data.texCoord(5).setX(0); - data.texCoord(6).setX(0); - data.texCoord(7).setX(1); - data.appendIndices(4, 5, 6); - data.appendIndices(4, 6, 7); - - m_left->setGeometry(data); - m_left->setCount(6); - m_left->setOption(QGLSceneNode::CullBoundingBox, false); - - m_right->setGeometry(data); - m_right->setStart(6); - m_right->setCount(6); - m_left->setOption(QGLSceneNode::CullBoundingBox, false); -} - -void Buttons::draw(QGLPainter *painter) -{ - painter->projectionMatrix().push(); - painter->modelViewMatrix().push(); - - QRect rect = painter->currentSurface()->viewportRect(); - QMatrix4x4 projm; - projm.ortho(rect); - painter->projectionMatrix() = projm; - painter->modelViewMatrix().setToIdentity(); - - if (m_left->position().isNull()) - { - QVector2D pos(m_size.width() / 2, rect.height() - m_size.height() / 2); - m_left->setPosition(pos); - pos.setX(rect.width() - (m_size.width() / 2)); - m_right->setPosition(pos); - } - - glDisable(GL_DEPTH_TEST); - - QGLSceneNode::draw(painter); - - glEnable(GL_DEPTH_TEST); - - painter->projectionMatrix().pop(); - painter->modelViewMatrix().pop(); -} - -void Buttons::clearPositions() -{ - m_left->setPosition(QVector3D()); - m_right->setPosition(QVector3D()); -} diff --git a/demos/qt3d/photobrowser3d/buttons.h b/demos/qt3d/photobrowser3d/buttons.h deleted file mode 100644 index 1d0155c2..00000000 --- a/demos/qt3d/photobrowser3d/buttons.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef BUTTONS_H -#define BUTTONS_H - -#include "qglscenenode.h" - -#include <Qt> - -class Buttons : public QGLSceneNode -{ - Q_OBJECT -public: - explicit Buttons(QObject *parent, QGLMaterialCollection *palette); - void draw(QGLPainter *painter); - void clearPositions(); -private: - QGLSceneNode *m_left; - QGLSceneNode *m_right; - QSize m_size; -}; - -#endif // BUTTONS_H diff --git a/demos/qt3d/photobrowser3d/bytereader.cpp b/demos/qt3d/photobrowser3d/bytereader.cpp deleted file mode 100644 index 317c3ab3..00000000 --- a/demos/qt3d/photobrowser3d/bytereader.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "bytereader.h" -#include "thumbnailableimage.h" - -#include <QByteArray> -#include <QThread> -#include <QImage> -#include <QImageReader> -#include <QUrl> -#include <QFile> -#include <QCoreApplication> - -ByteReader::ByteReader() -{ - m_stop = 0; - m_loading = 0; -} - -void ByteReader::loadFile(const ThumbnailableImage &image) -{ - if (!m_stop) - { - m_loading.ref(); - - // FIXME: actually handle remote files - QUrl url = image.url(); - QString fn = url.toLocalFile(); - int pos = fn.lastIndexOf('.'); - QString ext; - if (pos != -1) - ext = fn.mid(pos).toUpper(); - if (ext.isEmpty() || - !QImageReader::supportedImageFormats().contains(ext.toLocal8Bit())) - ext = QString(); - QImage im; - QFile f(fn); - QString errorMessage; - if (f.open(QIODevice::ReadOnly)) - { - QByteArray bytes; - while (!f.atEnd() & !m_stop) - { - bytes.append(f.read(1024)); - QCoreApplication::processEvents(); - } - im = ext.isEmpty() ? QImage::fromData(bytes) - : QImage::fromData(bytes, qPrintable(ext)); - } - else - { - errorMessage = tr("Could not read: %1").arg(url.toString()); - } - - QCoreApplication::processEvents(); - if (!m_stop) - { - if (im.isNull()) - { - im = QImage(QSize(128, 128), QImage::Format_ARGB32); - im.fill(qRgba(0, 30, 50, 64)); - QPainter ptr; - ptr.begin(&im); - ptr.setBackgroundMode(Qt::TransparentMode); - if (errorMessage.isEmpty()) - errorMessage = tr("Could not load: %1").arg(url.toString()); - ptr.setPen(QColor("orange")); - ptr.drawText(im.rect(), Qt::AlignCenter, errorMessage); - ptr.end(); - } - else - { - // TODO: Fix size limit - // This arbitrary size limit is really a debugging/development thing - // In a real program once you had loaded the full image, the photo- - // viewer would allow zooming and panning all around in the image - // so loading a 2896 pixel × 1944 pixel photo would make sense even - // on a small screen. For now work with fairly cruddy image quality. - // Probably the fix is to have a separate load call that re-fetches - // the full image on a zoom - QSize workSize(1024, 768); - Qt::TransformationMode mode = Qt::SmoothTransformation; - if (QThread::idealThreadCount() < 2) - { - workSize = workSize / 2; - mode = Qt::FastTransformation; - } - if (im.size().width() > workSize.width() || im.size().height() > workSize.height()) - im = im.scaled(workSize, Qt::KeepAspectRatio, mode); - } - - Q_ASSERT(!im.isNull()); - ThumbnailableImage result(image); - result.setData(im); - - // it would be nice to incur the cost of setThumbnailed() on the image - // at this point - in the background thread. Trouble is the atlas is - // constantly being accessed by the draw loop and to do anything about - // that would mean locking the GUI thread... - - Q_ASSERT(!result.isNull()); - - emit imageLoaded(result); - } - - m_loading.deref(); - } - - if (m_stop) - emit stopped(); - -} - -void ByteReader::stop() -{ - m_stop.ref(); - if (!m_loading) - emit stopped(); -} diff --git a/demos/qt3d/photobrowser3d/bytereader.h b/demos/qt3d/photobrowser3d/bytereader.h deleted file mode 100644 index c790b823..00000000 --- a/demos/qt3d/photobrowser3d/bytereader.h +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef BYTEREADER_H -#define BYTEREADER_H - -#include <QObject> - -QT_BEGIN_NAMESPACE -class QUrl; -QT_END_NAMESPACE - -class ThumbnailableImage; - -class ByteReader : public QObject -{ - Q_OBJECT -public: - ByteReader(); -signals: - void imageLoaded(const ThumbnailableImage &image); - void stopped(); -public slots: - void loadFile(const ThumbnailableImage &url); - void stop(); -private: - QAtomicInt m_stop; - QAtomicInt m_loading; -}; - -#endif // BYTEREADER_H diff --git a/demos/qt3d/photobrowser3d/filescanner.cpp b/demos/qt3d/photobrowser3d/filescanner.cpp deleted file mode 100644 index 01c4c19e..00000000 --- a/demos/qt3d/photobrowser3d/filescanner.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "filescanner.h" - -#include <QTime> -#include <QFileInfo> -#include <QStringList> -#include <QSet> -#include <QDir> -#include <QCoreApplication> -#include <QImageReader> -#include <QDebug> - -FileScanner::FileScanner(QObject *parent) - : QThread(parent) -{ - m_stop = 0; -} - -FileScanner::~FileScanner() -{ - // nothing to do here -} - -void FileScanner::stop() -{ - m_stop.ref(); -} - -void FileScanner::run() -{ - scan(); -} - -void FileScanner::scan() -{ - QStringList queue; - queue.append(m_url.path()); - QSet<QString> loopProtect; - int count = 0; - while (queue.size() > 0 && !m_stop && count < 300) - { - QString path = queue.takeFirst(); - QFileInfo u(path); - if (u.isSymLink()) - { - path = u.symLinkTarget(); - u = QFileInfo(path); - } - if (u.isDir()) - { - if (!loopProtect.contains(path)) - { - loopProtect.insert(path); - QDir dir(path); - QStringList entries = dir.entryList(); - QStringList::const_iterator it = entries.constBegin(); - for ( ; it != entries.constEnd(); ++it) - { - // ignore hidden files, system directories - if ((*it).startsWith(".")) - continue; - queue.append(dir.absoluteFilePath(*it)); - } - } - } - else - { - if (u.isFile() && u.isReadable()) - { - // small optimization: if the file has a suffix, check if that - // is known as an image format before sending to loader - QString ext = u.suffix().toLower(); - if (ext.isEmpty() || - QImageReader::supportedImageFormats().contains(ext.toLocal8Bit())) - { - QUrl url2; - url2.setScheme("file"); - url2.setPath(u.absoluteFilePath()); - emit imageUrl(url2); - ++count; - } - } - } - QCoreApplication::processEvents(); - QThread::yieldCurrentThread(); - } -} diff --git a/demos/qt3d/photobrowser3d/filescanner.h b/demos/qt3d/photobrowser3d/filescanner.h deleted file mode 100644 index 0431b54b..00000000 --- a/demos/qt3d/photobrowser3d/filescanner.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef FILESCANNER_H -#define FILESCANNER_H - -#include <QThread> -#include <QUrl> -#include <QDebug> - -class FileScanner : public QThread -{ - Q_OBJECT -public: - explicit FileScanner(QObject *parent = 0); - ~FileScanner(); - - // INVARIANT: never get called when the thread is running - void setBaseUrl(const QUrl &url) - { - Q_ASSERT(!isRunning()); - m_url = url; - } - -signals: - void imageUrl(const QUrl &url); - -public slots: - void stop(); - void scan(); - -protected: - void run(); - - QUrl m_url; - QAtomicInt m_stop; -private: - -}; - -#endif // FILESCANNER_H diff --git a/demos/qt3d/photobrowser3d/imagedisplay.cpp b/demos/qt3d/photobrowser3d/imagedisplay.cpp deleted file mode 100644 index a39cfa02..00000000 --- a/demos/qt3d/photobrowser3d/imagedisplay.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "imagedisplay.h" -#include "thumbnailableimage.h" -#include "thumbnailnode.h" -#include "thumbnaileffect.h" -#include "qglbuilder.h" -#include "qglcube.h" -#include "imagemanager.h" -#include "qatlas.h" -#include "qglshaderprogrameffect.h" -#include "qphotobrowser3dscene.h" -#include "photobrowser3dview.h" - -#include <QApplication> -#include <QChildEvent> -#include <QUrl> -#include <QImage> - -static inline QImage qMakeFrameImage() -{ - QImage frm(QSize(128, 128), QImage::Format_ARGB32); - frm.fill(qRgba(8, 8, 8, 255)); // dark grey frame - QPainter ptr; - ptr.begin(&frm); - QRect r(8, 8, 112, 112); - ptr.setBackgroundMode(Qt::TransparentMode); - ptr.fillRect(r, QColor(0, 30, 50, 64)); - ptr.setPen(QColor("orange")); - ptr.drawText(frm.rect(), Qt::AlignCenter, "Loading..."); - ptr.end(); - return frm; -} - -static inline void qAddPane(QSizeF size, QGeometryData *data) -{ - Q_ASSERT(data); - QSizeF f = size / 2.0f; - QVector2D a(-f.width(), -f.height()); - QVector2D b(f.width(), -f.height()); - QVector2D c(f.width(), f.height()); - QVector2D d(-f.width(), f.height()); - QVector2D ta(0.0f, 0.0f); - QVector2D tb(1.0f, 0.0f); - QVector2D tc(1.0f, 1.0f); - QVector2D td(0.0f, 1.0f); - int k = data->count(); - data->appendVertex(a, b, c, d); - data->appendTexCoord(ta, tb, tc, td); - data->appendIndices(k, k+1, k+2); - data->appendIndices(k, k+2, k+3); -} - -ImageDisplay::ImageDisplay(QObject *parent, QGLMaterialCollection *materials, qreal wallSize) - : QGLSceneNode(parent) - , m_wall(0) - , m_frames(0) - , m_currentWall(0) - , m_currentFrame(0) - , m_imageSetToDefault(false) - , m_count(0) - , m_size(wallSize) - , m_frameSize((m_size * 3.0f) / 4.0f) - , m_maxImages(500) - , m_frameLoadingMaterial(-1) -{ - // the real values will get poked in here by the atlas - m_atlasPlaceHolder.append(QVector2D(), QVector2D(), QVector2D(), QVector2D()); - - setObjectName("ImageDisplay"); - setPalette(materials); - - // the frames lie in Z = 0, the wall is set back and lies in - // the plane Z = (m_size / -4.0) - - // build the wall - qAddPane(QSize(m_size, m_size), &m_wallGeometry); - m_wall = new QGLSceneNode(this); - m_wall->setObjectName("Wall"); - m_wall->setPalette(materials); - m_currentWall = new QGLSceneNode(m_wall); - m_currentWall->setObjectName("wall 0"); - m_currentWall->setGeometry(m_wallGeometry); - m_currentWall->setCount(m_wallGeometry.indexCount()); - m_wall->setPosition(QVector3D(0.0f, 0.0f, m_size / -4.0)); - - // paint the wall - m_wall->setEffect(QGL::FlatReplaceTexture2D); - QGLMaterial *mat = new QGLMaterial(); - QGLTexture2D *tex = new QGLTexture2D(mat); - tex->setImage(QImage(":/res/images/girder.png")); - mat->setTexture(tex); - mat->setObjectName("girder material"); - m_wall->setMaterial(mat); - - // build the frames - qAddPane(QSize(m_frameSize, m_frameSize), &m_frameGeometry); - m_frameGeometry.appendTexCoordArray(m_atlasPlaceHolder, QGL::TextureCoord1); - m_frames = new QGLSceneNode(this); - m_frames->setObjectName("Frames"); - m_currentFrame = new ThumbnailNode(m_frames); - m_currentFrame->setObjectName("frame 0"); - m_currentFrame->setGeometry(m_frameGeometry); - m_currentFrame->setCount(m_frameGeometry.indexCount()); - - // use the frames geometry to put the atlas data into - QAtlas *atlas = QAtlas::instance(); - atlas->setGeometry(m_frameGeometry); - - // generally the frames use the thumbnail material & effect - m_effect = new ThumbnailEffect; - m_frames->setUserEffect(m_effect); - m_frames->setEffectEnabled(true); - m_frames->setMaterial(atlas->material()); - - // unless they're loading, in which case use the "loading" image - m_frameImage = qMakeFrameImage(); - mat = new QGLMaterial(); - tex = new QGLTexture2D(mat); - tex->setHorizontalWrap(QGL::Clamp); - tex->setImage(m_frameImage); - mat->setTexture(tex); - mat->setObjectName("loading image material - default"); - m_frameLoadingMaterial = materials->addMaterial(mat); - m_currentFrame->setMaterialIndex(m_frameLoadingMaterial); - - // make the frames pickable - PhotoBrowser3DView *view = qobject_cast<PhotoBrowser3DView*>(parent); - view->scene()->mainNode()->addNode(m_frames); - - m_imageSetToDefault = true; -} - -ImageDisplay::~ImageDisplay() -{ - delete m_effect; -} - -void ImageDisplay::addThumbnailNode(const QUrl &image) -{ - Q_ASSERT(QThread::currentThread() == thread()); - ImageManager *manager = qobject_cast<ImageManager*>(sender()); - if (!m_imageSetToDefault) - { - QVector3D p = m_currentFrame->position(); - p.setX(p.x() - m_size); - int start = m_frameGeometry.indexCount(); - qAddPane(QSize(m_frameSize, m_frameSize), &m_frameGeometry); - int count = m_frameGeometry.indexCount() - start; - m_frameGeometry.appendTexCoordArray(m_atlasPlaceHolder, QGL::TextureCoord1); - m_currentFrame = new ThumbnailNode(m_frames); - QString name = QLatin1String("frame %1"); - name.arg(m_count); - m_currentFrame->setObjectName(name); - m_currentFrame->setPosition(p); - m_currentFrame->setStart(start); - m_currentFrame->setCount(count); - m_currentFrame->setGeometry(m_frameGeometry); - m_currentFrame->setMaterialIndex(m_frameLoadingMaterial); - - QGLSceneNode *s = m_currentWall->clone(m_wall); - name = QLatin1String("wall %1"); - name.arg(m_count); - s->setObjectName(name); - p = s->position(); - p.setX(p.x() - m_size); - s->setPosition(p); - m_currentWall = s; - } - m_currentFrame->setUrl(image); - if (manager) - { - connect(m_currentFrame, SIGNAL(imageRequired(ThumbnailableImage)), - manager, SIGNAL(deployLoader(ThumbnailableImage))); - connect(manager, SIGNAL(imageReady(ThumbnailableImage)), - m_currentFrame, SLOT(setImage(ThumbnailableImage))); - } - PhotoBrowser3DView *view = qobject_cast<PhotoBrowser3DView*>(parent()); - Q_ASSERT(view); - connect(m_currentFrame, SIGNAL(nodeChanged()), view, SLOT(update())); - - m_imageSetToDefault = false; - emit framesChanged(); - ++m_count; -} diff --git a/demos/qt3d/photobrowser3d/imagedisplay.h b/demos/qt3d/photobrowser3d/imagedisplay.h deleted file mode 100644 index b0d7a56d..00000000 --- a/demos/qt3d/photobrowser3d/imagedisplay.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef IMAGEDISPLAY_H -#define IMAGEDISPLAY_H - -#include "qglscenenode.h" -#include "qglmaterialcollection.h" - -#include <QString> - -QT_BEGIN_NAMESPACE -class QGLBuilder; -class QGLTexture2D; -class QGLPainter; -QT_END_NAMESPACE - -class ThumbnailNode; - -class ImageDisplay : public QGLSceneNode -{ - Q_OBJECT -public: - ImageDisplay(QObject *parent, QGLMaterialCollection *materials, qreal wallSize = 4.0); - ~ImageDisplay(); - int maxImages() const { return m_maxImages; } - void setMaxImages(int max) { m_maxImages = max; } -signals: - void framesChanged(); -public slots: - void addThumbnailNode(const QUrl &url); -private: - QGLSceneNode *m_wall; - QGLSceneNode *m_frames; - QGLSceneNode *m_currentWall; - ThumbnailNode *m_currentFrame; - QGLAbstractEffect *m_effect; - bool m_imageSetToDefault; - int m_count; - qreal m_size; - qreal m_frameSize; - int m_maxImages; - QImage m_frameImage; - int m_frameLoadingMaterial; - QGeometryData m_frameGeometry; - QGeometryData m_wallGeometry; - QVector2DArray m_atlasPlaceHolder; -}; - -#endif // IMAGEDISPLAY_H diff --git a/demos/qt3d/photobrowser3d/imageloader.cpp b/demos/qt3d/photobrowser3d/imageloader.cpp deleted file mode 100644 index a8d58978..00000000 --- a/demos/qt3d/photobrowser3d/imageloader.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "imageloader.h" -#include "imagemanager.h" -#include "bytereader.h" - -#include <QFileInfo> -#include <QTime> -#include <QDir> -#include <QStringList> -#include <QPixmap> -#include <QPainter> -#include <QBuffer> -#include <QImageReader> -#include <QMutex> -#include <QMutexLocker> -#include <QTimer> - -ImageLoader::ImageLoader() -{ - m_stop = 0; -} - -ImageLoader::~ImageLoader() -{ - // nothing to do here -} - -ThumbnailableImage ImageLoader::image() const -{ - return m_image; -} - -void ImageLoader::setImage(const ThumbnailableImage &image) -{ - m_image = image; - if (!m_stop && isRunning()) - emit readRequired(image); -} - -void ImageLoader::stop() -{ - m_stop.ref(); - emit stopLoading(); -} - -void ImageLoader::queueInitialImage() -{ - emit readRequired(m_image); -} - -void ImageLoader::unusedTimeout() -{ - emit unused(); -} - -void ImageLoader::run() -{ - ByteReader reader; - connect(this, SIGNAL(readRequired(ThumbnailableImage)), - &reader, SLOT(loadFile(ThumbnailableImage))); - connect(&reader, SIGNAL(imageLoaded(ThumbnailableImage)), - this, SIGNAL(imageLoaded(ThumbnailableImage))); - - connect(this, SIGNAL(stopLoading()), &reader, SLOT(stop())); - connect(&reader, SIGNAL(stopped()), this, SLOT(quit())); - - QTimer timer; - connect(&timer, SIGNAL(timeout()), this, SLOT(unusedTimeout())); - timer.start(2 * 60 * 1000); - - if (!m_image.isNull()) - QTimer::singleShot(0, this, SLOT(queueInitialImage())); - - exec(); -} diff --git a/demos/qt3d/photobrowser3d/imageloader.h b/demos/qt3d/photobrowser3d/imageloader.h deleted file mode 100644 index f8f23ac4..00000000 --- a/demos/qt3d/photobrowser3d/imageloader.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef IMAGELOADER_H -#define IMAGELOADER_H - -#include <QThread> -#include <QUrl> -#include <QMutex> -#include <QAtomicInt> - -#include "thumbnailableimage.h" - -class ImageManager; -class ByteReader; - -class ImageLoader : public QThread -{ - Q_OBJECT -public: - ImageLoader(); - ~ImageLoader(); - ThumbnailableImage image() const; - void setImage(const ThumbnailableImage &image); -signals: - void imageLoaded(const ThumbnailableImage &image); - void stopLoading(); - void readRequired(const ThumbnailableImage &image); - void thumbnailRequired(const ThumbnailableImage &image); - void thumbnailDone(const ThumbnailableImage &image); - void unused(); -public slots: - void stop(); -protected: - void run(); -private slots: - void queueInitialImage(); - void unusedTimeout(); -private: - ThumbnailableImage m_image; - QAtomicInt m_stop; - ByteReader *m_reader; -}; - -#endif // IMAGELOADER_H diff --git a/demos/qt3d/photobrowser3d/imagemanager.cpp b/demos/qt3d/photobrowser3d/imagemanager.cpp deleted file mode 100644 index 6f2ec5bc..00000000 --- a/demos/qt3d/photobrowser3d/imagemanager.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "imagemanager.h" -#include "qatlas.h" -#include "filescanner.h" -#include "threadpool.h" - -#include <QTime> -#include <QTimer> -#include <QDir> - -ImageManager::ImageManager() -{ -} - -ImageManager::~ImageManager() -{ -} - -// INVARIANT: only ever called before the run() function is started -// therefore no need for synchronized url -void ImageManager::setImageBaseUrl(const QUrl &url) -{ - Q_ASSERT(!isRunning()); - m_url = url; -} - -/*! - Stop the running threads if any, then sit waiting in the event loop - for a quit call. -*/ -void ImageManager::stop() -{ - emit stopAll(); -} - -void ImageManager::scanForFiles() -{ - // TODO: In a real app there would be a way to detect new files arriving - // and trigger a rescan to pick these new files up. Here we just scan - // once and then destroy the scanner, to save on resources. - -#ifndef QT_USE_TEST_IMAGES - // TODO: If the amount of files is large and the app is quit early the - // scanner could still be going when the threadpool quits. For now - // assume its ok... - FileScanner *scanner = new FileScanner; - scanner->setBaseUrl(m_url); - connect(scanner, SIGNAL(imageUrl(QUrl)), this, SIGNAL(imageUrl(QUrl))); - connect(scanner, SIGNAL(finished()), scanner, SLOT(deleteLater())); - connect(this, SIGNAL(stopAll()), scanner, SLOT(stop())); - scanner->start(); -#else - QDir testImages(":/pictures"); - QStringList pics = testImages.entryList(); - for (int i = 0; i < pics.size(); ++i) - { - QUrl url; - url.setScheme("file"); - url.setPath(testImages.filePath(pics.at(i))); - emit imageUrl(url); - } - qDebug() << "== test images loaded =="; -#endif -} - -void ImageManager::quit() -{ - QThread::quit(); -} - -void ImageManager::run() -{ - if (m_url.scheme() != "file") - { - qWarning("URL scheme %s not yet supported", qPrintable(m_url.scheme())); - return; - } - - // execute once in the event loop below - QTimer::singleShot(0, this, SLOT(scanForFiles())); - -#ifndef QT_NO_THREADED_FILE_LOAD - ThreadPool pool; - - connect(this, SIGNAL(deployLoader(ThumbnailableImage)), - &pool, SLOT(deployLoader(ThumbnailableImage))); - - connect(this, SIGNAL(stopAll()), &pool, SLOT(stop())); - connect(&pool, SIGNAL(stopped()), this, SLOT(quit())); -#endif - - exec(); -} diff --git a/demos/qt3d/photobrowser3d/imagemanager.h b/demos/qt3d/photobrowser3d/imagemanager.h deleted file mode 100644 index 412f590a..00000000 --- a/demos/qt3d/photobrowser3d/imagemanager.h +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef IMAGEMANAGER_H -#define IMAGEMANAGER_H - -#include <QThread> -#include <QUrl> -#include <QImage> -#include <QMutex> - -#include "thumbnailableimage.h" - -class Launcher; - -class ImageManager : public QThread -{ - Q_OBJECT -public: - ImageManager(); - ~ImageManager(); - QUrl imageBaseUrl() const { return m_url; } - void setImageBaseUrl(const QUrl &url); -public slots: - void stop(); - void quit(); -signals: - void imageUrl(const QUrl &); - void imageReady(const ThumbnailableImage &); - void deployLoader(const ThumbnailableImage &); - void stopAll(); -protected: - void run(); -private slots: - void scanForFiles(); -private: - QUrl m_url; -}; - -#endif // IMAGEMANAGER_H diff --git a/demos/qt3d/photobrowser3d/images/P1000223.JPG b/demos/qt3d/photobrowser3d/images/P1000223.JPG Binary files differdeleted file mode 100644 index 48edfbc2..00000000 --- a/demos/qt3d/photobrowser3d/images/P1000223.JPG +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/P1000228.JPG b/demos/qt3d/photobrowser3d/images/P1000228.JPG Binary files differdeleted file mode 100644 index 2797b6df..00000000 --- a/demos/qt3d/photobrowser3d/images/P1000228.JPG +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/P1000472.JPG b/demos/qt3d/photobrowser3d/images/P1000472.JPG Binary files differdeleted file mode 100644 index 067afdd4..00000000 --- a/demos/qt3d/photobrowser3d/images/P1000472.JPG +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/arrows-left.png b/demos/qt3d/photobrowser3d/images/arrows-left.png Binary files differdeleted file mode 100644 index 791f2c6b..00000000 --- a/demos/qt3d/photobrowser3d/images/arrows-left.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/arrows.xcf b/demos/qt3d/photobrowser3d/images/arrows.xcf Binary files differdeleted file mode 100644 index 302bcd6e..00000000 --- a/demos/qt3d/photobrowser3d/images/arrows.xcf +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/default_sky_base.xcf b/demos/qt3d/photobrowser3d/images/default_sky_base.xcf Binary files differdeleted file mode 100644 index 050812f7..00000000 --- a/demos/qt3d/photobrowser3d/images/default_sky_base.xcf +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/default_sky_down.png b/demos/qt3d/photobrowser3d/images/default_sky_down.png Binary files differdeleted file mode 100644 index 685c28c4..00000000 --- a/demos/qt3d/photobrowser3d/images/default_sky_down.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/default_sky_east.png b/demos/qt3d/photobrowser3d/images/default_sky_east.png Binary files differdeleted file mode 100644 index f6463abf..00000000 --- a/demos/qt3d/photobrowser3d/images/default_sky_east.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/default_sky_north.png b/demos/qt3d/photobrowser3d/images/default_sky_north.png Binary files differdeleted file mode 100644 index 153b833c..00000000 --- a/demos/qt3d/photobrowser3d/images/default_sky_north.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/default_sky_south.png b/demos/qt3d/photobrowser3d/images/default_sky_south.png Binary files differdeleted file mode 100644 index b3b01321..00000000 --- a/demos/qt3d/photobrowser3d/images/default_sky_south.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/default_sky_up.png b/demos/qt3d/photobrowser3d/images/default_sky_up.png Binary files differdeleted file mode 100644 index 3d4d6233..00000000 --- a/demos/qt3d/photobrowser3d/images/default_sky_up.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/default_sky_west.png b/demos/qt3d/photobrowser3d/images/default_sky_west.png Binary files differdeleted file mode 100644 index 14325371..00000000 --- a/demos/qt3d/photobrowser3d/images/default_sky_west.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/images/girder.png b/demos/qt3d/photobrowser3d/images/girder.png Binary files differdeleted file mode 100644 index f9b6c4dc..00000000 --- a/demos/qt3d/photobrowser3d/images/girder.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/launcher.cpp b/demos/qt3d/photobrowser3d/launcher.cpp deleted file mode 100644 index 6d90636b..00000000 --- a/demos/qt3d/photobrowser3d/launcher.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "launcher.h" -#include "imageloader.h" -#include "imagemanager.h" - -#include <QSemaphore> -#include <QTime> -#include <QFileInfo> -#include <QDir> -#include <QStringList> -#include <QSet> -#include <QDebug> - -Launcher::Launcher(ImageManager *manager) - : m_manager(manager) - , m_stop(false) -{ - Q_ASSERT(m_manager); -} - -void Launcher::run() -{ - if (m_url.isEmpty()) - { - qWarning("Launcher::run - empty URL!"); - return; - } - if (m_url.scheme() != QLatin1String("file")) - { - qWarning("URL scheme %s not yet supported", qPrintable(m_url.scheme())); - return; - } - QStringList queue; - queue.append(m_url.path()); - QSet<QString> loopProtect; - while (queue.size() > 0 && !m_stop) - { - QString path = queue.takeFirst(); - QFileInfo u(path); - if (u.isSymLink()) - path = u.symLinkTarget(); - if (u.isDir()) - { - if (!loopProtect.contains(path)) - { - loopProtect.insert(path); - QDir dir(path); - QStringList entries = dir.entryList(); - QStringList::const_iterator it = entries.constBegin(); - for ( ; it != entries.constEnd(); ++it) - { - // ignore hidden files, system directories - if ((*it).startsWith(QLatin1Char('.'))) - continue; - queue.append(dir.absoluteFilePath(*it)); - } - } - } - else - { - if (u.isFile() && u.isReadable()) - { - // do no checking here for file extensions etc - just - // forward any readable file found under the pictures - // directory to the QImage loader, and let it sort out - // if the thing can be loaded as an image. - QUrl url2; - url2.setScheme(QLatin1String("file")); - url2.setPath(u.absoluteFilePath()); - m_manager->acquire(); - emit imageUrl(url2); - } - } - } -} diff --git a/demos/qt3d/photobrowser3d/main.cpp b/demos/qt3d/photobrowser3d/main.cpp deleted file mode 100644 index c26a9c54..00000000 --- a/demos/qt3d/photobrowser3d/main.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui/QApplication> -#include <QtCore/QThread> -#include "qgltexture2d.h" -#include "photobrowser3dview.h" - -int main(int argc, char *argv[]) -{ -#ifdef Q_OS_SYMBIAN - QGLTexture2D::setMaxImageSize(256,256); -#endif - - Q_INIT_RESOURCE(photobrowser3d); - - QApplication app(argc, argv); - - // for QSettings - QCoreApplication::setOrganizationName("Nokia"); - QCoreApplication::setOrganizationDomain("nokia.com"); - QCoreApplication::setApplicationName("photobrowser3d"); - - int result = 0; - { - PhotoBrowser3DView view; - -#ifdef Q_OS_SYMBIAN - view.setAttribute(Qt::WA_LockLandscapeOrientation, true); - view.showFullScreen(); -#else - if (view.stereoType() != QGLView::RedCyanAnaglyph) - view.camera()->setEyeSeparation(0.3f); - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - view.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - view.showFullScreen(); - else - view.show(); -#endif - - result = app.exec(); - } - return result; -} diff --git a/demos/qt3d/photobrowser3d/pancontroller.cpp b/demos/qt3d/photobrowser3d/pancontroller.cpp deleted file mode 100644 index 1ed5639b..00000000 --- a/demos/qt3d/photobrowser3d/pancontroller.cpp +++ /dev/null @@ -1,244 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "pancontroller.h" -#include "qglview.h" -#include "qglcamera.h" -#include "photobrowser3dview.h" - -#include <qmath.h> - -#include <QtGlobal> -#include <QTime> - -class PanControllerPrivate -{ -public: - PanControllerPrivate() - : speed(0.0f) - , angle(0.0f) - , arrowDirection(Qt::NoArrow) - , view(0) - , maxSpeed(4.0f) - , defaultDistance(0.0f) - , panDistance(0.0f) - , panViewAngle(M_PI / 4.0f) // 45 degrees in radians - , animating(false) - , elapsed(0.0f) - { - panTime.start(); - } - - void calculateValues(); - - qreal speed; - qreal angle; - Qt::ArrowType arrowDirection; - QGLView *view; - QTime panTime; - qreal maxSpeed; - qreal defaultDistance; - qreal panDistance; - qreal panViewAngle; - bool animating; - qreal elapsed; -}; - -PanController::PanController(QObject *parent) - : QObject(parent) - , d(new PanControllerPrivate) -{ - QGLView *v = qobject_cast<QGLView*>(parent); - if (v) - d->view = v; -} - -PanController::~PanController() -{ - delete d; -} - -qreal PanController::defaultDistance() const -{ - return d->defaultDistance; -} - -void PanController::setDefaultDistance(qreal dist) -{ - d->defaultDistance = dist; -} - -qreal PanController::panDistance() const -{ - return d->panDistance; -} - -void PanController::setPanDistance(qreal dist) -{ - d->panDistance = dist; -} - -qreal PanController::panViewAngle() const -{ - return d->panViewAngle; -} - -void PanController::setPanViewAngle(qreal angle) -{ - d->panViewAngle = angle; -} - -void PanController::setMaxSpeed(qreal maxSpeed) -{ - d->maxSpeed = maxSpeed; -} - -qreal PanController::maxSpeed() const -{ - return d->maxSpeed; -} - -void PanController::setSpeed(qreal speed) -{ - qreal t = d->panTime.restart(); - if (d->speed != speed) - { - d->speed = speed; - d->angle = speed * d->panViewAngle; - if (!qIsNull(d->speed)) - d->animating = true; - d->elapsed += t; - d->calculateValues(); - emit speedChanged(); - } -} - -qreal PanController::speed() const -{ - return d->speed; -} - -void PanController::pan() -{ - if (d->animating) - { - qreal t = d->panTime.restart(); - d->elapsed += t; - // dont recalculate every single time - // 30ms frame time == 33fps - more than enough - if (d->elapsed > 30) - d->calculateValues(); - - PhotoBrowser3DView *view = qobject_cast<PhotoBrowser3DView*>(parent()); - Q_ASSERT(view); - view->update(); - } -} - -void PanControllerPrivate::calculateValues() -{ - if (view && animating) - { - QGLCamera *cam = view->camera(); - Q_ASSERT(cam); - - QVector3D c = cam->center(); - QVector3D e = cam->eye(); - - if (qFuzzyIsNull(speed)) - { - c.setX(e.x()); - e.setZ(defaultDistance); - } - else - { - // as speed goes from 0 -> 1, eye moves closer to z=0 plane - e.setZ(defaultDistance - (speed * (defaultDistance - panDistance))); - - // the view angle is a direct function of the speed see setSpeed() above - // and as view angle increases we look further along the x-axis - qreal opp = (e.z() - c.z()) * qTan(angle); - - // velocity along the x axis is controlled by speed (a value from 0 -> 1 - // which is a modifier for the maxSpeed, a constant). the velocity gives - // us the incremental change in x for this unit time - qreal dx = (speed * maxSpeed * elapsed); - - if (arrowDirection == Qt::LeftArrow) - { - e.setX(e.x() - dx); - c.setX(e.x() - opp); - } - else if (arrowDirection == Qt::RightArrow) - { - e.setX(e.x() + dx); - c.setX(e.x() + opp); - } - } - cam->setEye(e); - cam->setCenter(c); - } - elapsed = 0; - if (qIsNull(speed)) - animating = false; -} - -Qt::ArrowType PanController::direction() const -{ - return d->arrowDirection; -} - -void PanController::setDirection(Qt::ArrowType arrow) -{ - Q_ASSERT(arrow == Qt::LeftArrow || arrow == Qt::RightArrow); - d->arrowDirection = arrow; -} - -QGLView *PanController::view() const -{ - return d->view; -} - -void PanController::setView(QGLView *view) -{ - d->view = view; -} - diff --git a/demos/qt3d/photobrowser3d/pancontroller.h b/demos/qt3d/photobrowser3d/pancontroller.h deleted file mode 100644 index b6e938ab..00000000 --- a/demos/qt3d/photobrowser3d/pancontroller.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PANCONTROLLER_H -#define PANCONTROLLER_H - -#include <QObject> -#include <Qt> - -QT_BEGIN_NAMESPACE -class QGLView; -QT_END_NAMESPACE - -class PanControllerPrivate; - -class PanController : public QObject -{ - Q_OBJECT - Q_PROPERTY(qreal speed READ speed WRITE setSpeed NOTIFY speedChanged) -public: - explicit PanController(QObject *parent = 0); - ~PanController(); - - qreal defaultDistance() const; - void setDefaultDistance(qreal d); - - qreal panDistance() const; - void setPanDistance(qreal d); - - qreal panViewAngle() const; - void setPanViewAngle(qreal angle); - - qreal maxSpeed() const; - void setMaxSpeed(qreal maxSpeed); - - qreal speed() const; - void setSpeed(qreal speed); - - Qt::ArrowType direction() const; - void setDirection(Qt::ArrowType arrow); - - QGLView *view() const; - void setView(QGLView *view); - - void pan(); - -signals: - void speedChanged(); - -private: - PanControllerPrivate *d; -}; - -#endif // PANCONTROLLER_H diff --git a/demos/qt3d/photobrowser3d/photobrowser.rc b/demos/qt3d/photobrowser3d/photobrowser.rc deleted file mode 100644 index b40ecdc1..00000000 --- a/demos/qt3d/photobrowser3d/photobrowser.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qt3d.ico" diff --git a/demos/qt3d/photobrowser3d/photobrowser3d.desktop b/demos/qt3d/photobrowser3d/photobrowser3d.desktop deleted file mode 100644 index 6c4085d5..00000000 --- a/demos/qt3d/photobrowser3d/photobrowser3d.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Photobrowser 3D -Icon=/usr/share/icons/hicolor/80x80/apps/qt3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/photobrowser3d -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_photobrowser3d diff --git a/demos/qt3d/photobrowser3d/photobrowser3d.pro b/demos/qt3d/photobrowser3d/photobrowser3d.pro deleted file mode 100644 index 8830bb88..00000000 --- a/demos/qt3d/photobrowser3d/photobrowser3d.pro +++ /dev/null @@ -1,71 +0,0 @@ -TEMPLATE = app -TARGET = photobrowser3d -CONFIG += qt warn_on - -CONFIG += qt3d_deploy_pkg -include(../../../pkg.pri) - -SOURCES += main.cpp\ - photobrowser3dview.cpp \ - imagedisplay.cpp \ - skybox.cpp \ - imagemanager.cpp \ - imageloader.cpp \ - qfocusadaptor.cpp \ - thumbnailableimage.cpp \ - qatlas.cpp \ - thumbnailnode.cpp \ - thumbnaileffect.cpp \ - filescanner.cpp \ - bytereader.cpp \ - threadpool.cpp \ - buttons.cpp \ - qphotobrowser3dscene.cpp \ - pancontroller.cpp - -HEADERS += photobrowser3dview.h \ - imagedisplay.h \ - skybox.h \ - imagemanager.h \ - imageloader.h \ - qfocusadaptor.h \ - thumbnailableimage.h \ - qatlas.h \ - thumbnailnode.h \ - thumbnaileffect.h \ - filescanner.h \ - bytereader.h \ - threadpool.h \ - buttons.h \ - qphotobrowser3dscene.h \ - pancontroller.h - -# Uncomment this line to force all file loading is done in the gui thread -# instead of a background thread - useful for debugging. -# DEFINES += QT_NO_THREADED_FILE_LOAD - -# Uncomment this to use test images instead of scanning the file-system for -# pictures. The test images are stored in in-memory resources "files". -# DEFINES += QT_USE_TEST_IMAGES - -RESOURCES += \ - photobrowser3d.qrc - -OTHER_FILES += \ - shaders/replace_texture.fsh \ - shaders/replace_texture.vsh - -symbian { -# symbian-abld|symbian-sbsv2 { -# # ro-section in photobrowser3d can exceed default allocated space, so move rw-section a little further -# QMAKE_LFLAGS.ARMCC += --rw-base 0x800000 -# QMAKE_LFLAGS.GCCE += -Tdata 0xC00000 -# } - TARGET.EPOCHEAPSIZE = 0x80000 0x8000000 -} - -OTHER_FILES += \ - photobrowser.rc \ - photobrowser3d.desktop - -RC_FILE = photobrowser.rc diff --git a/demos/qt3d/photobrowser3d/photobrowser3d.qrc b/demos/qt3d/photobrowser3d/photobrowser3d.qrc deleted file mode 100644 index 4d310bd8..00000000 --- a/demos/qt3d/photobrowser3d/photobrowser3d.qrc +++ /dev/null @@ -1,23 +0,0 @@ -<RCC> - <qresource prefix="/res"> - <file alias="down.png">images/default_sky_down.png</file> - <file alias="west.png">images/default_sky_east.png</file> - <file alias="north.png">images/default_sky_north.png</file> - <file alias="south.png">images/default_sky_south.png</file> - <file alias="up.png">images/default_sky_up.png</file> - <file alias="east.png">images/default_sky_west.png</file> - <file>images/girder.png</file> - </qresource> - <qresource prefix="/shaders"> - <file alias="replace_texture.fsh">shaders/replace_texture.fsh</file> - <file alias="replace_texture.vsh">shaders/replace_texture.vsh</file> - </qresource> - <qresource prefix="/pictures"> - <file alias="im1.jpg">images/P1000223.JPG</file> - <file alias="im2.jpg">images/P1000228.JPG</file> - <file alias="im3.jpg">images/P1000472.JPG</file> - </qresource> - <qresource prefix="/controls"> - <file alias="arrows-left.png">images/arrows-left.png</file> - </qresource> -</RCC> diff --git a/demos/qt3d/photobrowser3d/photobrowser3dview.cpp b/demos/qt3d/photobrowser3d/photobrowser3dview.cpp deleted file mode 100644 index 4227832b..00000000 --- a/demos/qt3d/photobrowser3d/photobrowser3dview.cpp +++ /dev/null @@ -1,446 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "photobrowser3dview.h" -#include "imagemanager.h" -#include "imagedisplay.h" -#include "skybox.h" -#include "qglpicknode.h" -#include "qfocusadaptor.h" -#include "thumbnailableimage.h" -#include "qatlas.h" -#include "filescanner.h" -#include "buttons.h" -#include "qphotobrowser3dscene.h" -#include "pancontroller.h" -#include "thumbnailnode.h" - -#include <QApplication> -#include <QDesktopWidget> -#include <QWheelEvent> -#include <QDir> -#include <QTimer> -#include <QTime> -#include <QStateMachine> -#include <QState> -#include <QFinalState> -#include <QSignalTransition> -#include <QPropertyAnimation> - -PhotoBrowser3DView::PhotoBrowser3DView() - : QGLView() - , m_scene(0) - , m_display(0) - , m_images(0) - , m_buttons(0) - , m_skybox(0) - , m_palette(new QGLMaterialCollection(this)) - , m_state(0) - , m_app(0) - , m_zoomed(0) - , m_browse(0) - , m_pan(0) - , m_fa(0) - , m_pc(0) - , m_pickableDirty(true) - , m_done(false) - , m_closing(false) -{ - setOption(QGLView::ObjectPicking, true); - // setOption(QGLView::ShowPicking, true); - //setOption(QGLView::CameraNavigation, false); - - qRegisterMetaType<ThumbnailableImage>("ThumbnailableImage"); - - QString path = ":/res"; - int ix = qApp->arguments().indexOf("--skybox"); - if (ix != -1) - { - if (qApp->arguments().size() > ix+1) - path = qApp->arguments().at(ix+1); - else - qWarning("Expected path/to/skybox/files after \"--skybox\" switch\n"); - } - - m_displaySize = 4.0; - m_scene = new QPhotoBrowser3DScene(this); - m_buttons = new Buttons(this, m_palette); - m_scene->mainNode()->addNode(m_buttons); - m_scene->setPickable(true); - m_skybox = new SkyBox(this, path); - m_display = new ImageDisplay(this, m_palette, m_displaySize); - - setupStates(); - - // make sure this only gets created in the GUI thread - QAtlas::instance(); - - QTimer::singleShot(0, this, SLOT(initialise())); -} - -PhotoBrowser3DView::~PhotoBrowser3DView() -{ - // nothing to be done here -} - -void PhotoBrowser3DView::setupStates() -{ - m_state = new QStateMachine(this); - m_app = new QState; - m_zoomed = new QState(m_app); - m_browse = new QState(m_app); - m_pan = new QState(m_app); - m_app->setInitialState(m_browse); - m_state->addState(m_app); - QFinalState *end_state = new QFinalState; - m_app->addTransition(this, SIGNAL(done()), end_state); - m_state->addState(end_state); - connect(m_state, SIGNAL(finished()), this, SLOT(close())); - - m_fa = new QFocusAdaptor(this); - m_browse->assignProperty(m_fa, "progress", 0.0); - m_zoomed->assignProperty(m_fa, "progress", 1.0); - - m_pc = new PanController(this); - m_pc->setMaxSpeed(m_displaySize / 1000.0f); - m_browse->assignProperty(m_pc, "speed", 0.0); - m_pan->assignProperty(m_pc, "speed", 1.0); - - m_state->setObjectName("StateMachine"); - m_app->setObjectName("Application"); - m_zoomed->setObjectName("Zoomed"); - m_browse->setObjectName("Browse"); - m_pan->setObjectName("Pan"); - end_state->setObjectName("EndState"); - - QSignalTransition *transition = m_browse->addTransition(this, SIGNAL(zoom()), m_zoomed); - QPropertyAnimation *a = new QPropertyAnimation(m_fa, "progress"); - a->setDuration(500); - a->setEasingCurve(QEasingCurve::OutQuad); - transition->addAnimation(a); - - transition = m_zoomed->addTransition(this, SIGNAL(zoom()), m_browse); - a = new QPropertyAnimation(m_fa, "progress"); - a->setDuration(500); - a->setEasingCurve(QEasingCurve::InQuad); - transition->addAnimation(a); - - transition = m_browse->addTransition(this, SIGNAL(pan()), m_pan); - a = new QPropertyAnimation(m_pc, "speed"); - a->setDuration(500); - a->setEasingCurve(QEasingCurve::OutQuad); - transition->addAnimation(a); - - transition = m_pan->addTransition(this, SIGNAL(pan()), m_browse); - a = new QPropertyAnimation(m_pc, "speed"); - a->setDuration(500); - a->setEasingCurve(QEasingCurve::InQuad); - transition->addAnimation(a); - - m_state->setInitialState(m_app); - m_state->start(); -} - -void PhotoBrowser3DView::initialise() -{ - QString path = QDir::home().absoluteFilePath("Pictures"); - int ix = qApp->arguments().indexOf("--pictures"); - if (ix != -1) - { - if (qApp->arguments().size() > ix+1) - path = qApp->arguments().at(ix+1); - else - qWarning("Expected /path/to/image/files after \"--pictures\" switch\n"); - } - - QUrl url; - url.setScheme("file"); - url.setPath(path); - - bool atLeastOneImageFound = false; - QFileInfo fi(path); - if (fi.exists() && fi.isDir()) - { - QDir pics(path); - QStringList entries = pics.entryList(QDir::Files); - for (int i = 0; i < entries.size() && !atLeastOneImageFound; ++i) - { - QImage im(pics.filePath(entries.at(i))); - if (!im.isNull()) - atLeastOneImageFound = true; - } - } - if (!atLeastOneImageFound) - { - qWarning("No pictures directory found at %s\n" - "using test images", qPrintable(path)); - - url.setPath(":/pictures"); - } - -#ifdef QT_NO_THREADED_FILE_LOAD - nonThreadedFileLoad(url); -#else - initialiseImageManager(url); -#endif -} - -void PhotoBrowser3DView::initialiseImageManager(const QUrl &url) -{ - m_images = new ImageManager; - - connect(m_images, SIGNAL(imageUrl(QUrl)), m_display, SLOT(addThumbnailNode(QUrl))); - connect(m_images, SIGNAL(finished()), this, SLOT(waitForExit())); - - connect(m_display, SIGNAL(framesChanged()), this, SLOT(pickableDirty())); - connect(m_display, SIGNAL(framesChanged()), this, SLOT(update())); - - m_images->setImageBaseUrl(url); - QThread::Priority p = QThread::idealThreadCount() < 2 ? - QThread::IdlePriority : QThread::NormalPriority; - m_images->start(p); -} - -void PhotoBrowser3DView::nonThreadedFileLoad(const QUrl &url) -{ -#if defined(QT_USE_TEST_IMAGES) - Q_UNUSED(url); - QDir testImages(":/pictures"); - QStringList pics = testImages.entryList(); - for (int i = 0; i < pics.size(); ++i) - { - QUrl url; - url.setScheme("file"); - url.setPath(testImages.filePath(pics.at(i))); - m_display->addThumbnailNode(url); - } - pickableDirty(); -#else - FileScanner *scanner = new FileScanner(this); - scanner->setBaseUrl(url); - QTimer::singleShot(0, scanner, SLOT(scan())); - connect(scanner, SIGNAL(imageUrl(QUrl)), m_display, SLOT(addThumbnailNode(QUrl))); -#endif -} - -void PhotoBrowser3DView::wheelEvent(QWheelEvent *e) -{ - e->accept(); - QVector3D viewVec = camera()->eye() - camera()->center(); - qreal zoomMag = viewVec.length(); - qreal inc = float(e->delta()) / 50.0f; - if (!qFuzzyIsNull(inc)) - { - zoomMag += inc; - if (zoomMag < 2.0f) - zoomMag = 2.0f; - QRay3D viewLine(camera()->center(), viewVec.normalized()); - camera()->setEye(viewLine.point(zoomMag)); - update(); - } -} - -void PhotoBrowser3DView::keyPressEvent(QKeyEvent *e) -{ - if (e->key() == Qt::Key_Q) - { - m_done = true; - emit done(); - } - else if (e->key() == Qt::Key_Right) - { - m_pc->setDirection(Qt::RightArrow); - emit pan(); - } - else if (e->key() == Qt::Key_Left) - { - m_pc->setDirection(Qt::LeftArrow); - emit pan(); - } - else if (e->key() == Qt::Key_Up || e->key() == Qt::Key_Down) - { - QVector3D viewVec = camera()->eye() - camera()->center(); - qreal zoomMag = viewVec.length(); - zoomMag += (e->key() == Qt::Key_Up) ? -0.5f : 0.5f; - if (zoomMag < 5.0f) - zoomMag = 5.0f; - QRay3D viewLine(camera()->center(), viewVec.normalized()); - camera()->setEye(viewLine.point(zoomMag)); - update(); - } - else - { - QGLView::keyPressEvent(e); - } -} - -void PhotoBrowser3DView::waitForExit() -{ - QThread::yieldCurrentThread(); - m_images->wait(); - m_images->deleteLater(); - m_images = 0; - if (m_closing) - { - if (!m_done) - { - emit done(); - m_done = true; - } - } -} - -void PhotoBrowser3DView::closeEvent(QCloseEvent *e) -{ - if (m_images) - { - e->ignore(); - m_images->stop(); - - // this was a request to close the main window, so we are closing up shop - // set this flag to indicate that when the image manager stops done event - // should be signalled to the state machine, resulting in close - m_closing = true; - } - else - { - e->accept(); - } -} - -void PhotoBrowser3DView::mousePressEvent(QMouseEvent *e) -{ - Q_UNUSED(e); - registerPickableNodes(); - QGLView::mousePressEvent(e); -} - -void PhotoBrowser3DView::initializeGL(QGLPainter *painter) -{ - Q_UNUSED(painter); - QAtlas::instance()->initialize(painter); - camera()->setEye(QVector3D(0.0f, 0.0f, 4.0f * m_displaySize)); - registerPickableNodes(); - qreal q = camera()->eye().z(); - qreal r = qBound(camera()->nearPlane(), q / 2.0f, camera()->nearPlane() * 3.0f); - m_pc->setDefaultDistance(q); - m_pc->setPanDistance(r); -} - -void PhotoBrowser3DView::earlyPaintGL(QGLPainter *painter) -{ - Q_UNUSED(painter); - - if (!painter->isPicking()) - { - QAtlas::instance()->paint(painter); - } - - if (!m_done) - m_pc->pan(); - - painter->setClearColor(Qt::blue); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); -} - -void PhotoBrowser3DView::paintGL(QGLPainter *painter) -{ - if (!m_done) - { - glEnable(GL_BLEND); - m_skybox->draw(painter); - m_display->draw(painter); - m_buttons->draw(painter); - } -} - -void PhotoBrowser3DView::resizeGL(int w, int h) -{ - Q_UNUSED(w); - Q_UNUSED(h); - m_buttons->clearPositions(); - m_updateRequired = true; -} - -void PhotoBrowser3DView::zoomImage() -{ - QGLPickNode *pn = qobject_cast<QGLPickNode*>(sender()); - Q_ASSERT(pn); - QGLSceneNode *n = pn->target(); - m_fa->setTarget(n); - emit zoom(); -} - -void PhotoBrowser3DView::goPan() -{ - QGLPickNode *pn = qobject_cast<QGLPickNode*>(sender()); - Q_ASSERT(pn); - QGLSceneNode *n = pn->target(); - m_pc->setDirection(n->objectName() == "Left Button" ? Qt::LeftArrow : Qt::RightArrow); - emit pan(); -} - -void PhotoBrowser3DView::pickableDirty() -{ - m_pickableDirty = true; -} - -void PhotoBrowser3DView::registerPickableNodes() -{ - if (m_pickableDirty) - { - m_scene->generatePickNodes(); - QList<QGLPickNode*> pickList = m_scene->pickNodes(); - QList<QGLPickNode*>::const_iterator it = pickList.constBegin(); - for ( ; it != pickList.constEnd(); ++it) - { - QGLPickNode *pn = *it; - pn->disconnect(this); - ThumbnailNode *node = qobject_cast<ThumbnailNode*>(pn->target()); - if (node) - QObject::connect(pn, SIGNAL(clicked()), this, SLOT(zoomImage())); - else - QObject::connect(pn, SIGNAL(clicked()), this, SLOT(goPan())); - registerObject(pn->id(), pn); - } - m_pickableDirty = false; - } -} diff --git a/demos/qt3d/photobrowser3d/photobrowser3dview.h b/demos/qt3d/photobrowser3d/photobrowser3dview.h deleted file mode 100644 index 50443c31..00000000 --- a/demos/qt3d/photobrowser3d/photobrowser3dview.h +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PHOTOBROWSER3DVIEW_H -#define PHOTOBROWSER3DVIEW_H - -#include "qglview.h" - -QT_BEGIN_NAMESPACE -class QGLMaterialCollection; -class QGLSceneNode; -class QState; -class QStateMachine; -QT_END_NAMESPACE - - -class SkyBox; -class ImageDisplay; -class ImageManager; -class QAtlas; -class Buttons; -class QPhotoBrowser3DScene; -class PanController; -class QFocusAdaptor; - -class PhotoBrowser3DView : public QGLView -{ - Q_OBJECT -public: - PhotoBrowser3DView(); - ~PhotoBrowser3DView(); - void initializeGL(QGLPainter *); - QPhotoBrowser3DScene *scene() { return m_scene; } -signals: - void done(); - void zoom(); - void pan(); -protected: - void earlyPaintGL(QGLPainter *); - void paintGL(QGLPainter *); - void resizeGL(int w, int h); - void wheelEvent(QWheelEvent *e); - void keyPressEvent(QKeyEvent *e); - void closeEvent(QCloseEvent *e); - void mousePressEvent(QMouseEvent *e); -private slots: - void initialise(); - void zoomImage(); - void pickableDirty(); - void waitForExit(); - void goPan(); -private: - void registerPickableNodes(); - void setupStates(); - void nonThreadedFileLoad(const QUrl &url); - void initialiseImageManager(const QUrl &url); - - QPhotoBrowser3DScene *m_scene; - ImageDisplay *m_display; - ImageManager *m_images; - Buttons *m_buttons; - SkyBox *m_skybox; - QGLMaterialCollection *m_palette; - QStateMachine *m_state; - QState *m_app; - QState *m_zoomed; - QState *m_browse; - QState *m_pan; - QFocusAdaptor *m_fa; - PanController *m_pc; - bool m_pickableDirty; - qreal m_displaySize; - bool m_done; - bool m_closing; - bool m_updateRequired; -}; - -#endif // PHOTOBROWSER3DVIEW_H diff --git a/demos/qt3d/photobrowser3d/qatlas.cpp b/demos/qt3d/photobrowser3d/qatlas.cpp deleted file mode 100644 index 24c9b6a3..00000000 --- a/demos/qt3d/photobrowser3d/qatlas.cpp +++ /dev/null @@ -1,188 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qatlas.h" -#include "qareaallocator.h" -#include "qgltexture2d.h" -#include "qglpainter.h" -#include "qgeometrydata.h" -#include "qglmaterial.h" -#include "qglpainter.h" -#include "qglframebufferobjectsurface.h" -#include "qglbuilder.h" - -#include <QImage> -#include <QThread> -#include <QGLFramebufferObject> -#include <QGLFramebufferObjectFormat> -#include <QCoreApplication> - -#ifndef GL_MULTISAMPLE -#define GL_MULTISAMPLE 0x809D -#endif - -QAtlas::QAtlas() - : m_size(1024, 1024) - , m_data(0) - , m_renderTarget(0) - , m_allocator(new QSimpleAreaAllocator(m_size)) - , m_tex(0) - , m_material(new QGLMaterial) - , m_initialized(false) - , m_count(0) -{ -} - -QAtlas::~QAtlas() -{ - delete m_data; - delete m_renderTarget; - delete m_allocator; -} - -void QAtlas::initialize(QGLPainter *painter) -{ - Q_UNUSED(painter); - if (!m_initialized) - { - m_data = new QGLFramebufferObject(m_size); - m_renderTarget = new QGLFramebufferObjectSurface(m_data); - m_tex = QGLTexture2D::fromTextureId(m_data->texture(), m_size); - m_material->setTexture(m_tex, 1); - m_material->setObjectName("Atlas material"); - m_initialized = true; - } -} - -void QAtlas::paint(QGLPainter *painter) -{ - Q_ASSERT(QThread::currentThread() == qApp->thread()); - - if (m_allocationQueue.isEmpty() || painter->isPicking()) - return; - - glDisable(GL_DEPTH_TEST); - - painter->pushSurface(m_renderTarget); - painter->setStandardEffect(QGL::FlatReplaceTexture2D); - painter->projectionMatrix().push(); - painter->modelViewMatrix().push(); - QRect rect = painter->currentSurface()->viewportRect(); - QMatrix4x4 proj; - proj.ortho(rect); - painter->projectionMatrix() = proj; - painter->modelViewMatrix().setToIdentity(); - - painter->update(); - - QAtlasEntry entry = m_allocationQueue.takeFirst(); - - QRect a = entry.rect; - QImage image = entry.image; - - if (a.left() == 0 && a.top() == 0) // first one - paint fill color - { - painter->setClearColor(Qt::red); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - } - - QGLTexture2D t; - t.setImage(image); - t.bind(); - QVector3D va(a.left(), a.bottom()+1, 0); - QVector3D vb(a.right()+1, a.bottom()+1, 0); - QVector3D vc(a.right()+1, a.top(), 0); - QVector3D vd(a.left(), a.top(), 0); - QVector2D ta(0.0f, 0.0f); - QVector2D tb(1.0f, 0.0f); - QVector2D tc(1.0f, 1.0f); - QVector2D td(0.0f, 1.0f); - QGeometryData quad; - quad.setBufferStrategy(QGeometryData::KeepClientData); - quad.appendVertex(va, vb, vc, vd); - quad.appendTexCoord(ta, tb, tc, td); - quad.appendIndices(0, 1, 2); - quad.appendIndices(0, 2, 3); - quad.draw(painter, 0, 6); - - painter->popSurface(); - - glEnable(GL_DEPTH_TEST); -} - -QRect QAtlas::allocate(const QSize &size, const QImage &image, const QGL::IndexArray &indices) -{ - Q_ASSERT(QThread::currentThread() == qApp->thread()); - - QRect a = m_allocator->allocate(size); - if (a.isEmpty()) - { - qWarning("QAtlas::allocate: overflowed"); - return a; - } - - m_allocationQueue.append(QAtlasEntry(image, a)); - ++m_count; - - QRectF af(a); - QSizeF szf(m_size); - float l = af.left() / szf.width(); - float r = af.right() / szf.width(); - float t = 1.0f - (af.top() / szf.height()); - float b = 1.0f - (af.bottom() / szf.height()); - m_geometry.texCoord(indices.at(0), QGL::TextureCoord1) = QVector2D(l, b); - m_geometry.texCoord(indices.at(1), QGL::TextureCoord1) = QVector2D(r, b); - m_geometry.texCoord(indices.at(2), QGL::TextureCoord1) = QVector2D(r, t); - m_geometry.texCoord(indices.at(5), QGL::TextureCoord1) = QVector2D(l, t); - return a; -} - -void QAtlas::release(QRect frame) -{ - m_allocator->release(frame); -} - -Q_GLOBAL_STATIC(QAtlas, atlasInstance); - -QAtlas *QAtlas::instance() -{ - return atlasInstance(); -} diff --git a/demos/qt3d/photobrowser3d/qatlas.h b/demos/qt3d/photobrowser3d/qatlas.h deleted file mode 100644 index 33b5b542..00000000 --- a/demos/qt3d/photobrowser3d/qatlas.h +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QATLAS_H -#define QATLAS_H - -#include <QSize> - -#include "qarray.h" -#include "qgeometrydata.h" - -QT_BEGIN_NAMESPACE -class QAreaAllocator; -class QGLTexture2D; -class QGLMaterial; -class QGeometryData; -class QGLFramebufferObject; -class QGLFramebufferObjectSurface; -QT_END_NAMESPACE - -struct QAtlasEntry -{ - QAtlasEntry(QImage i, QRect r) : image(i), rect(r) {} - QImage image; - QRect rect; -}; - -class QAtlas -{ -public: - QAtlas(); - ~QAtlas(); - - QAreaAllocator *allocator() const { return m_allocator; } - void setAllocator(QAreaAllocator *allocator) { m_allocator = allocator; } - - QRect allocate(const QSize &size, const QImage &image, const QGL::IndexArray &indices); - - void initialize(QGLPainter *painter); - void paint(QGLPainter *painter); - - void release(QRect frame); - - void setGeometry(QGeometryData geometry) { m_geometry = geometry; } - QGeometryData geometry() { return m_geometry; } - - QGLMaterial *material() { return m_material; } - - QList<QAtlasEntry> allocationQueue() const { return m_allocationQueue; } - - static QAtlas *instance(); - -private: - QSize m_size; - QGLFramebufferObject *m_data; - QGLFramebufferObjectSurface *m_renderTarget; - QAreaAllocator *m_allocator; - QGLTexture2D *m_tex; - QGLMaterial *m_material; - QGeometryData m_geometry; - bool m_initialized; - QList<QAtlasEntry> m_allocationQueue; - int m_count; -}; - -#endif // QATLAS_H diff --git a/demos/qt3d/photobrowser3d/qfocusadaptor.cpp b/demos/qt3d/photobrowser3d/qfocusadaptor.cpp deleted file mode 100644 index 64e93c61..00000000 --- a/demos/qt3d/photobrowser3d/qfocusadaptor.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfocusadaptor.h" -#include "qglscenenode.h" -#include "qglview.h" -#include "qglcamera.h" -#include "thumbnailnode.h" - -class QFocusAdaptorPrivate -{ -public: - QFocusAdaptorPrivate() - : progress(0.0) - , reset(true) - , target(0) - , view(0) - {} - qreal progress; - QVector3D targetEye; - QVector3D targetCenter; - QVector3D sourceEye; - QVector3D sourceCenter; - bool reset; - QGLSceneNode *target; - QGLView *view; -}; - -QFocusAdaptor::QFocusAdaptor(QObject *parent) - : QObject(parent) - , d(new QFocusAdaptorPrivate) -{ - QGLView *v = qobject_cast<QGLView*>(parent); - if (v) - d->view = v; -} - -QFocusAdaptor::~QFocusAdaptor() -{ - delete d; -} - -qreal QFocusAdaptor::progress() const -{ - return d->progress; -} - -void QFocusAdaptor::setProgress(qreal progress) -{ - if (d->progress != progress) - { - d->progress = progress; - calculateValues(); - emit progressChanged(); - } -} - -QGLView *QFocusAdaptor::view() const -{ - return d->view; -} - -void QFocusAdaptor::setView(QGLView *view) -{ - d->view = view; - d->reset = true; -} - -QGLSceneNode *QFocusAdaptor::target() const -{ - return d->target; -} - -void QFocusAdaptor::setTarget(QGLSceneNode *target) -{ - if (d->target != target) - { - d->target = target; - d->reset = true; - } -} - -void QFocusAdaptor::calculateValues() -{ - if (d->target && d->view) - { - QGLCamera *cam = d->view->camera(); - Q_ASSERT(cam); - if (d->reset) - { - QGeometryData data = d->target->geometry(); - if (data.count() == 0 || d->target->count() == 0) - { - qWarning("Could not setup focus animation"); - return; - } - // assume that the first triangle referenced by this node is the one - // you want to focus on - works for simple rects and like cases - QGL::IndexArray ixs = data.indices(); - QVector3D a = data.vertexAt(ixs.at(d->target->start())); - QVector3D b = data.vertexAt(ixs.at(d->target->start() + 1)); - QVector3D c = data.vertexAt(ixs.at(d->target->start() + 2)); - - // assumes that first triangle is facing the camera - QVector3D toCam = QVector3D::normal(a, b, c); - - // wont work very well if the target is not axis-aligned - // find the distance q for the eye to be away from this object - // in order that it is a tight fit in the viewport - QGeometryData g = d->target->geometry(); - QGL::IndexArray inxs = g.indices(); - QBox3D box; - for (int i = d->target->start(); i < (d->target->start() + d->target->count()); ++i) - box.unite(g.vertexAt(inxs.at(i))); - QVector3D sz = box.size(); - - qreal nearDist = cam->nearPlane(); - - QSizeF v = cam->viewSize(); - - qreal vh = d->view->rect().height(); - qreal vw = d->view->rect().width(); - if (!qFuzzyIsNull(vw - vh)) - { - qreal asp = vh / vw; - if (vh > vw) - v.setHeight(v.height() * asp); - else - v.setWidth(v.width() / asp); - } - - qreal qh = (nearDist * sz.y()) / v.height(); - qreal qw = (nearDist * sz.x()) / v.width(); - - qreal q = qMax(qh, qw); - q = qMax(q, qreal(nearDist * 1.05)); - - d->sourceCenter = cam->center(); - d->sourceEye = cam->eye(); - - d->targetCenter = d->target->position(); - d->targetEye = d->targetCenter + (toCam * q); - - d->reset = false; - } - cam->setCenter(d->sourceCenter + ((d->targetCenter - d->sourceCenter) * d->progress)); - cam->setEye(d->sourceEye + ((d->targetEye - d->sourceEye) * d->progress)); - } -} diff --git a/demos/qt3d/photobrowser3d/qfocusadaptor.h b/demos/qt3d/photobrowser3d/qfocusadaptor.h deleted file mode 100644 index 8d0fe895..00000000 --- a/demos/qt3d/photobrowser3d/qfocusadaptor.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFOCUSADAPTOR_H -#define QFOCUSADAPTOR_H - -#include <QObject> - -QT_BEGIN_NAMESPACE -class QGLView; -class QGLSceneNode; -QT_END_NAMESPACE - -class QFocusAdaptorPrivate; - -class QFocusAdaptor : public QObject -{ - Q_OBJECT - Q_PROPERTY(qreal progress READ progress WRITE setProgress NOTIFY progressChanged) -public: - explicit QFocusAdaptor(QObject *parent = 0); - ~QFocusAdaptor(); - - qreal progress() const; - void setProgress(qreal progress); - - QGLView *view() const; - void setView(QGLView *view); - - QGLSceneNode *target() const; - void setTarget(QGLSceneNode *target); - -signals: - void progressChanged(); - -public slots: - -private: - void calculateValues(); - - QFocusAdaptorPrivate *d; -}; - -#endif // QFOCUSADAPTOR_H diff --git a/demos/qt3d/photobrowser3d/qphotobrowser3dscene.cpp b/demos/qt3d/photobrowser3d/qphotobrowser3dscene.cpp deleted file mode 100644 index e05e7d46..00000000 --- a/demos/qt3d/photobrowser3d/qphotobrowser3dscene.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qphotobrowser3dscene.h" -#include "qglscenenode.h" - -QPhotoBrowser3DScene::QPhotoBrowser3DScene(QObject *parent) - : QGLAbstractScene(parent) - , m_rootNode(new QGLSceneNode(this)) -{ -} - -QList<QObject *> QPhotoBrowser3DScene::objects() const -{ - QList<QGLSceneNode *> children = m_rootNode->allChildren(); - QList<QObject *> objects; - for (int index = 0; index < children.size(); ++index) - objects.append(children.at(index)); - return objects; -} diff --git a/demos/qt3d/photobrowser3d/qphotobrowser3dscene.h b/demos/qt3d/photobrowser3d/qphotobrowser3dscene.h deleted file mode 100644 index 73eb7159..00000000 --- a/demos/qt3d/photobrowser3d/qphotobrowser3dscene.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFRAMESSCENE_H -#define QFRAMESSCENE_H - -#include "qglabstractscene.h" - -QT_BEGIN_NAMESPACE -class QGLSceneNode; -QT_END_NAMESPACE - -class QPhotoBrowser3DScene : public QGLAbstractScene -{ - Q_OBJECT -public: - explicit QPhotoBrowser3DScene(QObject *parent = 0); - virtual QList<QObject *> objects() const; - QGLSceneNode *mainNode() const { return m_rootNode; } -private: - QGLSceneNode *m_rootNode; -}; - -#endif // QFRAMESSCENE_H diff --git a/demos/qt3d/photobrowser3d/qt3d.ico b/demos/qt3d/photobrowser3d/qt3d.ico Binary files differdeleted file mode 100644 index e6442baf..00000000 --- a/demos/qt3d/photobrowser3d/qt3d.ico +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/qt3d.png b/demos/qt3d/photobrowser3d/qt3d.png Binary files differdeleted file mode 100644 index 21ec0176..00000000 --- a/demos/qt3d/photobrowser3d/qt3d.png +++ /dev/null diff --git a/demos/qt3d/photobrowser3d/shaders/replace_texture.fsh b/demos/qt3d/photobrowser3d/shaders/replace_texture.fsh deleted file mode 100644 index bb5e6107..00000000 --- a/demos/qt3d/photobrowser3d/shaders/replace_texture.fsh +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// This is equivilent to GL_REPLACE -varying highp vec4 qt_TexCoord0; -uniform bool picking; -uniform mediump vec4 color; -uniform sampler2D texture; - -void main(void) -{ - if (picking) - gl_FragColor = color; - else - gl_FragColor = texture2D(texture, qt_TexCoord0.st); -} diff --git a/demos/qt3d/photobrowser3d/shaders/replace_texture.vsh b/demos/qt3d/photobrowser3d/shaders/replace_texture.vsh deleted file mode 100644 index 02a14fc5..00000000 --- a/demos/qt3d/photobrowser3d/shaders/replace_texture.vsh +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -attribute highp vec4 vertex; -attribute highp vec4 texcoord; -attribute highp vec4 thumbcoord; - -uniform highp mat4 matrix; -uniform bool thumb; - -varying highp vec4 qt_TexCoord0; - -void main(void) -{ - if (thumb) - qt_TexCoord0 = thumbcoord; - else - qt_TexCoord0 = texcoord; - gl_Position = matrix * vertex; -} diff --git a/demos/qt3d/photobrowser3d/skybox.cpp b/demos/qt3d/photobrowser3d/skybox.cpp deleted file mode 100644 index 3162a76d..00000000 --- a/demos/qt3d/photobrowser3d/skybox.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "skybox.h" -#include "qglbuilder.h" -#include "qglcube.h" -#include "qglpainter.h" -#include "qglview.h" - -#include <QDir> -#include <QFileInfo> - -SkyBox::SkyBox(QGLView *view, const QString &imagePath) - : m_scene(0) - , m_view(view) - , m_camera(new QGLCamera(this)) -{ - m_camera->setEye(QVector3D()); - m_camera->setNearPlane(0.3f); - m_camera->setViewSize(QSizeF(0.3f, 0.3f)); - - QGLBuilder builder; - builder.newSection(QGL::Faceted); - QVector3D blb(-1.0, -1.0, -1.0); - QVector3D blf(-1.0, -1.0, 1.0); - QVector3D tlf(-1.0, 1.0, 1.0); - QVector3D tlb(-1.0, 1.0, -1.0); - QVector3D brb(1.0, -1.0, -1.0); - QVector3D brf(1.0, -1.0, 1.0); - QVector3D trf(1.0, 1.0, 1.0); - QVector3D trb(1.0, 1.0, -1.0); - QVector2D bl(0.0f, 0.0f); - QVector2D br(1.0f, 0.0f); - QVector2D tr(1.0f, 1.0f); - QVector2D tl(0.0f, 1.0f); - { - QGeometryData q; // left - builder.currentNode()->setObjectName("left"); - q.appendVertex(blf, blb, tlb, tlf); - q.appendTexCoord(bl, br, tr, tl); - builder.addQuads(q); - m_faces[0] = builder.currentNode(); - m_faces[0]->setMaterial(new QGLMaterial); - } - { - builder.newNode(); // top - builder.currentNode()->setObjectName("top"); - QGeometryData q; - q.appendVertex(trf, tlf, tlb, trb); - q.appendTexCoord(bl, br, tr, tl); - builder.addQuads(q); - m_faces[1] = builder.currentNode(); - m_faces[1]->setMaterial(new QGLMaterial); - } - { - builder.newNode(); // right - builder.currentNode()->setObjectName("right"); - QGeometryData q; - q.appendVertex(brb, brf, trf, trb); - q.appendTexCoord(bl, br, tr, tl); - builder.addQuads(q); - m_faces[2] = builder.currentNode(); - m_faces[2]->setMaterial(new QGLMaterial); - } - { - builder.newNode(); // bottom - builder.currentNode()->setObjectName("bottom"); - QGeometryData q; - q.appendVertex(brb, blb, blf, brf); - q.appendTexCoord(bl, br, tr, tl); - builder.addQuads(q); - m_faces[3] = builder.currentNode(); - m_faces[3]->setMaterial(new QGLMaterial); - } - { - builder.newNode(); // front - builder.currentNode()->setObjectName("front"); - QGeometryData q; - q.appendVertex(brf, blf, tlf, trf); - q.appendTexCoord(bl, br, tr, tl); - builder.addQuads(q); - m_faces[4] = builder.currentNode(); - m_faces[4]->setMaterial(new QGLMaterial); - } - { - builder.newNode(); // back - builder.currentNode()->setObjectName("back"); - QGeometryData q; - q.appendVertex(blb, brb, trb, tlb); - q.appendTexCoord(bl, br, tr, tl); - builder.addQuads(q); - m_faces[5] = builder.currentNode(); - m_faces[5]->setMaterial(new QGLMaterial); - } - m_scene = builder.finalizedSceneNode(); - m_scene->setObjectName("SkyboxList"); - m_scene->setEffect(QGL::FlatReplaceTexture2D); - m_scene->setEffectEnabled(true); - m_scene->setParent(this); - - QString resourceBase = QLatin1String(":/"); - setImagePath(imagePath.isEmpty() ? resourceBase : imagePath); -} - - -void SkyBox::setImagePath(const QString &imagePath) -{ - static QStringList expected2; - static QStringList expected; - - if (expected.isEmpty()) - expected << QLatin1String("east") << QLatin1String("up") << QLatin1String("west") - << QLatin1String("down") << QLatin1String("south") << QLatin1String("north"); - if (expected2.isEmpty()) - expected2 << QLatin1String("right") << QLatin1String("top") << QLatin1String("left") - << QLatin1String("bottom") << QLatin1String("front") << QLatin1String("back"); - if (imagePath != m_imagePath) - { - m_imagePath = imagePath; - QStringList notFound = expected; - QFileInfo info(m_imagePath); - if (info.exists() && info.isDir()) - { - QDir imDir(imagePath); - QFileInfoList files = imDir.entryInfoList(QDir::Files); - QFileInfoList::const_iterator it = files.constBegin(); - for ( ; it != files.constEnd() && notFound.size() > 0; ++it) - { - QFileInfo ent = *it; - QString tok = ent.baseName().toLower(); - int ix = 0; - for ( ; ix < 6; ++ix) - if (tok.contains(expected.at(ix))) - break; - if (ix == 6) - { - ix = 0; - for ( ; ix < 6; ++ix) - if (tok.contains(expected2.at(ix))) - break; - } - if (ix != 6) - { - notFound.removeOne(expected.at(ix)); - QUrl url; - url.setScheme("file"); - url.setPath(ent.absoluteFilePath()); - m_faces[ix]->material()->setTextureUrl(url); - m_faces[ix]->material()->texture()->setHorizontalWrap(QGL::ClampToEdge); - m_faces[ix]->material()->texture()->setVerticalWrap(QGL::ClampToEdge); - } - } - if (notFound.size() > 2) - { - qWarning("Could not load textures for"); - for (int i = 0; i < notFound.size(); ++i) - qWarning("\t%s", qPrintable(notFound.at(i))); - } - } - else - { - qWarning("SkyBox::setImagePath: Not an existing directory %s", - qPrintable(m_imagePath)); - } - } -} - -void SkyBox::draw(QGLPainter *painter) const -{ - painter->modelViewMatrix().push(); - painter->modelViewMatrix().setToIdentity(); - - QGLCamera *cam = m_view->camera(); - m_camera->setCenter(-cam->eye()); - painter->setCamera(m_camera); - - glDisable(GL_DEPTH_TEST); - - m_scene->draw(painter); - - glEnable(GL_DEPTH_TEST); - - painter->setCamera(cam); - painter->modelViewMatrix().pop(); -} diff --git a/demos/qt3d/photobrowser3d/skybox.h b/demos/qt3d/photobrowser3d/skybox.h deleted file mode 100644 index 79b17219..00000000 --- a/demos/qt3d/photobrowser3d/skybox.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SKYBOX_H -#define SKYBOX_H - -#include <QString> -#include <QObject> - -QT_BEGIN_NAMESPACE -class QGLBuilder; -class QGLSceneNode; -class QGLPainter; -class QGLView; -class QGLCamera; -QT_END_NAMESPACE - -class SkyBox : public QObject -{ - Q_OBJECT -public: - SkyBox(QGLView *view, const QString &imagePath = QString()); - QString imagePath() const { return m_imagePath; } - void setImagePath(const QString &imagePath); - void draw(QGLPainter *painter) const; -private: - QGLSceneNode *m_scene; - QString m_imagePath; - QGLSceneNode *m_faces[6]; - QGLView *m_view; - QGLCamera *m_camera; -}; - -#endif // SKYBOX_H diff --git a/demos/qt3d/photobrowser3d/threadpool.cpp b/demos/qt3d/photobrowser3d/threadpool.cpp deleted file mode 100644 index 01517d59..00000000 --- a/demos/qt3d/photobrowser3d/threadpool.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "threadpool.h" -#include "imageloader.h" -#include "imagemanager.h" - -#include <QSemaphore> - -ThreadPool::ThreadPool() -{ - m_threadPoolSize = QThread::idealThreadCount(); - if (m_threadPoolSize < 2) - m_threadPoolSize = 2; - m_stop = 0; -} - -ThreadPool::~ThreadPool() -{ - Q_ASSERT(m_allWorkers.size() == 0); -} - -void ThreadPool::deployLoader(const ThumbnailableImage &image) -{ - // INVARIANT: this critical section is only ever executed from its - // own thread via queued signals - thus access to it is serialized - Q_ASSERT(QThread::currentThread() == thread()); - - if (m_stop) - return; - - ImageManager *manager = qobject_cast<ImageManager*>(sender()); - Q_ASSERT(manager); - - ImageLoader *loader = 0; - if (m_freeWorkers.size() > 0) - loader = m_freeWorkers.takeFirst(); - - if (loader) - { - loader->setImage(image); - } - else - { - if (m_allWorkers.size() < m_threadPoolSize) - { - loader = new ImageLoader; - m_allWorkers.append(loader); - loader->setImage(image); - connect(loader, SIGNAL(imageLoaded(ThumbnailableImage)), manager, - SIGNAL(imageReady(ThumbnailableImage))); - connect(loader, SIGNAL(imageLoaded(ThumbnailableImage)), this, - SLOT(retrieveLoader())); - connect(loader, SIGNAL(finished()), this, SLOT(closeLoader())); - connect(this, SIGNAL(stopAll()), loader, SLOT(stop())); - loader->start(); - } - else - { - m_workList.append(image); - } - } -} - -void ThreadPool::retrieveLoader() -{ - ImageLoader *loader = qobject_cast<ImageLoader*>(sender()); - Q_ASSERT(loader); - if (!m_stop) - { - if (!m_workList.isEmpty()) - loader->setImage(m_workList.takeFirst()); - else - m_freeWorkers.append(loader); - } -} - -void ThreadPool::stop() -{ - m_stop.ref(); - if (m_allWorkers.isEmpty()) - emit stopped(); - else - emit stopAll(); -} - -void ThreadPool::closeLoader() -{ - ImageLoader *loader = qobject_cast<ImageLoader*>(sender()); - Q_ASSERT(loader); - m_allWorkers.removeOne(loader); - loader->deleteLater(); - if (m_allWorkers.isEmpty() && m_stop) - { - emit stopped(); - } -} diff --git a/demos/qt3d/photobrowser3d/threadpool.h b/demos/qt3d/photobrowser3d/threadpool.h deleted file mode 100644 index ff13b2b1..00000000 --- a/demos/qt3d/photobrowser3d/threadpool.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef LOADINGJOB_H -#define LOADINGJOB_H - -#include <QObject> -#include <QAtomicInt> -#include <QList> -#include <QUrl> - -#include "thumbnailableimage.h" - -class ImageLoader; - -class ThreadPool : public QObject -{ - Q_OBJECT -public: - ThreadPool(); - ~ThreadPool(); - -signals: - void stopped(); - void stopAll(); - -public slots: - void deployLoader(const ThumbnailableImage &url); - void stop(); - -private slots: - void retrieveLoader(); - void closeLoader(); - -private: - QList<ImageLoader*> m_freeWorkers; - QList<ImageLoader*> m_allWorkers; - QList<ThumbnailableImage> m_workList; - QAtomicInt m_stop; - int m_threadPoolSize; -}; - -#endif // LOADINGJOB_H diff --git a/demos/qt3d/photobrowser3d/thumbnailableimage.cpp b/demos/qt3d/photobrowser3d/thumbnailableimage.cpp deleted file mode 100644 index 970d31c4..00000000 --- a/demos/qt3d/photobrowser3d/thumbnailableimage.cpp +++ /dev/null @@ -1,302 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "thumbnailableimage.h" -#include "qareaallocator.h" -#include "qgltexture2d.h" -#include "qglmaterial.h" -#include "qatlas.h" - -#include <QUrl> - -class ThumbnailableImagePrivate -{ -public: - ThumbnailableImagePrivate(); - ~ThumbnailableImagePrivate(); - - ThumbnailableImagePrivate *clone() const - { - ThumbnailableImagePrivate *temp = new ThumbnailableImagePrivate; - temp->thumbnailed = thumbnailed; - temp->pending = pending; - temp->url = url; - temp->data = data; - temp->tex = tex; - temp->mat = mat; - temp->frame = frame; - temp->scale = scale; - temp->indices = indices; - return temp; - } - - QBasicAtomicInt ref; - - bool thumbnailed; - bool pending; - QUrl url; - QImage data; - QGLTexture2D *tex; - QGLMaterial *mat; - QRect frame; - qreal scale; - QGL::IndexArray indices; -}; - -ThumbnailableImagePrivate::ThumbnailableImagePrivate() - : thumbnailed(false) - , pending(false) - , tex(0) - , mat(0) - , scale(15.0f) -{ - ref = 0; -} - -ThumbnailableImagePrivate::~ThumbnailableImagePrivate() -{ -} - -ThumbnailableImage::ThumbnailableImage() - : d(0) -{ -} - -/*! - Construct ThumbnailableImage as a copy of \a other -*/ -ThumbnailableImage::ThumbnailableImage(const ThumbnailableImage &other) - : d(other.d) -{ - if (d) - d->ref.ref(); -} - -/*! - Destroys this ThumbnailableImage recovering any resources. -*/ -ThumbnailableImage::~ThumbnailableImage() -{ - if (d && !d->ref.deref()) - delete d; -} - -/*! - Assigns this ThumbnailableImage to be a copy of \a other. -*/ -ThumbnailableImage &ThumbnailableImage::operator=(const ThumbnailableImage &other) -{ - if (d != other.d) - { - if (d && !d->ref.deref()) - delete d; - d = other.d; - if (d) - d->ref.ref(); - } - return *this; -} - -void ThumbnailableImage::setThumbnailed(bool enable) -{ - detach(); - if (enable != d->thumbnailed && !d->data.isNull()) - { - if (enable) - { - if (d->frame.isNull()) - { - Q_ASSERT(!d->data.isNull()); - QSize sz = (QSizeF(d->data.size()) / d->scale).toSize(); - QAtlas *atlas = QAtlas::instance(); - d->frame = atlas->allocate(sz, d->data, d->indices); - d->pending = true; - } - } - if (!d->pending) - d->thumbnailed = enable; - } -} - -bool ThumbnailableImage::isThumbnailed() const -{ - bool result = false; - if (d) - { - if (d->pending) - { - QList<QAtlasEntry> queue = QAtlas::instance()->allocationQueue(); - int i = 0; - for ( ; i < queue.count(); ++i) - if (d->frame == queue.at(i).rect) - break; - if (i == queue.count()) - { - d->pending = false; - d->thumbnailed = true; - } - } - result = d->thumbnailed; - } - return result; -} - -QImage ThumbnailableImage::data() const -{ - QImage result; - if (d) - result = d->data; - return result; -} - -void ThumbnailableImage::setData(QImage data) -{ - detach(); - d->data = data; -} - -QUrl ThumbnailableImage::url() const -{ - QUrl result; - if (d) - result = d->url; - return result; -} - -void ThumbnailableImage::setUrl(const QUrl &url) -{ - detach(); - d->url = url; -} - -QRectF ThumbnailableImage::frame() const -{ - QRectF result; - if (d) - result = d->frame; - return result; -} - -qreal ThumbnailableImage::scale() const -{ - qreal result = 0.0f; - if (d) - result = d->scale; - return result; -} - -void ThumbnailableImage::minimize() -{ - if (!d) - return; - detach(); - if (!isMinimized()) - { - if (d->thumbnailed) - { - // If thumbnailed, I don't really need the full size image - d->data = QImage(); - } - else - { - // If not thumbnailed, I don't need the atlas resources - QAtlas *atlas = QAtlas::instance(); - atlas->release(d->frame); - d->frame = QRect(); - } - } -} - -bool ThumbnailableImage::isMinimized() const -{ - bool result = true; - if (d) - result = (d->thumbnailed) ? (d->data.isNull()) : (d->frame.isNull()); - return result; -} - -void ThumbnailableImage::setIndices(const QGL::IndexArray &indices) -{ - detach(); - d->indices = indices; -} - -QGL::IndexArray ThumbnailableImage::indices() const -{ - QGL::IndexArray result; - if (d) - result = d->indices; - return result; -} - -/*! - \internal - You know what this is for. No user serviceable parts below here. -*/ -void ThumbnailableImage::detach() -{ - if (!d) // lazy creation of data block - { - d = new ThumbnailableImagePrivate; - d->ref.ref(); - } - else - { - if (d->ref > 1) // being shared, must detach - { - ThumbnailableImagePrivate *temp = d->clone(); - d->ref.deref(); - d = temp; - d->ref.ref(); - } - } -} - -#ifndef QT_NO_DEBUG_STREAM -QDebug operator<<(QDebug dbg, const ThumbnailableImage &image) -{ - dbg << "ThumbnailableImage" << image.url() << "size:" << image.data().size() << - "minimized:" << image.isMinimized() << "-- thumbnailed:" << image.isThumbnailed() - << "-- null:" << image.isNull() << "-- image loaded:" << (!image.data().isNull()) - << "-- index count:" << image.indices().count(); - return dbg; -} -#endif diff --git a/demos/qt3d/photobrowser3d/thumbnailableimage.h b/demos/qt3d/photobrowser3d/thumbnailableimage.h deleted file mode 100644 index 2f5b5b98..00000000 --- a/demos/qt3d/photobrowser3d/thumbnailableimage.h +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef THUMBNAILABLEIMAGE_H -#define THUMBNAILABLEIMAGE_H - -#include <QRectF> -#include <QMetaType> - -#include "qarray.h" -#include "qgeometrydata.h" - -QT_BEGIN_NAMESPACE -class QImage; -class QGLPainter; -QT_END_NAMESPACE - -class ThumbnailableImagePrivate; - -class ThumbnailableImage -{ -public: - ThumbnailableImage(); - ThumbnailableImage(const ThumbnailableImage&); - ~ThumbnailableImage(); - - ThumbnailableImage &operator=(const ThumbnailableImage &); - - void setThumbnailed(bool enable); - bool isThumbnailed() const; - - QImage data() const; - void setData(QImage data); - - QUrl url() const; - void setUrl(const QUrl &url); - - QRectF frame() const; - qreal scale() const; - - void minimize(); - bool isMinimized() const; - - QGL::IndexArray indices() const; - void setIndices(const QGL::IndexArray &indices); - - bool isNull() const { return d == 0; } - - ThumbnailableImagePrivate *priv() const { return d; } /// debug = remove me - -private: - void detach(); - - ThumbnailableImagePrivate *d; -}; - -Q_DECLARE_METATYPE(ThumbnailableImage); - -#ifndef QT_NO_DEBUG_STREAM -QDebug operator<<(QDebug dbg, const ThumbnailableImage &image); -#endif - -#endif // THUMBNAILABLEIMAGE_H diff --git a/demos/qt3d/photobrowser3d/thumbnaileffect.cpp b/demos/qt3d/photobrowser3d/thumbnaileffect.cpp deleted file mode 100644 index 927bf8b7..00000000 --- a/demos/qt3d/photobrowser3d/thumbnaileffect.cpp +++ /dev/null @@ -1,186 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "thumbnaileffect.h" - -#include <QtOpenGL/qglshaderprogram.h> - -class ThumbnailEffectPrivate -{ -public: - ThumbnailEffectPrivate() - : program(0) - , matrixUniform(-1) - , thumbnailUniform(-1) - , thumbnail(false) - , thumbnailUpdateRequired(false) - { - } - ~ThumbnailEffectPrivate() { delete program; } - - QGLShaderProgram *program; - int matrixUniform; - int thumbnailUniform; - int colorUniform; - int pickingUniform; - // true if we render a thumbnail, false do the large size - bool thumbnail; - bool thumbnailUpdateRequired; -}; - -/*! - Constructs a new flat texture effect. -*/ -ThumbnailEffect::ThumbnailEffect() - : d(new ThumbnailEffectPrivate) -{ -} - -/*! - Destroys this flat texture effect. -*/ -ThumbnailEffect::~ThumbnailEffect() -{ - delete d; -} - -/*! - \reimp -*/ -QList<QGL::VertexAttribute> ThumbnailEffect::requiredFields() const -{ - QList<QGL::VertexAttribute> fields; - fields += QGL::Position; - fields += QGL::TextureCoord0; - fields += QGL::TextureCoord1; - return fields; -} - -/*! - \reimp -*/ -void ThumbnailEffect::setActive(QGLPainter *painter, bool flag) -{ - Q_UNUSED(painter); - if (!d->program) { - if (!flag) - return; - d->program = new QGLShaderProgram(); - d->program->addShaderFromSourceFile(QGLShader::Vertex, ":/shaders/replace_texture.vsh"); - d->program->addShaderFromSourceFile(QGLShader::Fragment, ":/shaders/replace_texture.fsh"); - d->program->bindAttributeLocation("vertex", QGL::Position); - d->program->bindAttributeLocation("texcoord", QGL::TextureCoord0); - d->program->bindAttributeLocation("thumbcoord", QGL::TextureCoord1); - if (!d->program->link()) { - qWarning("ThumbnailEffect::setActive(): could not link shader d->program"); - delete d->program; - d->program = 0; - return; - } - d->matrixUniform = d->program->uniformLocation("matrix"); - d->thumbnailUniform = d->program->uniformLocation("thumb"); - d->colorUniform = d->program->uniformLocation("color"); - d->pickingUniform = d->program->uniformLocation("picking"); - d->program->bind(); - d->program->setUniformValue("texture", 0); - d->program->enableAttributeArray(QGL::Position); - d->program->enableAttributeArray(QGL::TextureCoord0); - d->program->enableAttributeArray(QGL::TextureCoord1); - } else if (flag) { - d->matrixUniform = d->program->uniformLocation("matrix"); - d->program->bind(); - d->program->setUniformValue("texture", 0); - d->program->enableAttributeArray(QGL::Position); - d->program->enableAttributeArray(QGL::TextureCoord0); - d->program->enableAttributeArray(QGL::TextureCoord1); - } else { - d->program->disableAttributeArray(QGL::Position); - d->program->disableAttributeArray(QGL::TextureCoord0); - d->program->disableAttributeArray(QGL::TextureCoord1); - d->program->release(); - } -} - -/*! - \reimp -*/ -void ThumbnailEffect::update - (QGLPainter *painter, QGLPainter::Updates updates) -{ - Q_ASSERT(d->program); - if ((updates & QGLPainter::UpdateMatrices) != 0) - { - d->program->setUniformValue(d->matrixUniform, - painter->combinedMatrix()); - } - if ((updates & QGLPainter::UpdateColor) != 0) { - d->program->setUniformValue(d->pickingUniform, painter->isPicking()); - if (painter->isPicking()) - d->program->setUniformValue(d->colorUniform, painter->pickColor()); - else - d->program->setUniformValue(d->colorUniform, Qt::green); - } - if (d->thumbnailUpdateRequired) - { - d->program->setUniformValue(d->thumbnailUniform, d->thumbnail); - d->thumbnailUpdateRequired = false; - } -} - -bool ThumbnailEffect::supportsPicking() const -{ - return true; -} - - -void ThumbnailEffect::setThumbnail(bool enable) -{ - if (d->thumbnail != enable) - { - d->thumbnailUpdateRequired = true; - d->thumbnail = enable; - } -} - -bool ThumbnailEffect::thumbnail() const -{ - return d->thumbnail; -} diff --git a/demos/qt3d/photobrowser3d/thumbnaileffect.h b/demos/qt3d/photobrowser3d/thumbnaileffect.h deleted file mode 100644 index 488887de..00000000 --- a/demos/qt3d/photobrowser3d/thumbnaileffect.h +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QGLFLATTEXTUREEFFECT_H -#define QGLFLATTEXTUREEFFECT_H - -#include "qglabstracteffect.h" -#include <QtCore/qscopedpointer.h> - -class ThumbnailEffectPrivate; - -class ThumbnailEffect : public QGLAbstractEffect -{ -public: - ThumbnailEffect(); - virtual ~ThumbnailEffect(); - - QList<QGL::VertexAttribute> requiredFields() const; - void setActive(QGLPainter *painter, bool flag); - void update(QGLPainter *painter, QGLPainter::Updates updates); - bool supportsPicking() const; - - void setThumbnail(bool enable); - bool thumbnail() const; - - QString name() const { return QLatin1String("ThumbnailEffect"); } - -private: - ThumbnailEffectPrivate *d; -}; - -#endif diff --git a/demos/qt3d/photobrowser3d/thumbnailnode.cpp b/demos/qt3d/photobrowser3d/thumbnailnode.cpp deleted file mode 100644 index f80bec8c..00000000 --- a/demos/qt3d/photobrowser3d/thumbnailnode.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "thumbnailnode.h" -#include "qglpainter.h" -#include "thumbnaileffect.h" -#include "imagemanager.h" -#include "qatlas.h" -#include "qglrendersequencer.h" -#include "qglpicknode.h" -#include "qlogicalvertex.h" - -#include <QMatrix4x4> -#include <QTimer> - -ThumbnailNode::ThumbnailNode(QObject *parent) - : QGLSceneNode(parent) - , m_thresholdSquared(20.0f * 20.0f) - , m_defaultMaterial(-1) - , m_loading(false) - , m_full(0) - , m_manager(0) - , m_lastDistance(ThumbnailNode::Unknown) -{ - setPalette(new QGLMaterialCollection(this)); -} - -ThumbnailNode::~ThumbnailNode() -{ - delete m_full; -} - -void ThumbnailNode::setUrl(const QUrl &url) -{ - m_url = url; - m_image = ThumbnailableImage(); - m_image.setUrl(m_url); - QGL::IndexArray inxs = geometry().indices(); - m_image.setIndices(inxs.mid(start(), count())); -} - -void ThumbnailNode::setupLoading() -{ - if (!m_loading && !m_url.isEmpty() && m_image.data().isNull()) - { - m_loading = true; -#ifdef QT_NO_THREADED_FILE_LOAD - ThumbnailableImage image; - image.setUrl(m_url); - QImage im(m_url.toLocalFile()); - if (im.isNull()) - qDebug() << "ThumbnailNode::setupLoading: could not load image:" - << m_url.toLocalFile(); - if (im.size().width() > 1024 || im.size().height() > 768) - im = im.scaled(QSize(1024, 768), Qt::KeepAspectRatio, - Qt::SmoothTransformation); - image.setData(im); - setImage(image); -#else - if (m_manager) - // reconnect the signal we disconnnected in setImage() below - connect(m_manager, SIGNAL(imageReady(ThumbnailableImage)), - this, SLOT(setImage(ThumbnailableImage))); - emit imageRequired(m_image); - setMaterialIndex(m_defaultMaterial); -#endif - } -} - -void ThumbnailNode::createFullNode() -{ - m_full = new QGLSceneNode; - m_full->setPosition(position()); - m_full->setGeometry(geometry()); - m_full->setStart(start()); - m_full->setCount(count()); - m_full->setPalette(palette()); - m_full->setMaterialIndex(m_defaultMaterial); -} - -void ThumbnailNode::destroyFullNode() -{ - if (!m_full) - return; - QGLMaterial *mat = m_full->material(); - if (m_full->materialIndex() != m_defaultMaterial) - m_full->palette()->removeMaterial(mat); - delete m_full; - m_full = 0; -} - -void ThumbnailNode::loadFullImage() -{ - if (!m_full) - createFullNode(); - Q_CHECK_PTR(m_full); - // if we have a valid image, and the full node still has the - // default material, switch to a new material which displays - // the full size image - if (!m_image.data().isNull() && - m_full->materialIndex() == m_defaultMaterial) - { - QGLMaterial *mat = new QGLMaterial; - QGLTexture2D *tex = new QGLTexture2D; - tex->setImage(m_image.data()); - mat->setTexture(tex); - mat->setObjectName(m_image.url().path()); - int ix = palette()->addMaterial(mat); - m_full->setMaterialIndex(ix); - mat->setParent(m_full); - } -} - -void ThumbnailNode::drawGeometry(QGLPainter *painter) -{ - QGLSceneNode::drawGeometry(painter); -} - -void ThumbnailNode::draw(QGLPainter *painter) -{ - QGLSceneNode *p = qobject_cast<QGLSceneNode*>(parent()); - Q_ASSERT_X(p && p->userEffect() && (!hasEffect()), - "ThumbnailNode::draw", "Should only inherit parents ThumbnailEffect"); - - ThumbnailEffect *effect = static_cast<ThumbnailEffect*>(p->userEffect()); - Q_ASSERT_X(effect && effect->name() == QLatin1String("ThumbnailEffect"), - "ThumbnailNode::draw", "Can only be drawn with custom ThumbnailEffect"); - - if (m_defaultMaterial == -1) - m_defaultMaterial = materialIndex(); - - QMatrix4x4 m = painter->modelViewMatrix().top(); - QVector3D pos = m.map(position()); - qreal magSquared = pos.lengthSquared(); - - Distance distance = Unknown; - - if (magSquared > (4.0f * m_thresholdSquared)) - distance = VeryFar; - else if (magSquared > (2.0f * m_thresholdSquared)) - distance = Far; - else if (magSquared > m_thresholdSquared) - distance = Middle; - else - distance = Near; - - if (true) // distance != m_lastDistance) - { - m_lastDistance = distance; - m_image.setThumbnailed(m_lastDistance > Near); - switch (distance) - { - case Unknown: - case Near: - setupLoading(); - loadFullImage(); - break; - case Middle: - setupLoading(); - loadFullImage(); - break; - case Far: - setupLoading(); - break; - case VeryFar: - destroyFullNode(); - break; - } - } - - effect->setThumbnail(m_image.isThumbnailed()); - if (m_image.isThumbnailed() || !m_full) - { - QGLSceneNode::draw(painter); - } - else - { - if (m_image.data().isNull()) - m_full->setMaterialIndex(m_defaultMaterial); - if (pickNode() && painter->isPicking()) - painter->setObjectPickId(pickNode()->id()); - m_full->draw(painter); - } - -} - -void ThumbnailNode::setImage(const ThumbnailableImage &image) -{ - Q_ASSERT(QThread::currentThread() == thread()); - Q_ASSERT(!image.isNull()); - - // the manager will be (potentially) loading a number of images, but - // we only want our one, so just check this is our order - if (m_url != image.url()) - return; - - // ok we got the right one, stop listening to the manager - if (sender()) - { - m_manager = sender(); - m_manager->disconnect(this, SLOT(setImage(ThumbnailableImage))); - } - - // ok maybe we got what we asked for but in the meantime we decided - // we did not want it anymore - if (!m_loading) - return; - - // the indices we are about to set will index this thumbnail image - // into the image that its atlas is based on via the texture coords - // that the atlas is using - those texture coords must be in the - // same geometry that this node is referencing, so that they will - // arrive at the vertex shader at the same time - ie they are all - // matched in the data arrays in the geometry object - //Q_ASSERT(QAtlas::instance()->geometry() == geometry()); - - m_image = image; - Q_ASSERT(!m_image.data().isNull()); - - // configure the placeholder for the actual image size - // this makes a photo of 1024 x 768 display on approx 3.0 x 2.8 pane - // add salt to taste - //QSizeF f = QSizeF(m_image.data().size()) / 600.0f; - QSizeF f = QSizeF(m_image.data().size()); - f.scale(1.6, 1.2, Qt::KeepAspectRatio); - QVector3D a(-f.width(), -f.height(), 0.0f); - QVector3D b(f.width(), -f.height(), 0.0f); - QVector3D c(f.width(), f.height(), 0.0f); - QVector3D d(-f.width(), f.height(), 0.0f); - int k = start(); - Q_ASSERT(count() == 6); - QGeometryData g = geometry(); - QGL::IndexArray inxs = g.indices(); - g.vertex(inxs.at(k)) = a; - g.vertex(inxs.at(k+1)) = b; - g.vertex(inxs.at(k+2)) = c; - g.vertex(inxs.at(k+5)) = d; - - setMaterialIndex(-1); - m_loading = false; - - emit nodeChanged(); -} diff --git a/demos/qt3d/photobrowser3d/thumbnailnode.h b/demos/qt3d/photobrowser3d/thumbnailnode.h deleted file mode 100644 index c05da591..00000000 --- a/demos/qt3d/photobrowser3d/thumbnailnode.h +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef THUMBNAILNODE_H -#define THUMBNAILNODE_H - -#include "qglscenenode.h" -#include "thumbnailableimage.h" - -#include <QtCore/qmath.h> -#include <QUrl> - -class ThumbnailNode : public QGLSceneNode -{ - Q_OBJECT -public: - enum Distance - { - Unknown, - Near, - Middle, - Far, - VeryFar - }; - - explicit ThumbnailNode(QObject *parent = 0); - ~ThumbnailNode(); - QUrl url() const { return m_url; } - void setUrl(const QUrl &url); - void setThreshold(qreal threshold) { m_thresholdSquared = threshold * threshold; } - qreal threshold() const { return qSqrt(m_thresholdSquared); } - void draw(QGLPainter *painter); - void drawGeometry(QGLPainter *painter); - ThumbnailableImage image() const { return m_image; } -signals: - void imageRequired(const ThumbnailableImage &); - void nodeChanged(); -public slots: - void setImage(const ThumbnailableImage &image); -private: - void createFullNode(); - void destroyFullNode(); - void setupLoading(); - void setupThumbnailing(); - void loadFullImage(); - - ThumbnailableImage m_image; - qreal m_thresholdSquared; - int m_defaultMaterial; - QUrl m_url; - bool m_loading; - QGLSceneNode *m_full; - QSizeF m_max; - QObject *m_manager; - Distance m_lastDistance; -}; - -#endif // THUMBNAILNODE_H diff --git a/demos/qt3d/qt3d.pro b/demos/qt3d/qt3d.pro deleted file mode 100644 index 90e858a3..00000000 --- a/demos/qt3d/qt3d.pro +++ /dev/null @@ -1,2 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = teaservice shapes pageflip cubehouse photobrowser3d diff --git a/demos/qt3d/qt3d.svg b/demos/qt3d/qt3d.svg deleted file mode 100644 index 4b25ec50..00000000 --- a/demos/qt3d/qt3d.svg +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0"?> -<!-- Converted with SVG Converter - Version 0.9.5 (Compiled Mon May 30 09:08:51 2011) - Copyright (C) 2011 Nokia --> -<svg xmlns="http://www.w3.org/2000/svg" width="287" version="1.1" height="286" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="tiny" id="svg2"> - <defs id="defs4"> - <linearGradient id="linearGradient4309"> - <stop offset="0" style="stop-color:#d4f301;stop-opacity:1;" id="stop4311"/> - <stop offset="1" style="stop-color:#d4f301;stop-opacity:0;" id="stop4313"/> - </linearGradient> - <linearGradient gradientTransform="matrix(1.0104795,0,0,1.004441,23.387309,76.758859)" id="linearGradient3730-2" y1="131.35715" y2="156.39526" x1="23.626827" gradientUnits="userSpaceOnUse" x2="303.57144"> - <stop offset="0" style="stop-color:#038d30;stop-opacity:1;" id="stop3726-7"/> - <stop offset="1" style="stop-color:#038d30;stop-opacity:0;" id="stop3728-1"/> - </linearGradient> - <linearGradient id="linearGradient3724-7"> - <stop offset="0" style="stop-color:#038d30;stop-opacity:1;" id="stop3726-7"/> - <stop offset="1" style="stop-color:#038d30;stop-opacity:0;" id="stop3728-1"/> - </linearGradient> - <linearGradient id="linearGradient4315" y1="62.920685" y2="62.920685" x1="72.492188" gradientUnits="userSpaceOnUse" x2="165.83203"> - <stop offset="0" style="stop-color:#d4f301;stop-opacity:1;" id="stop4311"/> - <stop offset="1" style="stop-color:#d4f301;stop-opacity:0;" id="stop4313"/> - </linearGradient> - </defs> - <metadata id="metadata7"/> - <g id="layer1" transform="translate(-25.071424,-77.933617)"> - <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#d4f301;stroke-width:8.85648727;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="path3722" d="M 149.39285,339.37194 C 118.29002,338.06386 93.410274,329.21846 78.267585,314.08502 66.239667,302.06444 58.159936,285.11057 54.818135,264.88047 c -1.962614,-11.881 -2.442596,-20.11519 -2.455216,-42.1199 -0.01051,-18.36712 0.160997,-23.0644 1.239861,-33.95521 2.529982,-25.53941 11.482605,-46.43472 25.677112,-59.93007 16.042727,-15.25252 39.462148,-23.21337 72.203768,-24.54383 6.77105,-0.27512 31.97542,0.38686 41.46813,1.08915 17.85829,1.32123 29.86273,4.01251 41.92069,9.39824 16.71724,7.46685 28.60768,18.52238 36.44553,33.88638 5.7477,11.26691 9.34961,23.29707 11.69339,39.05536 2.22754,14.97664 2.81073,44.00559 1.22086,60.77114 -2.76934,29.20404 -10.704,50.36949 -24.19378,64.53629 -8.65346,9.08774 -21.29946,16.39504 -35.37578,20.44137 -13.11053,3.76868 -25.14568,5.0858 -52.44498,5.73944 -13.81368,0.33078 -17.4242,0.35023 -22.82487,0.12311 l 0,0 z"/> - <rect width="236.93414" x="49.282932" y="102.78797" rx="95.84404" ry="92.255867" height="239.43414" style="opacity:0;fill:none;stroke:#008000;stroke-width:3.29858350999999980;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect2852"/> - <rect width="175" x="28.571428" y="19.214285" rx="95.84404" ry="92.255867" height="206.07143" style="opacity:0;fill:#b94b4b;fill-opacity:1;stroke:#05d105;stroke-width:4.147;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect3704" transform="translate(25.071424,77.933617)"/> - <image width="172.71428" x="86.571419" y="214.50505" height="93.14286" xlink:href="data:image/png;base64,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 " id="image3149"/> - <image width="156.57143" x="89.857132" y="140.67836" height="65.897751" id="image3075" xlink:href="data:image/png;base64,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 "/> - <rect width="285.97864" x="26.028843" y="78.512794" rx="0" height="284.96848" ry="0" style="fill:#000000;fill-opacity:1;stroke:none;opacity:0" id="rect2995"/> - </g> - <g id="layer2"/> -</svg> diff --git a/demos/qt3d/shapes/qt3d.ico b/demos/qt3d/shapes/qt3d.ico Binary files differdeleted file mode 100644 index e6442baf..00000000 --- a/demos/qt3d/shapes/qt3d.ico +++ /dev/null diff --git a/demos/qt3d/shapes/qt3d.png b/demos/qt3d/shapes/qt3d.png Binary files differdeleted file mode 100644 index 21ec0176..00000000 --- a/demos/qt3d/shapes/qt3d.png +++ /dev/null diff --git a/demos/qt3d/shapes/shapes.cpp b/demos/qt3d/shapes/shapes.cpp deleted file mode 100644 index 7871d2e2..00000000 --- a/demos/qt3d/shapes/shapes.cpp +++ /dev/null @@ -1,430 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qglpainter.h" -#include "qglbuilder.h" -#include "qglcube.h" -#include "qglteapot.h" -#include "qglcamera.h" -#include "qgltexture2d.h" -#include "qglsubsurface.h" -#include <QApplication> -#include <QImage> -#include <QPainter> -#include <QDebug> - -class ShapesWidget : public QGLWidget -{ - Q_OBJECT -public: - ShapesWidget(QWidget *parent = 0); - ~ShapesWidget(); - -protected: - void initializeGL(); - void paintGL(); - -private: - void paintPoints(QGLPainter *painter, const QRect& rect); - void paintLines(QGLPainter *painter, const QRect& rect); - void paintLineStrip(QGLPainter *painter, const QRect& rect); - void paintLineLoop(QGLPainter *painter, const QRect& rect); - void paintTriangles(QGLPainter *painter, const QRect& rect); - void paintTriangleStrip(QGLPainter *painter, const QRect& rect); - void paintTriangleFan(QGLPainter *painter, const QRect& rect); - void paintCube(QGLPainter *painter, const QRect& rect); - void paintTeapot(QGLPainter *painter, const QRect& rect); - void drawText(QGLPainter *painter, const QRect& posn, const QString& str); - - static QVector2DArray basicPoints(const QRect& rect); - - QGLCamera camera; - QGLSceneNode *scene; - QGLSceneNode *cube; - QGLSceneNode *teapot; - QGLLightModel oneSidedModel; - QGLLightModel twoSidedModel; -}; - -ShapesWidget::ShapesWidget(QWidget *parent) - : QGLWidget(parent) -{ - setWindowTitle(tr("GL Primitive Shapes")); - oneSidedModel.setModel(QGLLightModel::OneSided); - twoSidedModel.setModel(QGLLightModel::TwoSided); -} - -ShapesWidget::~ShapesWidget() -{ - delete scene; -} - -void ShapesWidget::initializeGL() -{ - QGLPainter painter(this); - - painter.setLightModel(&twoSidedModel); - painter.setFaceColor(QGL::FrontFaces, QColor(170, 202, 0)); - painter.setFaceColor(QGL::BackFaces, QColor(202, 170, 0)); - - QGLBuilder builder; - builder << QGL::Faceted << QGLCube(); - cube = builder.currentNode(); - builder << QGL::Smooth << QGLTeapot(); - teapot = builder.currentNode(); - scene = builder.finalizedSceneNode(); -} - -void ShapesWidget::paintGL() -{ - QGLPainter painter(this); - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glDisable(GL_DEPTH_TEST); - - QMatrix4x4 projm; - projm.ortho(rect()); - painter.projectionMatrix() = projm; - painter.modelViewMatrix().setToIdentity(); - - QRect wrect = rect(); - int boxw = wrect.width() / 3; - int boxh = wrect.height() / 3; - - paintLines(&painter, QRect(0, 0, boxw, boxh)); - paintLineStrip(&painter, QRect(boxw, 0, boxw, boxh)); - paintLineLoop(&painter, QRect(boxw * 2, 0, boxw, boxh)); - paintTriangles(&painter, QRect(0, boxh, boxw, boxh)); - paintTriangleStrip(&painter, QRect(boxw, boxh, boxw, boxh)); - paintTriangleFan(&painter, QRect(boxw * 2, boxh, boxw, boxh)); - paintPoints(&painter, QRect(0, boxh * 2, boxw, boxh)); - - glEnable(GL_DEPTH_TEST); - - paintCube(&painter, QRect(boxw, boxh * 2, boxw, boxh)); - paintTeapot(&painter, QRect(boxw * 2, boxh * 2, boxw, boxh)); -} - -QVector2DArray ShapesWidget::basicPoints(const QRect& rect) -{ - QVector2DArray vertices; - int step = qMin(rect.width() / 6, rect.height() / 6); - int midx = rect.x() + rect.width() / 2; - int midy = rect.y() + rect.height() / 2; - vertices.append(midx - step * 2, midy - step); - vertices.append(midx + step, midy - step * 2); - vertices.append(midx, midy - step); - vertices.append(midx + step * 2 + step / 2, midy - step / 2); - vertices.append(midx - step, midy); - vertices.append(midx + step * 2, midy + step); - vertices.append(midx - step, midy + step); - vertices.append(midx + step * 2, midy); - return vertices; -} - -void ShapesWidget::paintPoints(QGLPainter *painter, const QRect& rect) -{ - painter->setStandardEffect(QGL::FlatColor); - painter->setColor(QColor(170, 202, 0)); - - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, basicPoints(rect)); - painter->draw(QGL::Points, 8); - - drawText(painter, rect, tr("Points")); -} - -void ShapesWidget::paintLines(QGLPainter *painter, const QRect& rect) -{ - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, basicPoints(rect)); - painter->draw(QGL::Lines, 8); - - drawText(painter, rect, tr("Lines")); -} - -void ShapesWidget::paintLineStrip(QGLPainter *painter, const QRect& rect) -{ - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, basicPoints(rect)); - painter->draw(QGL::LineStrip, 8); - - drawText(painter, rect, tr("Line strip")); -} - -void ShapesWidget::paintLineLoop(QGLPainter *painter, const QRect& rect) -{ - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, basicPoints(rect)); - painter->draw(QGL::LineLoop, 8); - - drawText(painter, rect, tr("Line loop")); -} - -void ShapesWidget::paintTriangles(QGLPainter *painter, const QRect& rect) -{ - painter->setStandardEffect(QGL::LitMaterial); - - QVector2DArray vertices; - QVector3DArray normals; - int step = qMin(rect.width() / 8, rect.height() / 8); - int midx = rect.x() + rect.width() / 2; - int midy = rect.y() + rect.height() / 2; - - vertices.append(midx - step * 3, midy); - vertices.append(midx - step * 3, midy + step * 2); - vertices.append(midx - step, midy + step * 2); - - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - - vertices.append(midx - step * 2, midy - step); - vertices.append(midx + step / 2, midy + step * 2); - vertices.append(midx + step * 3, midy - step); - - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, vertices); - painter->setVertexAttribute(QGL::Normal, normals); - painter->draw(QGL::Triangles, 6); - - drawText(painter, rect, tr("Triangles")); -} - -void ShapesWidget::paintTriangleStrip(QGLPainter *painter, const QRect& rect) -{ - painter->setStandardEffect(QGL::LitMaterial); - - QVector2DArray vertices; - QVector3DArray normals; - int step = qMin(rect.width() / 8, rect.height() / 8); - int midx = rect.x() + rect.width() / 2; - int midy = rect.y() + rect.height() / 2; - - vertices.append(midx - step * 3, midy - step * 2); - vertices.append(midx - step * 3, midy + step); - vertices.append(midx - step, midy - step * 2); - vertices.append(midx, midy + step); - vertices.append(midx + step, midy - step * 2); - vertices.append(midx + step * 2, midy + step * 2); - - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, vertices); - painter->setVertexAttribute(QGL::Normal, normals); - painter->draw(QGL::TriangleStrip, 6); - - // Overpaint some lines to show the triangle boundaries. - painter->clearAttributes(); - painter->setStandardEffect(QGL::FlatColor); - painter->setColor(QColor(202, 170, 0)); - painter->setVertexAttribute(QGL::Position, vertices); - painter->draw(QGL::LineStrip, 4, 1); - - drawText(painter, rect, tr("Triangle strip")); -} - -void ShapesWidget::paintTriangleFan(QGLPainter *painter, const QRect& rect) -{ - painter->setStandardEffect(QGL::LitMaterial); - - QVector2DArray vertices; - QVector3DArray normals; - int step = qMin(rect.width() / 8, rect.height() / 8); - int midx = rect.x() + rect.width() / 2; - int midy = rect.y() + rect.height() / 2; - - vertices.append(midx - step, midy + step); - vertices.append(midx + step * 2, midy + step * 2); - vertices.append(midx + step * 2, midy); - vertices.append(midx + step, midy - step); - vertices.append(midx - step, midy - step * 2); - - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - normals.append(0.0f, 0.0f, 1.0f); - - painter->clearAttributes(); - painter->setVertexAttribute(QGL::Position, vertices); - painter->setVertexAttribute(QGL::Normal, normals); - painter->draw(QGL::TriangleFan, 5); - - // Overpaint some lines to show the triangle boundaries. - painter->clearAttributes(); - painter->setStandardEffect(QGL::FlatColor); - painter->setColor(QColor(202, 170, 0)); - static ushort const indices[] = {0, 2, 0, 3}; - painter->setVertexAttribute(QGL::Position, vertices); - painter->draw(QGL::Lines, indices, 4); - - drawText(painter, rect, tr("Triangle fan")); -} - -void ShapesWidget::paintCube(QGLPainter *painter, const QRect& rect) -{ - painter->setStandardEffect(QGL::LitMaterial); - - painter->projectionMatrix().push(); - painter->modelViewMatrix().push(); - - QGLSubsurface surface(painter->currentSurface(), rect); - painter->pushSurface(&surface); - - painter->setCamera(&camera); - painter->modelViewMatrix().rotate(45.0f, 1.0f, 1.0f, 1.0f); - - cube->draw(painter); - - painter->projectionMatrix().pop(); - painter->modelViewMatrix().pop(); - - painter->popSurface(); - - drawText(painter, rect, tr("Cube")); -} - -void ShapesWidget::paintTeapot(QGLPainter *painter, const QRect& rect) -{ - painter->setStandardEffect(QGL::LitMaterial); - - painter->projectionMatrix().push(); - painter->modelViewMatrix().push(); - - QGLSubsurface surface(painter->currentSurface(), rect); - painter->pushSurface(&surface); - - painter->setCamera(&camera); - - // Need a one-sided lighting model for the teapot. - painter->setLightModel(&oneSidedModel); - - teapot->draw(painter); - - painter->setLightModel(&twoSidedModel); - - painter->projectionMatrix().pop(); - painter->modelViewMatrix().pop(); - - painter->popSurface(); - - drawText(painter, rect, tr("Teapot")); -} - -// Draw text centered on the bottom of the "posn" rectangle. -void ShapesWidget::drawText - (QGLPainter *painter, const QRect& posn, const QString& str) -{ - QFontMetrics metrics = fontMetrics(); - QRect rect = metrics.boundingRect(str); - rect.adjust(0, 0, 1, 1); - - QFont f = font(); - - QImage image(rect.size(), QImage::Format_ARGB32); - image.fill(0); - QPainter p2(&image); - p2.setFont(f); - p2.setPen(Qt::white); - p2.drawText(-rect.x(), metrics.ascent(), str); - p2.end(); - - QGLTexture2D texture; - texture.setImage(image); - - int x = posn.x() + (posn.width() - rect.width()) / 2; - int y = posn.y() + posn.height() - metrics.ascent() - metrics.descent(); - y -= 10; - - QVector2DArray vertices; - vertices.append(x + rect.x(), y + metrics.ascent()); - vertices.append(x + rect.x(), y - metrics.descent()); - vertices.append(x + rect.x() + rect.width(), y - metrics.descent()); - vertices.append(x + rect.x() + rect.width(), y + metrics.ascent()); - - QVector2DArray texCoord; - texCoord.append(0.0f, 0.0f); - texCoord.append(0.0f, 1.0f); - texCoord.append(1.0f, 1.0f); - texCoord.append(1.0f, 0.0f); - - painter->clearAttributes(); - painter->setStandardEffect(QGL::FlatReplaceTexture2D); - texture.bind(); - painter->setVertexAttribute(QGL::Position, vertices); - painter->setVertexAttribute(QGL::TextureCoord0, texCoord); - painter->draw(QGL::TriangleFan, 4); - painter->setStandardEffect(QGL::FlatColor); - glBindTexture(GL_TEXTURE_2D, 0); -} - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - ShapesWidget w; - -#ifdef Q_OS_SYMBIAN - w.setAttribute(Qt::WA_LockLandscapeOrientation, true); - w.showFullScreen(); -#else - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - w.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - w.showFullScreen(); - else - w.show(); -#endif - return app.exec(); -} - -#include "shapes.moc" diff --git a/demos/qt3d/shapes/shapes.desktop b/demos/qt3d/shapes/shapes.desktop deleted file mode 100644 index 9880fbfb..00000000 --- a/demos/qt3d/shapes/shapes.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=shapes -Icon=/usr/share/icons/hicolor/80x80/apps/qt3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/shapes -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_shapes diff --git a/demos/qt3d/shapes/shapes.pro b/demos/qt3d/shapes/shapes.pro deleted file mode 100644 index 3d6be070..00000000 --- a/demos/qt3d/shapes/shapes.pro +++ /dev/null @@ -1,14 +0,0 @@ -TEMPLATE = app -TARGET = shapes -CONFIG += qt warn_on - -CONFIG += qt3d_deploy_pkg -include(../../../pkg.pri) - -SOURCES = shapes.cpp - -OTHER_FILES += \ - shapes.rc \ - shapes.desktop - -RC_FILE = shapes.rc diff --git a/demos/qt3d/shapes/shapes.rc b/demos/qt3d/shapes/shapes.rc deleted file mode 100644 index b40ecdc1..00000000 --- a/demos/qt3d/shapes/shapes.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qt3d.ico" diff --git a/demos/qt3d/teaservice/README b/demos/qt3d/teaservice/README deleted file mode 100644 index d7d71a61..00000000 --- a/demos/qt3d/teaservice/README +++ /dev/null @@ -1,7 +0,0 @@ - -This example demonstrates a view with multiple scene objects, plus material -parameters. It shows a teapot, two teacups, and two teaspoons. - -The model source data came from "http://www.sjbaker.org/teapot/teaset.tgz". - -Note: the teacups have no bottoms in the original source data. diff --git a/demos/qt3d/teaservice/meshobject.cpp b/demos/qt3d/teaservice/meshobject.cpp deleted file mode 100644 index f2ef5242..00000000 --- a/demos/qt3d/teaservice/meshobject.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "meshobject.h" -#include "qglview.h" - -MeshObject::MeshObject(QGLSceneNode *meshObject, QObject *parent) - : QObject(parent) -{ - m_mesh = 0; - m_meshObject = meshObject; - m_scale = 1.0f; - m_rotationAngle = 0.0f; - m_effect = 0; - m_objectId = -1; - m_hovering = false; - m_material = 0; - m_hoverMaterial = 0; -} - -MeshObject::MeshObject(QGLAbstractScene *scene, QObject *parent) - : QObject(parent) -{ - scene->setParent(this); - m_mesh = 0; - m_meshObject = scene->mainNode(); - m_scale = 1.0f; - m_rotationAngle = 0.0f; - m_effect = 0; - m_objectId = -1; - m_hovering = false; - m_material = 0; - m_hoverMaterial = 0; -} - -MeshObject::~MeshObject() -{ - delete m_mesh; -} - -void MeshObject::initialize(QGLView *view, QGLPainter *painter) -{ - Q_UNUSED(painter); - if (m_objectId != -1) - view->registerObject(m_objectId, this); -} - -void MeshObject::draw(QGLPainter *painter) -{ - // Position the model at its designated position, scale, and orientation. - painter->modelViewMatrix().push(); - painter->modelViewMatrix().translate(m_position); - if (m_scale != 1.0f) - painter->modelViewMatrix().scale(m_scale); - if (m_rotationAngle != 0.0f) - painter->modelViewMatrix().rotate(m_rotationAngle, m_rotationVector); - - // Apply the material and effect to the painter. - QGLMaterial *material; - if (m_hovering) - material = m_hoverMaterial; - else - material = m_material; - painter->setColor(material->diffuseColor()); - painter->setFaceMaterial(QGL::AllFaces, material); - if (m_effect) - painter->setUserEffect(m_effect); - else - painter->setStandardEffect(QGL::LitMaterial); - - // Mark the object for object picking purposes. - int prevObjectId = painter->objectPickId(); - if (m_objectId != -1) - painter->setObjectPickId(m_objectId); - - // Draw the geometry mesh. - if (m_meshObject) - m_meshObject->draw(painter); - else - m_mesh->draw(painter); - - // Turn off the user effect, if present. - if (m_effect) - painter->setStandardEffect(QGL::LitMaterial); - - // Revert to the previous object identifier. - painter->setObjectPickId(prevObjectId); - - // Restore the modelview matrix. - painter->modelViewMatrix().pop(); -} - -bool MeshObject::event(QEvent *e) -{ - // Convert the raw event into a signal representing the user's action. - if (e->type() == QEvent::MouseButtonPress) { - QMouseEvent *me = (QMouseEvent *)e; - if (me->button() == Qt::LeftButton) - emit pressed(); - } else if (e->type() == QEvent::MouseButtonRelease) { - QMouseEvent *me = (QMouseEvent *)e; - if (me->button() == Qt::LeftButton) { - emit released(); - if (me->x() >= 0) // Positive: inside object, Negative: outside. - emit clicked(); - } - } else if (e->type() == QEvent::MouseButtonDblClick) { - emit doubleClicked(); - } else if (e->type() == QEvent::Enter) { - m_hovering = true; - emit hoverChanged(); - } else if (e->type() == QEvent::Leave) { - m_hovering = false; - emit hoverChanged(); - } - return QObject::event(e); -} diff --git a/demos/qt3d/teaservice/meshobject.h b/demos/qt3d/teaservice/meshobject.h deleted file mode 100644 index 15b62f05..00000000 --- a/demos/qt3d/teaservice/meshobject.h +++ /dev/null @@ -1,117 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef MESHOBJECT_H -#define MESHOBJECT_H - -#include <QtCore/qobject.h> -#include <QtGui/qevent.h> - -#include "qglpainter.h" -#include "qglabstractscene.h" - -QT_BEGIN_NAMESPACE -class QGLView; -class QGLSceneNode; -QT_END_NAMESPACE - -class MeshObject : public QObject -{ - Q_OBJECT -public: - explicit MeshObject(QGLSceneNode *meshObject, QObject *parent=0); - explicit MeshObject(QGLAbstractScene *scene, QObject *parent=0); - virtual ~MeshObject(); - - QVector3D position() const { return m_position; } - void setPosition(const QVector3D& value) { m_position = value; } - - qreal scale() const { return m_scale; } - void setScale(qreal value) { m_scale = value; } - - qreal rotationAngle() const { return m_rotationAngle; } - void setRotationAngle(qreal value) { m_rotationAngle = value; } - - QVector3D rotationVector() const { return m_rotationVector; } - void setRotationVector(const QVector3D& value) { m_rotationVector = value; } - - QGLMaterial *material() const { return m_material; } - void setMaterial(QGLMaterial *value) - { m_material = value; m_hoverMaterial = value; } - - QGLMaterial *hoverMaterial() const { return m_hoverMaterial; } - void setHoverMaterial(QGLMaterial *value) { m_hoverMaterial = value; } - - QGLAbstractEffect *effect() const { return m_effect; } - void setEffect(QGLAbstractEffect *value) { m_effect = value; } - - int objectId() const { return m_objectId; } - void setObjectId(int id) { m_objectId = id; } - - void initialize(QGLView *view, QGLPainter *painter); - void draw(QGLPainter *painter); - -signals: - void pressed(); - void released(); - void clicked(); - void doubleClicked(); - void hoverChanged(); - -protected: - bool event(QEvent *e); - -private: - QGLSceneNode *m_mesh; - QGLSceneNode *m_meshObject; - QGLAbstractScene *m_scene; - QVector3D m_position; - qreal m_scale; - qreal m_rotationAngle; - QVector3D m_rotationVector; - QGLMaterial *m_material; - QGLMaterial *m_hoverMaterial; - QGLAbstractEffect *m_effect; - int m_objectId; - bool m_hovering; -}; - -#endif diff --git a/demos/qt3d/teaservice/per_pixel_lighting.fsh b/demos/qt3d/teaservice/per_pixel_lighting.fsh deleted file mode 100644 index d97a0461..00000000 --- a/demos/qt3d/teaservice/per_pixel_lighting.fsh +++ /dev/null @@ -1,112 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// Per-pixel lighting - fragment shader side. - -struct qt_MaterialParameters { - mediump vec4 emission; - mediump vec4 ambient; - mediump vec4 diffuse; - mediump vec4 specular; - mediump float shininess; -}; -uniform qt_MaterialParameters qt_Material; - -struct qt_SingleLightParameters { - mediump vec4 position; - mediump vec3 spotDirection; - mediump float spotExponent; - mediump float spotCutoff; - mediump float spotCosCutoff; - mediump float constantAttenuation; - mediump float linearAttenuation; - mediump float quadraticAttenuation; -}; -uniform qt_SingleLightParameters qt_Light; - -varying mediump vec3 qNormal; -varying mediump vec3 qLightDirection; -varying mediump vec3 qHalfVector; -varying mediump vec3 qVertexToLight; -varying mediump vec4 qAmbient; -varying mediump vec4 qDiffuse; - -vec4 qLightPixel(vec4 ambient, vec4 diffuse) -{ - float angle, spot; - vec4 color; - vec4 component; - vec3 normal = normalize(qNormal); - - // Start with the ambient color. - color = ambient; - - // Determine the cosine of the angle between the normal and the - // vector from the vertex to the light. - angle = max(dot(normal, qLightDirection), 0.0); - - // Calculate the diffuse light components. - component = angle * diffuse; - - // Calculate the specular light components. - if (angle != 0.0) { - angle = max(dot(normal, qHalfVector), 0.0); - component += pow(angle, qt_Material.shininess) * qt_Material.specular; - } - - // Apply the spotlight angle and exponent. - if (qt_Light.spotCutoff != 180.0) { - spot = max(dot(normalize(qVertexToLight), - normalize(qt_Light.spotDirection)), 0.0); - if (spot < qt_Light.spotCosCutoff) - spot = 0.0; - else - spot = pow(spot, qt_Light.spotExponent); - component *= spot; - } - - return clamp(color + component, 0.0, 1.0); -} - -void main(void) -{ - gl_FragColor = qLightPixel(qAmbient, qDiffuse); -} diff --git a/demos/qt3d/teaservice/per_pixel_lighting.vsh b/demos/qt3d/teaservice/per_pixel_lighting.vsh deleted file mode 100644 index d5157840..00000000 --- a/demos/qt3d/teaservice/per_pixel_lighting.vsh +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// Per-pixel lighting - vertex shader side. - -attribute highp vec4 qt_Vertex; -attribute mediump vec3 qt_Normal; -uniform mediump mat4 qt_ModelViewMatrix; -uniform mediump mat4 qt_ModelViewProjectionMatrix; -uniform mediump mat3 qt_NormalMatrix; - -struct qt_MaterialParameters { - mediump vec4 emission; - mediump vec4 ambient; - mediump vec4 diffuse; - mediump vec4 specular; - mediump float shininess; -}; -uniform qt_MaterialParameters qt_Material; - -struct qt_SingleLightParameters { - mediump vec4 position; - mediump vec3 spotDirection; - mediump float spotExponent; - mediump float spotCutoff; - mediump float spotCosCutoff; - mediump float constantAttenuation; - mediump float linearAttenuation; - mediump float quadraticAttenuation; -}; -uniform qt_SingleLightParameters qt_Light; - -varying mediump vec4 qAmbient; -varying mediump vec4 qDiffuse; -varying mediump vec3 qNormal; -varying mediump vec3 qLightDirection; -varying mediump vec3 qHalfVector; -varying mediump vec3 qVertexToLight; - -void qLightVertex(vec4 vertex, vec3 normal) -{ - vec3 toEye; - qNormal = normal; - qAmbient = qt_Material.emission + qt_Material.ambient; - qDiffuse = qt_Material.diffuse; - qLightDirection = normalize(qt_Light.position.xyz); - toEye = vec3(0, 0, 1); - qHalfVector = normalize(qLightDirection + toEye); - qVertexToLight = vertex.xyz - qt_Light.position.xyz; -} - -void main(void) -{ - gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex; - vec4 vertex = qt_ModelViewMatrix * qt_Vertex; - vec3 normal = normalize(qt_NormalMatrix * qt_Normal); - qLightVertex(vertex, normal); -} diff --git a/demos/qt3d/teaservice/perpixeleffect.cpp b/demos/qt3d/teaservice/perpixeleffect.cpp deleted file mode 100644 index fc3a4260..00000000 --- a/demos/qt3d/teaservice/perpixeleffect.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "perpixeleffect.h" - -PerPixelEffect::PerPixelEffect() -{ - setVertexShaderFromFile(":per_pixel_lighting.vsh"); - setFragmentShaderFromFile(":per_pixel_lighting.fsh"); -} - -PerPixelEffect::~PerPixelEffect() -{ -} diff --git a/demos/qt3d/teaservice/perpixeleffect.h b/demos/qt3d/teaservice/perpixeleffect.h deleted file mode 100644 index dd265f2a..00000000 --- a/demos/qt3d/teaservice/perpixeleffect.h +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PERPIXELEFFECT_H -#define PERPIXELEFFECT_H - -#include "qglshaderprogrameffect.h" - -class PerPixelEffectPrivate; -class QGLShader; - -class PerPixelEffect : public QGLShaderProgramEffect -{ - Q_DISABLE_COPY(PerPixelEffect); -public: - PerPixelEffect(); - virtual ~PerPixelEffect(); -}; - -#endif diff --git a/demos/qt3d/teaservice/qt3d.ico b/demos/qt3d/teaservice/qt3d.ico Binary files differdeleted file mode 100644 index e6442baf..00000000 --- a/demos/qt3d/teaservice/qt3d.ico +++ /dev/null diff --git a/demos/qt3d/teaservice/qt3d.png b/demos/qt3d/teaservice/qt3d.png Binary files differdeleted file mode 100644 index 21ec0176..00000000 --- a/demos/qt3d/teaservice/qt3d.png +++ /dev/null diff --git a/demos/qt3d/teaservice/sceneobject.cpp b/demos/qt3d/teaservice/sceneobject.cpp deleted file mode 100644 index 0c7ec4ed..00000000 --- a/demos/qt3d/teaservice/sceneobject.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "sceneobject.h" -#include "meshobject.h" - -SceneObject::SceneObject(QObject *parent) - : QObject(parent) -{ -} - -SceneObject::~SceneObject() -{ -} - -void SceneObject::initialize(QGLView *view, QGLPainter *painter) -{ - // Initialize all of the mesh objects that we have as children. - foreach (QObject *obj, children()) { - MeshObject *meshobj = qobject_cast<MeshObject *>(obj); - if (meshobj) - meshobj->initialize(view, painter); - } -} - -void SceneObject::draw(QGLPainter *painter) -{ - // Draw all of the mesh objects that we have as children. - foreach (QObject *obj, children()) { - MeshObject *meshobj = qobject_cast<MeshObject *>(obj); - if (meshobj) - meshobj->draw(painter); - } -} diff --git a/demos/qt3d/teaservice/sceneobject.h b/demos/qt3d/teaservice/sceneobject.h deleted file mode 100644 index 0e3a3323..00000000 --- a/demos/qt3d/teaservice/sceneobject.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SCENEOBJECT_H -#define SCENEOBJECT_H - -#include <QtCore/qobject.h> -#include "qglpainter.h" - -QT_BEGIN_NAMESPACE -class QGLView; -QT_END_NAMESPACE - -class SceneObject : public QObject -{ - Q_OBJECT -public: - explicit SceneObject(QObject *parent=0); - virtual ~SceneObject(); - - virtual void initialize(QGLView *view, QGLPainter *painter); - virtual void draw(QGLPainter *painter); -}; - -#endif diff --git a/demos/qt3d/teaservice/teacup.txt b/demos/qt3d/teaservice/teacup.txt deleted file mode 100644 index f4dde3ef..00000000 --- a/demos/qt3d/teaservice/teacup.txt +++ /dev/null @@ -1,280 +0,0 @@ -26 -1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 -4,17,18,19,8,20,21,22,12,23,24,25,16,26,27,28 -19,29,30,31,22,32,33,34,25,35,36,37,28,38,39,40 -31,41,42,1,34,43,44,5,37,45,46,9,40,47,48,13 -13,14,15,16,49,50,51,52,53,54,55,56,57,58,59,60 -16,26,27,28,52,61,62,63,56,64,65,66,60,67,68,69 -28,38,39,40,63,70,71,72,66,73,74,75,69,76,77,78 -40,47,48,13,72,79,80,49,75,81,82,53,78,83,84,57 -193,194,195,196,197,198,199,200,201,202,203,204,1,2,3,4 -196,205,206,207,200,208,209,210,204,211,212,213,4,17,18,19 -207,214,215,216,210,217,218,219,213,220,221,222,19,29,30,31 -216,223,224,193,219,225,226,197,222,227,228,201,31,41,42,1 -229,230,231,28,232,233,234,235,236,237,238,239,240,241,242,243 -28,244,245,229,235,246,247,232,239,248,249,236,243,250,251,240 -57,58,59,60,85,86,87,88,89,90,91,92,93,94,95,96 -60,67,68,69,88,97,98,99,92,100,101,102,96,103,104,105 -69,76,77,78,99,106,107,108,102,109,110,111,105,112,113,114 -78,83,84,57,108,115,116,85,111,117,118,89,114,119,120,93 -93,94,95,96,121,122,123,124,125,126,127,128,129,130,131,132 -96,103,104,105,124,133,134,135,128,136,137,138,132,139,140,141 -105,112,113,114,135,142,143,144,138,145,146,147,141,148,149,150 -114,119,120,93,144,151,152,121,147,153,154,125,150,155,156,129 -129,130,131,132,157,158,159,160,161,162,163,164,165,166,167,168 -132,139,140,141,160,169,170,171,164,172,173,174,168,175,176,177 -141,148,149,150,171,178,179,180,174,181,182,183,177,184,185,186 -150,155,156,129,180,187,188,157,183,189,190,161,186,191,192,165 -251 -0.409091,0.772727,0.0 -0.409091,0.772727,-0.229091 -0.229091,0.772727,-0.409091 -0.0,0.772727,-0.409091 -0.409091,0.886364,0.0 -0.409091,0.886364,-0.229091 -0.229091,0.886364,-0.409091 -0.0,0.886364,-0.409091 -0.454545,0.886364,0.0 -0.454545,0.886364,-0.254545 -0.254545,0.886364,-0.454545 -0.0,0.886364,-0.454545 -0.454545,0.772727,0.0 -0.454545,0.772727,-0.254545 -0.254545,0.772727,-0.454545 -0.0,0.772727,-0.454545 --0.229091,0.772727,-0.409091 --0.409091,0.772727,-0.229091 --0.409091,0.772727,0.0 --0.229091,0.886364,-0.409091 --0.409091,0.886364,-0.229091 --0.409091,0.886364,0.0 --0.254545,0.886364,-0.454545 --0.454545,0.886364,-0.254545 --0.454545,0.886364,0.0 --0.254545,0.772727,-0.454545 --0.454545,0.772727,-0.254545 --0.454545,0.772727,0.0 --0.409091,0.772727,0.229091 --0.229091,0.772727,0.409091 -0.0,0.772727,0.409091 --0.409091,0.886364,0.229091 --0.229091,0.886364,0.409091 -0.0,0.886364,0.409091 --0.454545,0.886364,0.254545 --0.254545,0.886364,0.454545 -0.0,0.886364,0.454545 --0.454545,0.772727,0.254545 --0.254545,0.772727,0.454545 -0.0,0.772727,0.454545 -0.229091,0.772727,0.409091 -0.409091,0.772727,0.229091 -0.229091,0.886364,0.409091 -0.409091,0.886364,0.229091 -0.254545,0.886364,0.454545 -0.454545,0.886364,0.254545 -0.254545,0.772727,0.454545 -0.454545,0.772727,0.254545 -0.454545,0.545455,0.0 -0.454545,0.545455,-0.254545 -0.254545,0.545455,-0.454545 -0.0,0.545455,-0.454545 -0.454545,0.272727,0.0 -0.454545,0.272727,-0.254545 -0.254545,0.272727,-0.454545 -0.0,0.272727,-0.454545 -0.318182,0.0454545,0.0 -0.318182,0.0454545,-0.178182 -0.178182,0.0454545,-0.318182 -0.0,0.0454545,-0.318182 --0.254545,0.545455,-0.454545 --0.454545,0.545455,-0.254545 --0.454545,0.545455,0.0 --0.254545,0.272727,-0.454545 --0.454545,0.272727,-0.254545 --0.454545,0.272727,0.0 --0.178182,0.0454545,-0.318182 --0.318182,0.0454545,-0.178182 --0.318182,0.0454545,0.0 --0.454545,0.545455,0.254545 --0.254545,0.545455,0.454545 -0.0,0.545455,0.454545 --0.454545,0.272727,0.254545 --0.254545,0.272727,0.454545 -0.0,0.272727,0.454545 --0.318182,0.0454545,0.178182 --0.178182,0.0454545,0.318182 -0.0,0.0454545,0.318182 -0.254545,0.545455,0.454545 -0.454545,0.545455,0.254545 -0.254545,0.272727,0.454545 -0.454545,0.272727,0.254545 -0.178182,0.0454545,0.318182 -0.318182,0.0454545,0.178182 -0.545455,0.0454545,0.0 -0.545455,0.0454545,-0.305455 -0.305455,0.0454545,-0.545455 -0.0,0.0454545,-0.545455 -0.727273,0.136364,0.0 -0.727273,0.136364,-0.407273 -0.407273,0.136364,-0.727273 -0.0,0.136364,-0.727273 -0.909091,0.136364,0.0 -0.909091,0.136364,-0.509091 -0.509091,0.136364,-0.909091 -0.0,0.136364,-0.909091 --0.305455,0.0454545,-0.545455 --0.545455,0.0454545,-0.305455 --0.545455,0.0454545,0.0 --0.407273,0.136364,-0.727273 --0.727273,0.136364,-0.407273 --0.727273,0.136364,0.0 --0.509091,0.136364,-0.909091 --0.909091,0.136364,-0.509091 --0.909091,0.136364,0.0 --0.545455,0.0454545,0.305455 --0.305455,0.0454545,0.545455 -0.0,0.0454545,0.545455 --0.727273,0.136364,0.407273 --0.407273,0.136364,0.727273 -0.0,0.136364,0.727273 --0.909091,0.136364,0.509091 --0.509091,0.136364,0.909091 -0.0,0.136364,0.909091 -0.305455,0.0454545,0.545455 -0.545455,0.0454545,0.305455 -0.407273,0.136364,0.727273 -0.727273,0.136364,0.407273 -0.509091,0.136364,0.909091 -0.909091,0.136364,0.509091 -1.0,0.136364,0.0 -1.0,0.136364,-0.56 -0.56,0.136364,-1.0 -0.0,0.136364,-1.0 -1.0,0.0909091,0.0 -1.0,0.0909091,-0.56 -0.56,0.0909091,-1.0 -0.0,0.0909091,-1.0 -0.909091,0.0909091,0.0 -0.909091,0.0909091,-0.509091 -0.509091,0.0909091,-0.909091 -0.0,0.0909091,-0.909091 --0.56,0.136364,-1.0 --1.0,0.136364,-0.56 --1.0,0.136364,0.0 --0.56,0.0909091,-1.0 --1.0,0.0909091,-0.56 --1.0,0.0909091,0.0 --0.509091,0.0909091,-0.909091 --0.909091,0.0909091,-0.509091 --0.909091,0.0909091,0.0 --1.0,0.136364,0.56 --0.56,0.136364,1.0 -0.0,0.136364,1.0 --1.0,0.0909091,0.56 --0.56,0.0909091,1.0 -0.0,0.0909091,1.0 --0.909091,0.0909091,0.509091 --0.509091,0.0909091,0.909091 -0.0,0.0909091,0.909091 -0.56,0.136364,1.0 -1.0,0.136364,0.56 -0.56,0.0909091,1.0 -1.0,0.0909091,0.56 -0.509091,0.0909091,0.909091 -0.909091,0.0909091,0.509091 -0.727273,0.0909091,0.0 -0.727273,0.0909091,-0.407273 -0.407273,0.0909091,-0.727273 -0.0,0.0909091,-0.727273 -0.545455,0.0,0.0 -0.545455,0.0,-0.305455 -0.305455,0.0,-0.545455 -0.0,0.0,-0.545455 -0.318182,0.0,0.0 -0.318182,0.0,-0.178182 -0.178182,0.0,-0.318182 -0.0,0.0,-0.318182 --0.407273,0.0909091,-0.727273 --0.727273,0.0909091,-0.407273 --0.727273,0.0909091,0.0 --0.305455,0.0,-0.545455 --0.545455,0.0,-0.305455 --0.545455,0.0,0.0 --0.178182,0.0,-0.318182 --0.318182,0.0,-0.178182 --0.318182,0.0,0.0 --0.727273,0.0909091,0.407273 --0.407273,0.0909091,0.727273 -0.0,0.0909091,0.727273 --0.545455,0.0,0.305455 --0.305455,0.0,0.545455 -0.0,0.0,0.545455 --0.318182,0.0,0.178182 --0.178182,0.0,0.318182 -0.0,0.0,0.318182 -0.407273,0.0909091,0.727273 -0.727273,0.0909091,0.407273 -0.305455,0.0,0.545455 -0.545455,0.0,0.305455 -0.178182,0.0,0.318182 -0.318182,0.0,0.178182 -0.272727,0.0454545,0.0 -0.272727,0.0454545,-0.152727 -0.152727,0.0454545,-0.272727 -0.0,0.0454545,-0.272727 -0.409091,0.272727,0.0 -0.409091,0.272727,-0.229091 -0.229091,0.272727,-0.409091 -0.0,0.272727,-0.409091 -0.409091,0.545455,0.0 -0.409091,0.545455,-0.229091 -0.229091,0.545455,-0.409091 -0.0,0.545455,-0.409091 --0.152727,0.0454545,-0.272727 --0.272727,0.0454545,-0.152727 --0.272727,0.0454545,0.0 --0.229091,0.272727,-0.409091 --0.409091,0.272727,-0.229091 --0.409091,0.272727,0.0 --0.229091,0.545455,-0.409091 --0.409091,0.545455,-0.229091 --0.409091,0.545455,0.0 --0.272727,0.0454545,0.152727 --0.152727,0.0454545,0.272727 -0.0,0.0454545,0.272727 --0.409091,0.272727,0.229091 --0.229091,0.272727,0.409091 -0.0,0.272727,0.409091 --0.409091,0.545455,0.229091 --0.229091,0.545455,0.409091 -0.0,0.545455,0.409091 -0.152727,0.0454545,0.272727 -0.272727,0.0454545,0.152727 -0.229091,0.272727,0.409091 -0.409091,0.272727,0.229091 -0.229091,0.545455,0.409091 -0.409091,0.545455,0.229091 --0.454545,0.704545,0.0 --0.454545,0.704545,-0.0454545 --0.454545,0.772727,-0.0454545 --0.772727,0.863636,0.0 --0.772727,0.863636,-0.0454545 --0.818182,0.954545,-0.0454545 --0.818182,0.954545,0.0 --0.772727,0.522727,0.0 --0.772727,0.522727,-0.0454545 --0.909091,0.477273,-0.0454545 --0.909091,0.477273,0.0 --0.409091,0.363636,0.0 --0.409091,0.363636,-0.0454545 --0.409091,0.295455,-0.0454545 --0.409091,0.295455,0.0 --0.454545,0.772727,0.0454545 --0.454545,0.704545,0.0454545 --0.818182,0.954545,0.0454545 --0.772727,0.863636,0.0454545 --0.909091,0.477273,0.0454545 --0.772727,0.522727,0.0454545 --0.409091,0.295455,0.0454545 --0.409091,0.363636,0.0454545 -# reverse-patches diff --git a/demos/qt3d/teaservice/teaservice.cpp b/demos/qt3d/teaservice/teaservice.cpp deleted file mode 100644 index 3423916e..00000000 --- a/demos/qt3d/teaservice/teaservice.cpp +++ /dev/null @@ -1,386 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QApplication> -#include <QMainWindow> -#include <QMenu> -#include <QMenuBar> -#include <QKeyEvent> -#include <QAction> -#include <QDebug> -#include "qglview.h" -#include "meshobject.h" -#include "sceneobject.h" -#include "qglteapot.h" -#include "qglbuilder.h" -#include "perpixeleffect.h" - -enum { - ObjTeapot, - ObjTeacup1, - ObjTeacup2, - ObjTeaspoon1, - ObjTeaspoon2 -}; - -class Teapot : public MeshObject -{ - Q_OBJECT -public: - Teapot(QObject *parent=0); - ~Teapot() {} -}; - -static QGLSceneNode *createTeapot(QObject *parent) -{ - QGLBuilder builder; - builder << QGLTeapot(); - QGLSceneNode *n = builder.finalizedSceneNode(); - n->setParent(parent); - return n; -} - -Teapot::Teapot(QObject *parent) - : MeshObject(createTeapot(parent), parent) -{ -} - -class Teacup : public MeshObject -{ - Q_OBJECT -public: - Teacup(QObject *parent=0); - ~Teacup() {} -}; - -static QGLAbstractScene *loadBezier(const QString& fileName) -{ - QGLAbstractScene *scene; - scene = QGLAbstractScene::loadScene(fileName, QLatin1String("bezier")); - if (!scene) - qFatal("Could not load %s, probably plugin could not be found", - fileName.toLatin1().constData()); - return scene; -} - -Teacup::Teacup(QObject *parent) - : MeshObject(loadBezier(QLatin1String(":/teacup.txt")), parent) -{ -} - -class Teaspoon : public MeshObject -{ - Q_OBJECT -public: - Teaspoon(QObject *parent=0); - ~Teaspoon() {} -}; - -Teaspoon::Teaspoon(QObject *parent) - : MeshObject(loadBezier(QLatin1String(":/teaspoon.txt")), parent) -{ -} - -class TeaService : public QObject -{ - Q_OBJECT -public: - TeaService(QObject *parent=0); - ~TeaService(); - - SceneObject *service; - - Teapot *teapot; - Teacup *teacup1; - Teacup *teacup2; - Teaspoon *teaspoon1; - Teaspoon *teaspoon2; - PerPixelEffect *lighting; - - void changeMaterials(bool perPixel); - -signals: - void changed(); - -private slots: - void teapotClicked(); - void teacup1Clicked(); - void teacup2Clicked(); - void teaspoon1Clicked(); - void teaspoon2Clicked(); - -private: - QGLMaterial *china; - QGLMaterial *chinaHighlight; - QGLMaterial *metal; - QGLMaterial *metalHighlight; -}; - -TeaService::TeaService(QObject *parent) - : QObject(parent) -{ - china = new QGLMaterial(this); - china->setAmbientColor(QColor(192, 150, 128)); - china->setSpecularColor(QColor(60, 60, 60)); - china->setShininess(128); - - chinaHighlight = new QGLMaterial(this); - chinaHighlight->setAmbientColor(QColor(255, 192, 0)); - chinaHighlight->setSpecularColor(QColor(60, 60, 0)); - chinaHighlight->setShininess(128); - - metal = new QGLMaterial(this); - metal->setAmbientColor(QColor(255, 255, 255)); - metal->setDiffuseColor(QColor(150, 150, 150)); - metal->setSpecularColor(QColor(255, 255, 255)); - metal->setShininess(128); - - metalHighlight = new QGLMaterial(this); - metalHighlight->setAmbientColor(QColor(255, 255, 96)); - metalHighlight->setDiffuseColor(QColor(150, 150, 96)); - metalHighlight->setSpecularColor(QColor(255, 255, 255)); - metalHighlight->setShininess(128); - - service = new SceneObject(this); - teapot = new Teapot(service); - teacup1 = new Teacup(service); - teacup2 = new Teacup(service); - teacup1->setPosition(QVector3D(-2.3f, -0.75f, 0.0f)); - teacup2->setRotationAngle(180); - teacup2->setRotationVector(QVector3D(0, 1, 0)); - teacup2->setPosition(QVector3D(2.3f, -0.75f, 0.0f)); - teaspoon1 = new Teaspoon(service); - teaspoon2 = new Teaspoon(service); - teaspoon1->setRotationAngle(275); - teaspoon1->setRotationVector(QVector3D(1, 0, 0)); - teaspoon1->setPosition(QVector3D(-1.7f, -0.58f, 0.0f)); - teaspoon2->setRotationAngle(275); - teaspoon2->setRotationVector(QVector3D(1, 0, 0)); - teaspoon2->setPosition(QVector3D(1.7f, -0.58f, 0.0f)); - - teapot->setObjectId(ObjTeapot); - teacup1->setObjectId(ObjTeacup1); - teacup2->setObjectId(ObjTeacup2); - teaspoon1->setObjectId(ObjTeaspoon1); - teaspoon2->setObjectId(ObjTeaspoon2); - - lighting = new PerPixelEffect(); - changeMaterials(false); - - connect(teapot, SIGNAL(hoverChanged()), this, SIGNAL(changed())); - connect(teacup1, SIGNAL(hoverChanged()), this, SIGNAL(changed())); - connect(teacup2, SIGNAL(hoverChanged()), this, SIGNAL(changed())); - connect(teaspoon1, SIGNAL(hoverChanged()), this, SIGNAL(changed())); - connect(teaspoon2, SIGNAL(hoverChanged()), this, SIGNAL(changed())); - - connect(teapot, SIGNAL(clicked()), this, SLOT(teapotClicked())); - connect(teacup1, SIGNAL(clicked()), this, SLOT(teacup1Clicked())); - connect(teacup2, SIGNAL(clicked()), this, SLOT(teacup2Clicked())); - connect(teaspoon1, SIGNAL(clicked()), this, SLOT(teaspoon1Clicked())); - connect(teaspoon2, SIGNAL(clicked()), this, SLOT(teaspoon2Clicked())); -} - -TeaService::~TeaService() -{ - delete lighting; -} - -void TeaService::changeMaterials(bool perPixel) -{ - teapot->setMaterial(china); - teapot->setHoverMaterial(chinaHighlight); - teacup1->setMaterial(china); - teacup1->setHoverMaterial(chinaHighlight); - teacup2->setMaterial(china); - teacup2->setHoverMaterial(chinaHighlight); - if (perPixel) { - teapot->setEffect(lighting); - teacup1->setEffect(lighting); - teacup2->setEffect(lighting); - } else - { - teapot->setEffect(0); - teacup1->setEffect(0); - teacup2->setEffect(0); - } - - teaspoon1->setMaterial(metal); - teaspoon1->setHoverMaterial(metalHighlight); - teaspoon2->setMaterial(metal); - teaspoon2->setHoverMaterial(metalHighlight); - if (perPixel) { - teaspoon1->setEffect(lighting); - teaspoon2->setEffect(lighting); - } else - { - teaspoon1->setEffect(0); - teaspoon2->setEffect(0); - } -} - -void TeaService::teapotClicked() -{ - qDebug("teapot clicked"); -} - -void TeaService::teacup1Clicked() -{ - qDebug("teacup1 clicked"); -} - -void TeaService::teacup2Clicked() -{ - qDebug("teacup2 clicked"); -} - -void TeaService::teaspoon1Clicked() -{ - qDebug("teaspoon1 clicked"); -} - -void TeaService::teaspoon2Clicked() -{ - qDebug("teaspoon2 clicked"); -} - -class TeaServiceView : public QGLView -{ - Q_OBJECT -public: - TeaServiceView(QWidget *parent=0); - -public slots: - void standardLighting(); - void perPixelLighting(); - -protected: - void initializeGL(QGLPainter *painter); - void paintGL(QGLPainter *painter); - void keyPressEvent(QKeyEvent *e); - -private: - TeaService *teaService; -}; - -TeaServiceView::TeaServiceView(QWidget *parent) - : QGLView(parent) -{ - teaService = new TeaService(this); - - setOption(QGLView::ObjectPicking, true); - - connect(teaService, SIGNAL(changed()), this, SLOT(updateGL())); -} - -void TeaServiceView::initializeGL(QGLPainter *painter) -{ - teaService->service->initialize(this, painter); -} - -void TeaServiceView::paintGL(QGLPainter *painter) -{ - teaService->service->draw(painter); -} - -void TeaServiceView::standardLighting() -{ - teaService->changeMaterials(false); - updateGL(); -} - -void TeaServiceView::perPixelLighting() -{ - teaService->changeMaterials(true); - updateGL(); -} - -void TeaServiceView::keyPressEvent(QKeyEvent *e) -{ - if (e->key() == Qt::Key_Tab) { - // The Tab key turns the ShowPicking option on and off, - // which helps show what the pick buffer looks like. - setOption(QGLView::ShowPicking, ((options() & QGLView::ShowPicking) == 0)); - updateGL(); - } - QGLView::keyPressEvent(e); -} - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - QMainWindow mainw; - mainw.setMinimumSize(850, 480); - mainw.setWindowTitle(QLatin1String("Tea Service")); - - TeaServiceView view; - mainw.setCentralWidget(&view); - view.setFocus(); - - view.camera()->setEye(QVector3D(0, 3, 10)); - - QMenu *menu = mainw.menuBar()->addMenu(QLatin1String("Effects")); - - QAction *standardLighting = new QAction(QLatin1String("Standard lighting"), &mainw); - menu->addAction(standardLighting); - QObject::connect(standardLighting, SIGNAL(triggered()), &view, SLOT(standardLighting())); - - QAction *perPixelLighting = new QAction(QLatin1String("Per-pixel lighting"), &mainw); - menu->addAction(perPixelLighting); - QObject::connect(perPixelLighting, SIGNAL(triggered()), &view, SLOT(perPixelLighting())); - - menu->addSeparator(); - - QAction *exitAction = new QAction(QLatin1String("E&xit"), &mainw); - menu->addAction(exitAction); - QObject::connect(exitAction, SIGNAL(triggered()), &app, SLOT(quit())); - -#ifdef Q_OS_SYMBIAN - mainw.setAttribute(Qt::WA_LockLandscapeOrientation, true); - mainw.showFullScreen(); -#endif - - view.updateGL(); - mainw.update(); - mainw.show(); - return app.exec(); -} - -#include "teaservice.moc" diff --git a/demos/qt3d/teaservice/teaservice.desktop b/demos/qt3d/teaservice/teaservice.desktop deleted file mode 100644 index eee50a74..00000000 --- a/demos/qt3d/teaservice/teaservice.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Tea Service -Icon=/usr/share/icons/hicolor/80x80/apps/qt3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/teaservice -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_teaservice diff --git a/demos/qt3d/teaservice/teaservice.pro b/demos/qt3d/teaservice/teaservice.pro deleted file mode 100644 index 94968531..00000000 --- a/demos/qt3d/teaservice/teaservice.pro +++ /dev/null @@ -1,17 +0,0 @@ -TEMPLATE = app -TARGET = teaservice -CONFIG += qt warn_on - -CONFIG += qt3d_deploy_pkg -include(../../../pkg.pri) - -SOURCES = teaservice.cpp meshobject.cpp sceneobject.cpp perpixeleffect.cpp -HEADERS = meshobject.h sceneobject.h perpixeleffect.h -RESOURCES = teaservice.qrc - -OTHER_FILES += \ - teaservice.rc \ - teaservice.desktop - -RC_FILE = teaservice.rc - diff --git a/demos/qt3d/teaservice/teaservice.qrc b/demos/qt3d/teaservice/teaservice.qrc deleted file mode 100644 index ab55d88c..00000000 --- a/demos/qt3d/teaservice/teaservice.qrc +++ /dev/null @@ -1,8 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>per_pixel_lighting.vsh</file> - <file>per_pixel_lighting.fsh</file> - <file>teacup.txt</file> - <file>teaspoon.txt</file> -</qresource> -</RCC> diff --git a/demos/qt3d/teaservice/teaservice.rc b/demos/qt3d/teaservice/teaservice.rc deleted file mode 100644 index b40ecdc1..00000000 --- a/demos/qt3d/teaservice/teaservice.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qt3d.ico" diff --git a/demos/qt3d/teaservice/teaspoon.txt b/demos/qt3d/teaservice/teaspoon.txt deleted file mode 100644 index 3c6a1b74..00000000 --- a/demos/qt3d/teaservice/teaspoon.txt +++ /dev/null @@ -1,275 +0,0 @@ -16 -1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 -17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32 -33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48 -49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 -65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80 -81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96 -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112 -113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128 -129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144 -145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160 -161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176 -177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192 -193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208 -209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224 -225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240 -241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256 -256 --0.000107143,0.205357,0.0 -0.0,0.196429,-0.0178571 -0.0,0.196429,-0.0178571 -0.000107143,0.205357,0.0 --0.0535714,0.205357,0.0 --0.0222714,0.178571,-0.0534286 -0.0222714,0.178571,-0.0534286 -0.0535714,0.205357,0.0 --0.107143,0.0952429,-0.0178571 --0.0446429,0.0952429,-0.0892857 -0.0446429,0.0952429,-0.0892857 -0.107143,0.0952429,-0.0178571 --0.107143,0.0,-0.0178571 --0.0446429,0.0,-0.0892857 -0.0446429,0.0,-0.0892857 -0.107143,0.0,-0.0178571 -0.000107143,0.205357,0.0 -0.000135714,0.207589,0.00446429 -0.000157143,0.216518,0.00446429 -0.000125,0.214286,0.0 -0.0535714,0.205357,0.0 -0.0613964,0.212054,0.0133571 -0.0714286,0.220982,0.015625 -0.0625,0.214286,0.0 -0.107143,0.0952429,-0.0178571 -0.122768,0.0952429,0.0 -0.142857,0.0952429,0.00446429 -0.125,0.0952429,-0.0178571 -0.107143,0.0,-0.0178571 -0.122768,0.0,0.0 -0.142857,0.0,0.00446429 -0.125,0.0,-0.0178571 -0.000125,0.214286,0.0 -0.0,0.205357,-0.0178571 -0.0,0.205357,-0.0178571 --0.000125,0.214286,0.0 -0.0625,0.214286,0.0 -0.0267857,0.1875,-0.0625 --0.0267857,0.1875,-0.0625 --0.0625,0.214286,0.0 -0.125,0.0952429,-0.0178571 -0.0535714,0.0952429,-0.107143 --0.0535714,0.0952429,-0.107143 --0.125,0.0952429,-0.0178571 -0.125,0.0,-0.0178571 -0.0535714,0.0,-0.107143 --0.0535714,0.0,-0.107143 --0.125,0.0,-0.0178571 --0.000125,0.214286,0.0 --0.000157143,0.216518,0.00446429 --0.000135714,0.207589,0.00446429 --0.000107143,0.205357,0.0 --0.0625,0.214286,0.0 --0.0714286,0.220982,0.015625 --0.0613964,0.212054,0.0133571 --0.0535714,0.205357,0.0 --0.125,0.0952429,-0.0178571 --0.142857,0.0952429,0.00446429 --0.122768,0.0952429,0.0 --0.107143,0.0952429,-0.0178571 --0.125,0.0,-0.0178571 --0.142857,0.0,0.00446429 --0.122768,0.0,0.0 --0.107143,0.0,-0.0178571 --0.107143,0.0,-0.0178571 --0.0446429,0.0,-0.0892857 -0.0446429,0.0,-0.0892857 -0.107143,0.0,-0.0178571 --0.107143,-0.142857,-0.0178571 --0.0446429,-0.142857,-0.0892857 -0.0446429,-0.142857,-0.0892857 -0.107143,-0.142857,-0.0178571 --0.0133929,-0.160714,0.0386893 --0.00557857,-0.160714,0.0386893 -0.00557857,-0.160714,0.0386893 -0.0133929,-0.160714,0.0386893 --0.0133929,-0.25,0.0535714 --0.00557857,-0.25,0.0535714 -0.00557857,-0.25,0.0535714 -0.0133929,-0.25,0.0535714 -0.107143,0.0,-0.0178571 -0.122768,0.0,0.0 -0.142857,0.0,0.00446429 -0.125,0.0,-0.0178571 -0.107143,-0.142857,-0.0178571 -0.122768,-0.142857,0.0 -0.142857,-0.142857,0.00446429 -0.125,-0.142857,-0.0178571 -0.0133929,-0.160714,0.0386893 -0.0153464,-0.160714,0.0386893 -0.0178571,-0.160714,0.0314357 -0.015625,-0.160714,0.0297607 -0.0133929,-0.25,0.0535714 -0.0153464,-0.25,0.0535714 -0.0178571,-0.25,0.0463179 -0.015625,-0.25,0.0446429 -0.125,0.0,-0.0178571 -0.0535714,0.0,-0.107143 --0.0535714,0.0,-0.107143 --0.125,0.0,-0.0178571 -0.125,-0.142857,-0.0178571 -0.0535714,-0.142857,-0.107143 --0.0535714,-0.142857,-0.107143 --0.125,-0.142857,-0.0178571 -0.015625,-0.160714,0.0297607 -0.00669643,-0.160714,0.0230643 --0.00781071,-0.160714,0.0208321 --0.015625,-0.160714,0.0297607 -0.015625,-0.25,0.0446429 -0.00669643,-0.25,0.0379464 --0.00781071,-0.25,0.0357143 --0.015625,-0.25,0.0446429 --0.125,0.0,-0.0178571 --0.142857,0.0,0.00446429 --0.122768,0.0,0.0 --0.107143,0.0,-0.0178571 --0.125,-0.142857,-0.0178571 --0.142857,-0.142857,0.00446429 --0.122768,-0.142857,0.0 --0.107143,-0.142857,-0.0178571 --0.015625,-0.160714,0.0297607 --0.0175786,-0.160714,0.0319929 --0.0153464,-0.160714,0.0386893 --0.0133929,-0.160714,0.0386893 --0.015625,-0.25,0.0446429 --0.0175786,-0.25,0.046875 --0.0153464,-0.25,0.0535714 --0.0133929,-0.25,0.0535714 --0.0133929,-0.25,0.0535714 --0.00557857,-0.25,0.0535714 -0.00557857,-0.25,0.0535714 -0.0133929,-0.25,0.0535714 --0.0133929,-0.46425,0.0892857 --0.00557857,-0.46425,0.0892857 -0.00557857,-0.46425,0.0892857 -0.0133929,-0.46425,0.0892857 --0.0446429,-0.678571,0.0535714 --0.00892857,-0.678571,0.0625 -0.00892857,-0.678571,0.0625 -0.0446429,-0.678571,0.0535714 --0.0446429,-0.857143,0.0357143 --0.00892857,-0.857143,0.0446429 -0.00892857,-0.857143,0.0446429 -0.0446429,-0.857143,0.0357143 -0.0133929,-0.25,0.0535714 -0.0153464,-0.25,0.0535714 -0.0178571,-0.25,0.0463179 -0.015625,-0.25,0.0446429 -0.0133929,-0.46425,0.0892857 -0.0153464,-0.464286,0.0892857 -0.0178571,-0.46425,0.0820321 -0.015625,-0.46425,0.0803571 -0.0446429,-0.678571,0.0535714 -0.0535714,-0.678571,0.0513393 -0.0535714,-0.678571,0.0334821 -0.0446429,-0.678571,0.0357143 -0.0446429,-0.857143,0.0357143 -0.0535714,-0.857143,0.0334821 -0.0535714,-0.857143,0.015625 -0.0446429,-0.857143,0.0178571 -0.015625,-0.25,0.0446429 -0.00669643,-0.25,0.0379464 --0.00781071,-0.25,0.0357143 --0.015625,-0.25,0.0446429 -0.015625,-0.46425,0.0803571 -0.00669643,-0.464286,0.0736607 --0.00781071,-0.46425,0.0714286 --0.015625,-0.46425,0.0803571 -0.0446429,-0.678571,0.0357143 -0.00892857,-0.678571,0.0446429 --0.00892857,-0.678571,0.0446429 --0.0446429,-0.678571,0.0357143 -0.0446429,-0.857143,0.0178571 -0.00892857,-0.857143,0.0267857 --0.00892857,-0.857143,0.0267857 --0.0446429,-0.857143,0.0178571 --0.015625,-0.25,0.0446429 --0.0175786,-0.25,0.046875 --0.0153464,-0.25,0.0535714 --0.0133929,-0.25,0.0535714 --0.015625,-0.46425,0.0803571 --0.0175786,-0.464286,0.0825893 --0.0153464,-0.464286,0.0892857 --0.0133929,-0.46425,0.0892857 --0.0446429,-0.678571,0.0357143 --0.0535714,-0.678571,0.0334821 --0.0535714,-0.678571,0.0513393 --0.0446429,-0.678571,0.0535714 --0.0446429,-0.857143,0.0178571 --0.0535714,-0.857143,0.015625 --0.0535714,-0.857143,0.0334821 --0.0446429,-0.857143,0.0357143 --0.0446429,-0.857143,0.0357143 --0.00892857,-0.857143,0.0446429 -0.00892857,-0.857143,0.0446429 -0.0446429,-0.857143,0.0357143 --0.0446429,-0.928571,0.0285714 --0.00892857,-0.928571,0.0375 -0.00892857,-0.928571,0.0375 -0.0446429,-0.928571,0.0285714 --0.0539286,-0.999643,0.0178571 -0.000357143,-0.999643,0.0178571 -0.0,-0.999643,0.0178571 -0.0535714,-0.999643,0.0178571 --0.000357143,-1,0.0178571 -0.000357143,-1,0.0178571 -0.0,-1,0.0178571 -0.0,-1,0.0178571 -0.0446429,-0.857143,0.0357143 -0.0535714,-0.857143,0.0334821 -0.0535714,-0.857143,0.015625 -0.0446429,-0.857143,0.0178571 -0.0446429,-0.928571,0.0285714 -0.0535714,-0.928571,0.0263393 -0.0535714,-0.928571,0.00848214 -0.0446429,-0.928571,0.0107143 -0.0535714,-0.999643,0.0178571 -0.0669643,-0.999643,0.0178571 -0.0673214,-0.999643,0.0 -0.0539286,-0.999643,0.0 -0.0,-1,0.0178571 -0.0,-1,0.0178571 -0.000357143,-1,0.0 -0.000357143,-1,0.0 -0.0446429,-0.857143,0.0178571 -0.00892857,-0.857143,0.0267857 --0.00892857,-0.857143,0.0267857 --0.0446429,-0.857143,0.0178571 -0.0446429,-0.928571,0.0107143 -0.00892857,-0.928571,0.0196429 --0.00892857,-0.928571,0.0196429 --0.0446429,-0.928571,0.0107143 -0.0539286,-0.999643,0.0 -0.000357143,-0.999643,0.0 --0.000357143,-0.999643,0.0 --0.0539286,-0.999643,0.0 -0.000357143,-1,0.0 -0.000357143,-1,0.0 --0.000357143,-1,0.0 --0.000357143,-1,0.0 --0.0446429,-0.857143,0.0178571 --0.0535714,-0.857143,0.015625 --0.0535714,-0.857143,0.0334821 --0.0446429,-0.857143,0.0357143 --0.0446429,-0.928571,0.0107143 --0.0535714,-0.928571,0.00848214 --0.0535714,-0.928571,0.0263393 --0.0446429,-0.928571,0.0285714 --0.0539286,-0.999643,0.0 --0.0673214,-0.999643,0.0 --0.0675,-0.999643,0.0178571 --0.0539286,-0.999643,0.0178571 --0.000357143,-1,0.0 --0.000357143,-1,0.0 --0.000535714,-1,0.0178571 --0.000357143,-1,0.0178571 -# reverse-patches diff --git a/demos/quick3d/flickr3d/flickr3d.desktop b/demos/quick3d/flickr3d/flickr3d.desktop deleted file mode 100644 index dc54c201..00000000 --- a/demos/quick3d/flickr3d/flickr3d.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Flickr3D -Icon=/usr/share/icons/hicolor/80x80/apps/qtquick3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/flickr3d -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_flickr3d diff --git a/demos/quick3d/flickr3d/flickr3d.pro b/demos/quick3d/flickr3d/flickr3d.pro deleted file mode 100644 index b4c84830..00000000 --- a/demos/quick3d/flickr3d/flickr3d.pro +++ /dev/null @@ -1,20 +0,0 @@ -TEMPLATE = app -TARGET = flickr3d -CONFIG += qt warn_on - -INSTALL_DIRS = qml -CONFIG += qt3d_deploy_qml qt3dquick_deploy_pkg -include(../../../pkg.pri) -qtcAddDeployment() - -SOURCES += main.cpp - -OTHER_FILES += \ - flickr3d.rc \ - flickr3d.desktop - -RC_FILE = flickr3d.rc - - - - diff --git a/demos/quick3d/flickr3d/flickr3d.rc b/demos/quick3d/flickr3d/flickr3d.rc deleted file mode 100644 index 1b6228c9..00000000 --- a/demos/quick3d/flickr3d/flickr3d.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qtquick3d.ico" diff --git a/demos/quick3d/flickr3d/main.cpp b/demos/quick3d/flickr3d/main.cpp deleted file mode 100644 index 7b01416b..00000000 --- a/demos/quick3d/flickr3d/main.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui/QApplication> -#include "qdeclarativeview3d.h" - -#include "../qmlres.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QDeclarativeView3D view; - QString qml = q_get_qmldir(QLatin1String("qml/flickr3d.qml")); - view.setSource(QUrl::fromLocalFile(qml)); - -#ifdef Q_OS_SYMBIAN - view.setAttribute(Qt::WA_LockLandscapeOrientation, true); - view.setResizeMode(QDeclarativeView::SizeRootObjectToView); - view.showFullScreen(); -#else - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - view.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - view.showFullScreen(); - else - view.show(); -#endif - - return app.exec(); -} diff --git a/demos/quick3d/flickr3d/qml/common/RssModel.qml b/demos/quick3d/flickr3d/qml/common/RssModel.qml deleted file mode 100644 index 069918ec..00000000 --- a/demos/quick3d/flickr3d/qml/common/RssModel.qml +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -XmlListModel { - property string tags : "" - - function commasep(x) - { - return x.replace(' ',','); - } - - source: "http://api.flickr.com/services/feeds/photos_public.gne?"+(tags ? "tags="+commasep(tags)+"&" : "")+"format=rss2" - query: "/rss/channel/item" - namespaceDeclarations: "declare namespace media=\"http://search.yahoo.com/mrss/\";" - - XmlRole { name: "title"; query: "title/string()" } - XmlRole { name: "imagePath"; query: "media:thumbnail/@url/string()" } - XmlRole { name: "url"; query: "media:content/@url/string()" } - XmlRole { name: "description"; query: "description/string()" } - XmlRole { name: "tags"; query: "media:category/string()" } - XmlRole { name: "photoWidth"; query: "media:content/@width/string()" } - XmlRole { name: "photoHeight"; query: "media:content/@height/string()" } - XmlRole { name: "photoType"; query: "media:content/@type/string()" } - XmlRole { name: "photoAuthor"; query: "author/string()" } - XmlRole { name: "photoDate"; query: "pubDate/string()" } -} diff --git a/demos/quick3d/flickr3d/qml/common/qmldir b/demos/quick3d/flickr3d/qml/common/qmldir deleted file mode 100644 index adc2479b..00000000 --- a/demos/quick3d/flickr3d/qml/common/qmldir +++ /dev/null @@ -1,10 +0,0 @@ -ImageDetails ImageDetails.qml -LikeOMeter LikeOMeter.qml -Loading Loading.qml -MediaButton MediaButton.qml -MediaLineEdit MediaLineEdit.qml -Progress Progress.qml -RssModel RssModel.qml -ScrollBar ScrollBar.qml -Slider Slider.qml -Star Star.qml diff --git a/demos/quick3d/flickr3d/qml/flickr3d.qml b/demos/quick3d/flickr3d/qml/flickr3d.qml deleted file mode 100644 index e50861c2..00000000 --- a/demos/quick3d/flickr3d/qml/flickr3d.qml +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import Qt3D 1.0 -import Qt3D.Shapes 1.0 -import "common" as Common - -Viewport { - width: 1024 - height: 768 - - camera: Camera { - id: cam - property real viewAngle: 0.0 - eye: Qt.vector3d(Math.sin(cam.viewAngle) * 20.0, 3.0, Math.cos(cam.viewAngle) * 20.0) - } - - NumberAnimation { - running: true - target: cam; property: "viewAngle"; - from: 0.0; to: 360.0; duration: 2000000; - loops: Animation.Infinite - } - - Skybox { - source: "skybox" - } - - Common.RssModel { id: rssModel } - - Item3D { - transform: [ - Rotation3D { axis: Qt.vector3d(1, 0, 0); angle: 90 }, - Translation3D { translate: Qt.vector3d(0, 1, 0) } - ] - - Cylinder { - levelOfDetail: 1 - length: 2.0 - radius: 2.8 - effect: Effect { - color: "#ccccdd" - } - } - - } - - Component { - id: octoDisplayDelegate - Item3D { - transform: [ - Translation3D { translate: Qt.vector3d(0, 0, 2.6) }, - // index is a special variable that comes from model instancing - Rotation3D { axis: Qt.vector3d(0, 1, 0); angle: (360 / 16) * (index * 2 + 1) } - ] - Item3D { - enabled: index > -1 && index < 9 - transform: [ - Rotation3D { axis: Qt.vector3d(1, 0, 0); angle: 90 } - ] - Quad { - effect: Effect { - texture: model.imagePath - } - } - } - } - } - - Repeater { - delegate: octoDisplayDelegate - model: rssModel - } - -} diff --git a/demos/quick3d/flickr3d/qml/skybox/default_sky_down.png b/demos/quick3d/flickr3d/qml/skybox/default_sky_down.png Binary files differdeleted file mode 100644 index 685c28c4..00000000 --- a/demos/quick3d/flickr3d/qml/skybox/default_sky_down.png +++ /dev/null diff --git a/demos/quick3d/flickr3d/qml/skybox/default_sky_east.png b/demos/quick3d/flickr3d/qml/skybox/default_sky_east.png Binary files differdeleted file mode 100644 index f6463abf..00000000 --- a/demos/quick3d/flickr3d/qml/skybox/default_sky_east.png +++ /dev/null diff --git a/demos/quick3d/flickr3d/qml/skybox/default_sky_north.png b/demos/quick3d/flickr3d/qml/skybox/default_sky_north.png Binary files differdeleted file mode 100644 index 153b833c..00000000 --- a/demos/quick3d/flickr3d/qml/skybox/default_sky_north.png +++ /dev/null diff --git a/demos/quick3d/flickr3d/qml/skybox/default_sky_south.png b/demos/quick3d/flickr3d/qml/skybox/default_sky_south.png Binary files differdeleted file mode 100644 index b3b01321..00000000 --- a/demos/quick3d/flickr3d/qml/skybox/default_sky_south.png +++ /dev/null diff --git a/demos/quick3d/flickr3d/qml/skybox/default_sky_up.png b/demos/quick3d/flickr3d/qml/skybox/default_sky_up.png Binary files differdeleted file mode 100644 index 3d4d6233..00000000 --- a/demos/quick3d/flickr3d/qml/skybox/default_sky_up.png +++ /dev/null diff --git a/demos/quick3d/flickr3d/qml/skybox/default_sky_west.png b/demos/quick3d/flickr3d/qml/skybox/default_sky_west.png Binary files differdeleted file mode 100644 index 14325371..00000000 --- a/demos/quick3d/flickr3d/qml/skybox/default_sky_west.png +++ /dev/null diff --git a/demos/quick3d/flickr3d/qtquick3d.ico b/demos/quick3d/flickr3d/qtquick3d.ico Binary files differdeleted file mode 100644 index c695ac72..00000000 --- a/demos/quick3d/flickr3d/qtquick3d.ico +++ /dev/null diff --git a/demos/quick3d/model_viewer/main.cpp b/demos/quick3d/model_viewer/main.cpp deleted file mode 100644 index 127be272..00000000 --- a/demos/quick3d/model_viewer/main.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui/QApplication> -#include "qdeclarativeview3d.h" - -#include "../qmlres.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - QDeclarativeView3D view; - QString qml = q_get_qmldir(QLatin1String("qml/model_viewer.qml")); - view.setSource(QUrl::fromLocalFile(qml)); - -#ifdef Q_OS_SYMBIAN - view.setAttribute(Qt::WA_LockLandscapeOrientation, true); - view.setResizeMode(QDeclarativeView::SizeRootObjectToView); - view.showFullScreen(); -#else - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - view.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - view.showFullScreen(); - else - view.show(); -#endif - - return app.exec(); -} diff --git a/demos/quick3d/model_viewer/model_viewer.desktop b/demos/quick3d/model_viewer/model_viewer.desktop deleted file mode 100644 index 79350595..00000000 --- a/demos/quick3d/model_viewer/model_viewer.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Model Viewer -Icon=/usr/share/icons/hicolor/80x80/apps/qtquick3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/model_viewer -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_model_viewer diff --git a/demos/quick3d/model_viewer/model_viewer.pro b/demos/quick3d/model_viewer/model_viewer.pro deleted file mode 100644 index 2163c4f0..00000000 --- a/demos/quick3d/model_viewer/model_viewer.pro +++ /dev/null @@ -1,25 +0,0 @@ -TEMPLATE = app -TARGET = model_viewer -CONFIG += qt warn_on - -INSTALL_DIRS = qml -CONFIG += qt3d_deploy_qml qt3dquick_deploy_pkg -include(../../../pkg.pri) -qtcAddDeployment() - -SOURCES += main.cpp - -symbian { - qmlDeployment2.sources = qml\meshes\* - qmlDeployment2.path = qml\meshes - DEPLOYMENT += qmlDeployment2 - qmlDeployment3.sources = qml\images\* - qmlDeployment3.path = qml\images - DEPLOYMENT += qmlDeployment3 -} - -OTHER_FILES += \ - model_viewer.rc \ - model_viewer.desktop - -RC_FILE = model_viewer.rc diff --git a/demos/quick3d/model_viewer/model_viewer.rc b/demos/quick3d/model_viewer/model_viewer.rc deleted file mode 100644 index 1b6228c9..00000000 --- a/demos/quick3d/model_viewer/model_viewer.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qtquick3d.ico" diff --git a/demos/quick3d/model_viewer/qml/FourButtons.qml b/demos/quick3d/model_viewer/qml/FourButtons.qml deleted file mode 100644 index 80d72313..00000000 --- a/demos/quick3d/model_viewer/qml/FourButtons.qml +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -Item { - - anchors.left : parent.left - anchors.leftMargin: 40 - width: 750 - height: 51 - - - ShortButton { - id: button1 - //anchors.left: - //anchors.verticalCenter: parent.verticalCenter - } - ShortButton { - id: button2 - anchors.left: button1.right - //anchors.leftMargin: 3 - //anchors.verticalCenter: parent.verticalCenter - } - ShortButton { - id: button3 - anchors.left: button2.right - //anchors.leftMargin: 3 - //anchors.verticalCenter: parent.verticalCenter - } - ShortButton { - id: button4 - anchors.left: button3.right - //anchors.leftMargin: 3 - //anchors.verticalCenter: parent.verticalCenter - } -} diff --git a/demos/quick3d/model_viewer/qml/LongButton.qml b/demos/quick3d/model_viewer/qml/LongButton.qml deleted file mode 100644 index fd7b223c..00000000 --- a/demos/quick3d/model_viewer/qml/LongButton.qml +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -Rectangle { - id: button - anchors.left : parent.left - anchors.leftMargin: 40 - gradient: Gradient { - GradientStop { position: 1.0; color: "black" } - GradientStop { position: 0.0; color: "gray" } - } - border.color : "gray" - border.width : 1 - radius: 10 - width: 610 - height: 51 - property bool bounce: false - - MouseArea { - anchors.fill: parent - onClicked: { button.bounce = true; console.log("Clicked") } - } - - SequentialAnimation on scale{ - running: button.bounce - NumberAnimation { to : 0.98; duration: 300; easing.type: "OutQuad" } - NumberAnimation { to : 1.0; duration: 300; easing.type: "OutBounce" } - onCompleted: button.bounce = false - } -} diff --git a/demos/quick3d/model_viewer/qml/MainButton.qml b/demos/quick3d/model_viewer/qml/MainButton.qml deleted file mode 100644 index 0869b570..00000000 --- a/demos/quick3d/model_viewer/qml/MainButton.qml +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import Qt3D 1.0 - -Image { - id: mainbutton - - source: imageSource - - width: 100 - height: 100 - property bool bounce: false - property string imageSource: "images/cog.svg" - - anchors.right: parent.right - anchors.rightMargin: 10 - anchors.topMargin: 20 - - - SequentialAnimation on scale{ - running: mainbutton.bounce - NumberAnimation { to : 0.8; duration: 50; easing.type: "OutQuad" } - NumberAnimation { to : 1.0; duration: 50; easing.type: "OutBounce" } - - onCompleted: mainbutton.bounce = false - } -} diff --git a/demos/quick3d/model_viewer/qml/ShortButton.qml b/demos/quick3d/model_viewer/qml/ShortButton.qml deleted file mode 100644 index eb8ea4fb..00000000 --- a/demos/quick3d/model_viewer/qml/ShortButton.qml +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -Rectangle { - id: button - - gradient: Gradient { - GradientStop { position: 1.0; color: "black" } - GradientStop { position: 0.0; color: "gray" } - } - border.color : "gray" - border.width : 1 - radius: 10 - width: 150 - height: 51 - property bool bounce: false - - MouseArea { - anchors.fill: parent - onClicked: { button.bounce = true; console.log("Clicked") } - } - - SequentialAnimation on scale{ - running: button.bounce - NumberAnimation { to : 0.98; duration: 300; easing.type: "OutQuad" } - NumberAnimation { to : 1.0; duration: 300; easing.type: "OutBounce" } - - onCompleted: button.bounce = false - } - - anchors.leftMargin: 3 -} diff --git a/demos/quick3d/model_viewer/qml/images/arrow.png b/demos/quick3d/model_viewer/qml/images/arrow.png Binary files differdeleted file mode 100644 index 0ea53c17..00000000 --- a/demos/quick3d/model_viewer/qml/images/arrow.png +++ /dev/null diff --git a/demos/quick3d/model_viewer/qml/images/arrow.svg b/demos/quick3d/model_viewer/qml/images/arrow.svg deleted file mode 100644 index 6665e81d..00000000 --- a/demos/quick3d/model_viewer/qml/images/arrow.svg +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="100" - height="100" - id="svg2" - version="1.1" - inkscape:version="0.47+devel r9541" - sodipodi:docname="arrow.svg"> - <defs - id="defs4" /> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="36.315176" - inkscape:cy="49.177003" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1348" - inkscape:window-height="684" - inkscape:window-x="177" - inkscape:window-y="346" - inkscape:window-maximized="0" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(0,-952.36218)"> - <rect - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect2993" - width="100" - height="100" - x="0.16797371" - y="952.60327" - rx="15" - ry="15" /> - <image - y="970.86469" - x="14.027932" - id="image4316" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAABACAYAAABfl/puAAAABHNCSVQICAgIfAhkiAAABMxJREFU eJzt3E9MI1UcB/DvvE63zBRIydRiCIfFg1E5cMAQEmLyAuUABAH/nMzqxWyiiXL1oKd116PJHoye PKmHNcsfkWAo8kw8woUEVAIMB08wBFYYbDvlPQ9QRISWTqfTfW2/pzm89+aXT3+vM520DUCyDAwM vNja2hra3t4+LFcNpFwndhNKaVhRlO/C4fAPlNLnylWHVGg4rddwHKcjHA5/Xy442dAAAN3d3cQw jBfKBSclWlNTE8bGxrRywUmJBvwP7hGl9Fm/zi0tGnAKNzIyomma9lJ9ff3nlNIGP84rNRoAGIaB oaGhukAg8Go4HP7CDzjp0QCgra0No6Ojuqqqr/kBVxFogL9wFYMG+AcnG1o9gDpd168d4AecbGjP cM71SCSSc1Cp4WRDu3FKCVexaEDp4CoaDSgNXMWjAf/CEUJeb2ho+IhSGihmvapAA07hent76xzH Gdc07cNi4KoGDQA6OjqUvr4+TQhxrxg4FQAopbcBNHpZYInyvBBCcTuZEILOzk4CQFtYWLinaRoo pQ8ZYyeFrKNSSm/ruv4r57zJbTE+hhBCQoeHh2hubna7QNFwKoBGznnT8PCwHo1GXRXiVyzLgmEY aG5uhhACiuKu6YqFU7MH0WjU9avnV2Kx2PmxW7BsioGrqgvB5WThCr04VDUa4A6u6tGAwuFqaGe5 DKfr+t1rx/pZ2NOeLFxPT48mhPg0Ho/Hrxznd2FPewgh6OrqIu3t7Q3BYPCbq+CkQ3McB0KIkp4j FAqhv78/2N7e3nQVnHRowWCw6Hu0myQXnHRofuY6uBpanoRCIcTj8aBhGJFAIPAZpTSs5p9W3eGc Y2VlJbmzs5PMZDJfAziudVqOcM6xtLSUTCQSyUwm8zHn/CvGmKh12jVxHAdLS0upxcXFLNiX2Q/z NbQrkkqlMD8/76ysrNiZTOaTsw47f/pRQ7uULNjq6uo+5/wO53yeMfafG8Ma2oVcBHMc561EIpG4 alztQnCWm4IBtU4DcAo2Nzf3ZG1t7fjk5OTtXGBADe0cbHV19TCdTr/DGPs535yq3p5uwADJOo1z DkK8eZ0PDg6QSCQO19fXCwIDLqBZluVJMaWMZVloaWlBvu+n5cv+/j4mJib+3tnZ+TOdTr/HGPul kPkqgL8URfljbm6uAUBpH1QVnwjn3BgfHye3bt1ytUAWbG9v7/dkMvkGY2yr0DVUxtg2pfQVSPD+ pmnau7quPxBC1LmZfxHMtm1XYMDZ9mSM2W4m+53BwcGk2weQXoEBEnSXF/ESDKgCNK/BAMluOQrN 3t4epqamPAUDKhjNNE3Mzs6mj4+Pf7Nt+02vwADJtichpFFVVZHvYmCaJqanpx3O+U+2bQ95CQZI 1mmKorwci8XUXPdoWbBAIDBrWdYdxpjnfxAgVacBCObqMj/AAPnQro1pmpiamkoSQn4sJRgg2fa8 LqZpYnJy8jiTyTw+ODh4v5RgQAV02kUw27ZLDgZI3Gmcc2xubmJmZsZXMEBSNM45lpeXwRhLKYry yLbtD/wCAyTcnkIILC8vY3FxMaVp2v2jo6O7foIBEnba1taWurGxkdJ1/b5lWQ8K/bWJF5Gq04QQ IpVKnZQTDJCs0zjnDyORyLe7u7uPywUGAP8AGpq/aU97o64AAAAASUVORK5CYII= " - height="64" - width="77" - style="opacity:0.75" /> - </g> -</svg> diff --git a/demos/quick3d/model_viewer/qml/images/cog.svg b/demos/quick3d/model_viewer/qml/images/cog.svg deleted file mode 100644 index e8a993d3..00000000 --- a/demos/quick3d/model_viewer/qml/images/cog.svg +++ /dev/null @@ -1,127 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="100" - height="100" - id="svg2" - version="1.1" - inkscape:version="0.47+devel r9541" - sodipodi:docname="cog.svg"> - <defs - id="defs4"> - <filter - id="filter6134" - inkscape:label="Jam spread" - inkscape:menu="Textures" - inkscape:menu-tooltip="Glossy clumpy jam spread" - color-interpolation-filters="sRGB"> - <feGaussianBlur - id="feGaussianBlur6136" - stdDeviation="1" - in="SourceGraphic" - result="result0" /> - <feTurbulence - id="feTurbulence6138" - result="result1" - numOctaves="7" - seed="488" - baseFrequency="0.017" - type="turbulence" /> - <feComposite - id="feComposite6140" - in2="result1" - in="result0" - operator="out" - result="result2" /> - <feGaussianBlur - id="feGaussianBlur6142" - stdDeviation="0.5" - result="result5" /> - <feSpecularLighting - id="feSpecularLighting6144" - in="result5" - specularExponent="100" - specularConstant="4" - result="result4" - surfaceScale="1.5"> - <feDistantLight - id="feDistantLight6146" - azimuth="225" - elevation="62" /> - </feSpecularLighting> - <feComposite - id="feComposite6148" - in2="result2" - operator="atop" - in="result4" - result="result91" /> - <feBlend - id="feBlend6150" - in2="result91" - mode="multiply" /> - </filter> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="-21.768595" - inkscape:cy="49.177003" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1118" - inkscape:window-height="684" - inkscape:window-x="243" - inkscape:window-y="161" - inkscape:window-maximized="0" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(0,-952.36218)" - style="opacity:0.75"> - <rect - style="opacity:0.20000000000000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect2993" - width="100" - height="100" - x="0.16797371" - y="952.60327" - rx="15" - ry="15" /> - <image - y="955.81396" - x="2.9568648" - id="image4099" - xlink:href="data:image/png;base64,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 sc8FnQAAAABJRU5ErkJggg== " - height="84" - width="85" - style="opacity:0.75000000000000000;filter:url(#filter6134)" /> - </g> -</svg> diff --git a/demos/quick3d/model_viewer/qml/images/cog2.svg b/demos/quick3d/model_viewer/qml/images/cog2.svg deleted file mode 100644 index 21f25d95..00000000 --- a/demos/quick3d/model_viewer/qml/images/cog2.svg +++ /dev/null @@ -1,126 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="100" - height="100" - id="svg2" - version="1.1" - inkscape:version="0.47+devel r9541" - sodipodi:docname="cog.svg"> - <defs - id="defs4"> - <filter - id="filter6134" - inkscape:label="Jam spread" - inkscape:menu="Textures" - inkscape:menu-tooltip="Glossy clumpy jam spread" - color-interpolation-filters="sRGB"> - <feGaussianBlur - id="feGaussianBlur6136" - stdDeviation="1" - in="SourceGraphic" - result="result0" /> - <feTurbulence - id="feTurbulence6138" - result="result1" - numOctaves="7" - seed="488" - baseFrequency="0.017" - type="turbulence" /> - <feComposite - id="feComposite6140" - in2="result1" - in="result0" - operator="out" - result="result2" /> - <feGaussianBlur - id="feGaussianBlur6142" - stdDeviation="0.5" - result="result5" /> - <feSpecularLighting - id="feSpecularLighting6144" - in="result5" - specularExponent="100" - specularConstant="4" - result="result4" - surfaceScale="1.5"> - <feDistantLight - id="feDistantLight6146" - azimuth="225" - elevation="62" /> - </feSpecularLighting> - <feComposite - id="feComposite6148" - in2="result2" - operator="atop" - in="result4" - result="result91" /> - <feBlend - id="feBlend6150" - in2="result91" - mode="multiply" /> - </filter> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="36.315176" - inkscape:cy="49.177003" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1118" - inkscape:window-height="684" - inkscape:window-x="310" - inkscape:window-y="375" - inkscape:window-maximized="0" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(0,-952.36218)"> - <rect - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect2993" - width="100" - height="100" - x="0.16797371" - y="952.60327" - rx="15" - ry="15" /> - <image - y="955.81396" - x="2.9568648" - id="image4099" - xlink:href="data:image/png;base64,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 sc8FnQAAAABJRU5ErkJggg== " - height="84" - width="85" - style="opacity:0.75000000000000000;filter:url(#filter6134)" /> - </g> -</svg> diff --git a/demos/quick3d/model_viewer/qml/images/knob.png b/demos/quick3d/model_viewer/qml/images/knob.png Binary files differdeleted file mode 100644 index 0d5d8f0e..00000000 --- a/demos/quick3d/model_viewer/qml/images/knob.png +++ /dev/null diff --git a/demos/quick3d/model_viewer/qml/images/knob.svg b/demos/quick3d/model_viewer/qml/images/knob.svg deleted file mode 100644 index fb693371..00000000 --- a/demos/quick3d/model_viewer/qml/images/knob.svg +++ /dev/null @@ -1,867 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - x="0px" - y="0px" - width="52px" - height="52px" - viewBox="0 0 52 52" - enable-background="new 0 0 52 52" - xml:space="preserve" - id="svg3883" - sodipodi:version="0.32" - inkscape:version="0.44.1" - sodipodi:docname="knob_on.svg" - sodipodi:docbase="/local/axel/embeddedwidgets/embeddedstories/skins/svgslideswitch/MetallicBrush"><metadata - id="metadata4200"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview - inkscape:window-height="640" - inkscape:window-width="937" - inkscape:pageshadow="2" - inkscape:pageopacity="0.0" - guidetolerance="10.0" - gridtolerance="10.0" - objecttolerance="10.0" - borderopacity="1.0" - bordercolor="#666666" - pagecolor="#ffffff" - id="base" - inkscape:zoom="8.3653846" - inkscape:cx="26.000002" - inkscape:cy="26" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:current-layer="svg3883" /> -<defs - id="defs3885"> -</defs> -<linearGradient - id="SVGID_1_" - gradientUnits="userSpaceOnUse" - x1="-59.7866" - y1="-115.917" - x2="-93.2123" - y2="-76.0818" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#000000" - id="stop3888" /> - <stop - offset="1" - style="stop-color:#EAECEF" - id="stop3890" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="26" - id="circle3892" - style="fill:url(#SVGID_1_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="26" - sodipodi:ry="26" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_2_" - gradientUnits="userSpaceOnUse" - x1="-100.5" - y1="-96" - x2="-52.5" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop3895" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop3897" /> - <stop - offset="0.6043" - style="stop-color:#E7EAED" - id="stop3899" /> - <stop - offset="0.6751" - style="stop-color:#DEE4E7" - id="stop3901" /> - <stop - offset="0.7358" - style="stop-color:#CFD9DD" - id="stop3903" /> - <stop - offset="0.791" - style="stop-color:#B9CACF" - id="stop3905" /> - <stop - offset="0.8425" - style="stop-color:#9EB6BD" - id="stop3907" /> - <stop - offset="0.891" - style="stop-color:#7B9EA7" - id="stop3909" /> - <stop - offset="0.9374" - style="stop-color:#53828C" - id="stop3911" /> - <stop - offset="0.9809" - style="stop-color:#25626E" - id="stop3913" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop3915" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="24" - id="circle3917" - style="fill:url(#SVGID_2_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="24" - sodipodi:ry="24" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_3_" - gradientUnits="userSpaceOnUse" - x1="-98.6328" - y1="-96" - x2="-54.3672" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop3920" /> - <stop - offset="0.073" - style="stop-color:#8FAECB" - id="stop3922" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop3924" /> - <stop - offset="0.5902" - style="stop-color:#E7E9ED" - id="stop3926" /> - <stop - offset="0.618" - style="stop-color:#E4E7EB" - id="stop3928" /> - <stop - offset="0.6697" - style="stop-color:#E0E4E9" - id="stop3930" /> - <stop - offset="0.7211" - style="stop-color:#D4DCE1" - id="stop3932" /> - <stop - offset="0.7722" - style="stop-color:#C0CFD5" - id="stop3934" /> - <stop - offset="0.809" - style="stop-color:#ADC2C9" - id="stop3936" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop3938" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="22.132999" - id="circle3940" - style="fill:url(#SVGID_3_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="22.132999" - sodipodi:ry="22.132999" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_4_" - gradientUnits="userSpaceOnUse" - x1="-96.7671" - y1="-96" - x2="-56.2324" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop3943" /> - <stop - offset="0.073" - style="stop-color:#86A7C4" - id="stop3945" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop3947" /> - <stop - offset="0.577" - style="stop-color:#E7EAED" - id="stop3949" /> - <stop - offset="0.618" - style="stop-color:#E1E6EA" - id="stop3951" /> - <stop - offset="0.6697" - style="stop-color:#DDE3E8" - id="stop3953" /> - <stop - offset="0.7211" - style="stop-color:#D1DBE1" - id="stop3955" /> - <stop - offset="0.7722" - style="stop-color:#BDCDD5" - id="stop3957" /> - <stop - offset="0.809" - style="stop-color:#AAC0CA" - id="stop3959" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop3961" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="20.267" - id="circle3963" - style="fill:url(#SVGID_4_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="20.267" - sodipodi:ry="20.267" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_5_" - gradientUnits="userSpaceOnUse" - x1="-94.8999" - y1="-96" - x2="-58.0996" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop3966" /> - <stop - offset="0.073" - style="stop-color:#7E9FBC" - id="stop3968" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop3970" /> - <stop - offset="0.5709" - style="stop-color:#E6E9ED" - id="stop3972" /> - <stop - offset="0.618" - style="stop-color:#DFE4E9" - id="stop3974" /> - <stop - offset="0.6687" - style="stop-color:#DBE1E7" - id="stop3976" /> - <stop - offset="0.7193" - style="stop-color:#CFD9E0" - id="stop3978" /> - <stop - offset="0.7695" - style="stop-color:#BBCCD6" - id="stop3980" /> - <stop - offset="0.809" - style="stop-color:#A6BECA" - id="stop3982" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop3984" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="18.4" - id="circle3986" - style="fill:url(#SVGID_5_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="18.4" - sodipodi:ry="18.4" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_6_" - gradientUnits="userSpaceOnUse" - x1="-93.0332" - y1="-96" - x2="-59.9668" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop3989" /> - <stop - offset="0.073" - style="stop-color:#7697B4" - id="stop3991" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop3993" /> - <stop - offset="0.5636" - style="stop-color:#E6E9ED" - id="stop3995" /> - <stop - offset="0.618" - style="stop-color:#DCE2E8" - id="stop3997" /> - <stop - offset="0.6687" - style="stop-color:#D8DFE6" - id="stop3999" /> - <stop - offset="0.7193" - style="stop-color:#CCD7E0" - id="stop4001" /> - <stop - offset="0.7695" - style="stop-color:#B8CAD5" - id="stop4003" /> - <stop - offset="0.809" - style="stop-color:#A3BCCA" - id="stop4005" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4007" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="16.533001" - id="circle4009" - style="fill:url(#SVGID_6_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="16.533001" - sodipodi:ry="16.533001" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_7_" - gradientUnits="userSpaceOnUse" - x1="-91.167" - y1="-96" - x2="-61.833" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4012" /> - <stop - offset="0.073" - style="stop-color:#6D8FAD" - id="stop4014" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4016" /> - <stop - offset="0.5605" - style="stop-color:#E5E8EC" - id="stop4018" /> - <stop - offset="0.618" - style="stop-color:#DAE1E7" - id="stop4020" /> - <stop - offset="0.6679" - style="stop-color:#D6DEE5" - id="stop4022" /> - <stop - offset="0.7175" - style="stop-color:#CAD6DF" - id="stop4024" /> - <stop - offset="0.7669" - style="stop-color:#B6C9D6" - id="stop4026" /> - <stop - offset="0.809" - style="stop-color:#9FBACB" - id="stop4028" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4030" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="14.667" - id="circle4032" - style="fill:url(#SVGID_7_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="14.667" - sodipodi:ry="14.667" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_8_" - gradientUnits="userSpaceOnUse" - x1="-89.2998" - y1="-96" - x2="-63.7002" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4035" /> - <stop - offset="0.073" - style="stop-color:#6587A5" - id="stop4037" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4039" /> - <stop - offset="0.5588" - style="stop-color:#E4E8EC" - id="stop4041" /> - <stop - offset="0.618" - style="stop-color:#D8DFE7" - id="stop4043" /> - <stop - offset="0.6675" - style="stop-color:#D4DCE5" - id="stop4045" /> - <stop - offset="0.7167" - style="stop-color:#C8D5E0" - id="stop4047" /> - <stop - offset="0.7657" - style="stop-color:#B4C8D6" - id="stop4049" /> - <stop - offset="0.809" - style="stop-color:#9CB8CB" - id="stop4051" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4053" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="12.8" - id="circle4055" - style="fill:url(#SVGID_8_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="12.8" - sodipodi:ry="12.8" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_9_" - gradientUnits="userSpaceOnUse" - x1="-87.4331" - y1="-96" - x2="-65.5664" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4058" /> - <stop - offset="0.073" - style="stop-color:#5D809D" - id="stop4060" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4062" /> - <stop - offset="0.5567" - style="stop-color:#E3E7EC" - id="stop4064" /> - <stop - offset="0.618" - style="stop-color:#D5DDE6" - id="stop4066" /> - <stop - offset="0.6671" - style="stop-color:#D1DAE4" - id="stop4068" /> - <stop - offset="0.7159" - style="stop-color:#C5D3DF" - id="stop4070" /> - <stop - offset="0.7645" - style="stop-color:#B1C6D6" - id="stop4072" /> - <stop - offset="0.809" - style="stop-color:#98B5CB" - id="stop4074" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4076" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="10.933" - id="circle4078" - style="fill:url(#SVGID_9_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="10.933" - sodipodi:ry="10.933" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_10_" - gradientUnits="userSpaceOnUse" - x1="-85.5659" - y1="-96" - x2="-67.4336" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4081" /> - <stop - offset="0.073" - style="stop-color:#547896" - id="stop4083" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4085" /> - <stop - offset="0.5588" - style="stop-color:#E1E6EB" - id="stop4087" /> - <stop - offset="0.618" - style="stop-color:#D3DCE5" - id="stop4089" /> - <stop - offset="0.6663" - style="stop-color:#CFD9E3" - id="stop4091" /> - <stop - offset="0.7143" - style="stop-color:#C3D2DF" - id="stop4093" /> - <stop - offset="0.7621" - style="stop-color:#AFC5D7" - id="stop4095" /> - <stop - offset="0.809" - style="stop-color:#94B3CC" - id="stop4097" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4099" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="9.066" - id="circle4101" - style="fill:url(#SVGID_10_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="9.066" - sodipodi:ry="9.066" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_11_" - gradientUnits="userSpaceOnUse" - x1="-83.7002" - y1="-96" - x2="-69.2998" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4104" /> - <stop - offset="0.073" - style="stop-color:#4C708E" - id="stop4106" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4108" /> - <stop - offset="0.5625" - style="stop-color:#DEE4EA" - id="stop4110" /> - <stop - offset="0.618" - style="stop-color:#D0DAE4" - id="stop4112" /> - <stop - offset="0.6663" - style="stop-color:#CCD7E2" - id="stop4114" /> - <stop - offset="0.7143" - style="stop-color:#C0D0DE" - id="stop4116" /> - <stop - offset="0.7621" - style="stop-color:#ACC3D6" - id="stop4118" /> - <stop - offset="0.809" - style="stop-color:#91B1CC" - id="stop4120" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4122" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="7.1999998" - id="circle4124" - style="fill:url(#SVGID_11_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="7.1999998" - sodipodi:ry="7.1999998" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_12_" - gradientUnits="userSpaceOnUse" - x1="-81.833" - y1="-96" - x2="-71.167" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4127" /> - <stop - offset="0.073" - style="stop-color:#446986" - id="stop4129" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4131" /> - <stop - offset="0.5757" - style="stop-color:#D9E0E8" - id="stop4133" /> - <stop - offset="0.618" - style="stop-color:#CED8E3" - id="stop4135" /> - <stop - offset="0.6655" - style="stop-color:#CAD5E2" - id="stop4137" /> - <stop - offset="0.7129" - style="stop-color:#BECEDD" - id="stop4139" /> - <stop - offset="0.7601" - style="stop-color:#AAC1D6" - id="stop4141" /> - <stop - offset="0.807" - style="stop-color:#8EB0CC" - id="stop4143" /> - <stop - offset="0.809" - style="stop-color:#8DAFCC" - id="stop4145" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4147" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="5.3330002" - id="circle4149" - style="fill:url(#SVGID_12_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="5.3330002" - sodipodi:ry="5.3330002" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_13_" - gradientUnits="userSpaceOnUse" - x1="-79.9658" - y1="-96" - x2="-73.0342" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4152" /> - <stop - offset="0.073" - style="stop-color:#3B617F" - id="stop4154" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4156" /> - <stop - offset="0.6087" - style="stop-color:#CED9E3" - id="stop4158" /> - <stop - offset="0.618" - style="stop-color:#CBD7E2" - id="stop4160" /> - <stop - offset="0.6655" - style="stop-color:#C7D4E1" - id="stop4162" /> - <stop - offset="0.7129" - style="stop-color:#BBCDDD" - id="stop4164" /> - <stop - offset="0.7601" - style="stop-color:#A7C0D6" - id="stop4166" /> - <stop - offset="0.807" - style="stop-color:#8BAECD" - id="stop4168" /> - <stop - offset="0.809" - style="stop-color:#8AADCD" - id="stop4170" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4172" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="3.4660001" - id="circle4174" - style="fill:url(#SVGID_13_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="3.4660001" - sodipodi:ry="3.4660001" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -<linearGradient - id="SVGID_14_" - gradientUnits="userSpaceOnUse" - x1="-78.1001" - y1="-96" - x2="-74.9004" - y2="-96" - gradientTransform="matrix(1,0,0,-1,102.5,-70)"> - <stop - offset="0.0056" - style="stop-color:#8AADCE" - id="stop4177" /> - <stop - offset="0.073" - style="stop-color:#335977" - id="stop4179" /> - <stop - offset="0.5" - style="stop-color:#EAECEF" - id="stop4181" /> - <stop - offset="0.618" - style="stop-color:#C9D5E1" - id="stop4183" /> - <stop - offset="0.6648" - style="stop-color:#C5D3E0" - id="stop4185" /> - <stop - offset="0.7114" - style="stop-color:#B9CBDC" - id="stop4187" /> - <stop - offset="0.758" - style="stop-color:#A5BFD6" - id="stop4189" /> - <stop - offset="0.8042" - style="stop-color:#89ADCE" - id="stop4191" /> - <stop - offset="0.809" - style="stop-color:#86ABCD" - id="stop4193" /> - <stop - offset="1" - style="stop-color:#0E525F" - id="stop4195" /> -</linearGradient> -<circle - cx="26" - cy="26" - r="1.6" - id="circle4197" - style="fill:url(#SVGID_14_)" - sodipodi:cx="26" - sodipodi:cy="26" - sodipodi:rx="1.6" - sodipodi:ry="1.6" - transform="matrix(0.923077,0,0,0.923077,2,1.999996)" /> -</svg>
\ No newline at end of file diff --git a/demos/quick3d/model_viewer/qml/images/test.svg b/demos/quick3d/model_viewer/qml/images/test.svg deleted file mode 100644 index 6d51cc9e..00000000 --- a/demos/quick3d/model_viewer/qml/images/test.svg +++ /dev/null @@ -1,136 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="100" - height="100" - id="svg2" - version="1.1" - inkscape:version="0.47+devel r9541" - sodipodi:docname="test.svg"> - <defs - id="defs4" /> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="114.34946" - inkscape:cy="49.177003" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1118" - inkscape:window-height="684" - inkscape:window-x="465" - inkscape:window-y="406" - inkscape:window-maximized="0" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(0,-952.36218)"> - <rect - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect2993" - width="100" - height="100" - x="0.16797371" - y="952.60327" - rx="15" - ry="15" /> - <image - y="952.36218" - x="0.173319" - id="image3901" - xlink:href="data:image/png;base64,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 -RU5ErkJggg== -" - height="100" - width="100" /> - </g> -</svg> diff --git a/demos/quick3d/model_viewer/qml/images/zoomin.png b/demos/quick3d/model_viewer/qml/images/zoomin.png Binary files differdeleted file mode 100644 index b17cbe81..00000000 --- a/demos/quick3d/model_viewer/qml/images/zoomin.png +++ /dev/null diff --git a/demos/quick3d/model_viewer/qml/images/zoomin.svg b/demos/quick3d/model_viewer/qml/images/zoomin.svg deleted file mode 100644 index d517e3e5..00000000 --- a/demos/quick3d/model_viewer/qml/images/zoomin.svg +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="100" - height="100" - id="svg2" - version="1.1" - inkscape:version="0.47+devel r9541" - sodipodi:docname="zoomin.svg"> - <defs - id="defs4" /> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="36.315176" - inkscape:cy="49.177003" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1118" - inkscape:window-height="684" - inkscape:window-x="465" - inkscape:window-y="406" - inkscape:window-maximized="0" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(0,-952.36218)"> - <rect - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect2993" - width="100" - height="100" - x="0.16797371" - y="952.60327" - rx="15" - ry="15" /> - <image - y="957.90533" - x="7.5177755" - id="image4088" - xlink:href="data:image/png;base64,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 YII= " - height="98" - width="88" - style="opacity:0.75" /> - </g> -</svg> diff --git a/demos/quick3d/model_viewer/qml/images/zoomout.png b/demos/quick3d/model_viewer/qml/images/zoomout.png Binary files differdeleted file mode 100644 index 01ed6f25..00000000 --- a/demos/quick3d/model_viewer/qml/images/zoomout.png +++ /dev/null diff --git a/demos/quick3d/model_viewer/qml/images/zoomout.svg b/demos/quick3d/model_viewer/qml/images/zoomout.svg deleted file mode 100644 index ab722c1b..00000000 --- a/demos/quick3d/model_viewer/qml/images/zoomout.svg +++ /dev/null @@ -1,169 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="100" - height="100" - id="svg2" - version="1.1" - inkscape:version="0.47+devel r9541" - sodipodi:docname="zoomout.svg"> - <defs - id="defs4" /> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="114.34946" - inkscape:cy="49.177003" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1118" - inkscape:window-height="684" - inkscape:window-x="465" - inkscape:window-y="406" - inkscape:window-maximized="0" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(0,-952.36218)"> - <rect - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect2993" - width="100" - height="100" - x="0.16797371" - y="952.60327" - rx="15" - ry="15" /> - <image - y="962.42053" - x="-2.5685232" - id="image4305" - xlink:href="data:image/png;base64,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 -kIVqMoUAAAAASUVORK5CYII= -" - height="92" - width="91" - style="opacity:0.75" /> - </g> -</svg> diff --git a/demos/quick3d/model_viewer/qml/meshes/monkey.3ds b/demos/quick3d/model_viewer/qml/meshes/monkey.3ds Binary files differdeleted file mode 100644 index e9a007b2..00000000 --- a/demos/quick3d/model_viewer/qml/meshes/monkey.3ds +++ /dev/null diff --git a/demos/quick3d/model_viewer/qml/meshes/penguin.3ds b/demos/quick3d/model_viewer/qml/meshes/penguin.3ds Binary files differdeleted file mode 100644 index 26c09ac0..00000000 --- a/demos/quick3d/model_viewer/qml/meshes/penguin.3ds +++ /dev/null diff --git a/demos/quick3d/model_viewer/qml/model_viewer.qml b/demos/quick3d/model_viewer/qml/model_viewer.qml deleted file mode 100644 index a8b9c0b4..00000000 --- a/demos/quick3d/model_viewer/qml/model_viewer.qml +++ /dev/null @@ -1,272 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import Qt3D 1.0 - -Rectangle { - id: mainwindow - width: 640 - height: 360 - - gradient: Gradient { - GradientStop { position: 0.0; color: "#300000" } - GradientStop { position: 0.3; color: "darkred" } - GradientStop { position: 1.0; color: "#300000" } - } - - states: [ - State { - name: "Open" - - PropertyChanges { target: mainwindow; x: -800} - - }, - State { - name: "NotImplemented" - - //PropertyChanges { target: container; y: 0 } - } - ] - - transitions: Transition { - NumberAnimation { properties: "x"; easing.type: Easing.OutQuad; duration: 600 } - } - - Item { - width: 640; height: 360 - - Viewport { - anchors.fill: parent - id: viewport - picking: false - blending: true - - camera: Camera { - eye: Qt.vector3d(0, 0, 350) - farPlane: 2000 - } - - Item3D { - id: mainItem - scale: 50 - mesh: source_mesh - effect: Effect {} - cullFaces: "CullBackFaces" - } - - Mesh { - id: source_mesh - source: "meshes/monkey.3ds" - } - - MouseArea { - id: mouseArea - property bool rotating: false - property int startX: 0 - property int startY: 0 - property variant startEye - property variant startCenter - property variant startUpVector - anchors.fill: parent - onPressed: { - if (mouse.button == Qt.LeftButton) { - rotating = true; - startX = mouse.x; - startY = mouse.y; - startEye = viewport.camera.eye; - startCenter = viewport.camera.center; - startUpVector = viewport.camera.upVector; - } - } - onReleased: { - if (mouse.button == Qt.LeftButton) - rotating = false; - } - onPositionChanged: { - if (rotating) { - var deltaX = mouse.x - startX; - var deltaY = mouse.y - startY; - var angleAroundY = deltaX * 90 / mouseArea.width; - var angleAroundX = deltaY * 90 / mouseArea.height; - - viewport.camera.eye = startEye; - viewport.camera.center = startCenter; - viewport.camera.upVector = startUpVector; - viewport.camera.tiltPanRollCenter - (-angleAroundX, -angleAroundY, 0); - } - } - } - } - - Rectangle { - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottomMargin: 15 - anchors.bottom: parent.bottom - radius: 10 - border.width: 1 - border.color: "black" - color: "white" - width: 500 - height: 25 - //Enter text here - TextInput { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - id: textInput - text: source_mesh.source - activeFocusOnPress: false - MouseArea { - anchors.fill: parent - onClicked: { - if (!textInput.activeFocus) { - textInput.forceActiveFocus(); - textInput.openSoftwareInputPanel(); - } else { - textInput.focus = false; - } - } - onPressAndHold: textInput.closeSoftwareInputPanel(); - } - } - } - - - //Button 1 - /* MainButton { - id: button1 - anchors.top: parent.top - imageSource: "images/cog.svg" - - MouseArea { - //property bool on: false - anchors.fill: parent - onClicked: { - //source_mesh.options = "ForceSmooth"; - //source_mesh.source = textInput.text; - parent.bounce = true; - - if (mainwindow.state == "")mainwindow.state = "Open"; else mainwindow.state = ""; - } - } - }*/ - - //Button 2 - MainButton { - id: button2 - anchors.top: parent.top - imageSource: "images/zoomin.svg"; - property bool zoom: false - property real changeScale: 1.1 - - MouseArea { - anchors.fill: parent - onClicked: { - button2.changeScale = 1.1 - button2.zoom = true - parent.bounce = true; - } - onPressAndHold: { - button2.changeScale = 2 - button2.zoom = true - parent.bounce = true; - } - - } - - SequentialAnimation { - running: button2.zoom - loops: 1 - NumberAnimation { target: mainItem; property: "scale"; to: mainItem.scale*button2.changeScale; duration: 50;} - onCompleted: button2.zoom = false - } - } - - //Buton 3 - MainButton { - id: button3 - anchors.top: button2.bottom - imageSource: "images/zoomout.svg" - property bool zoom: false - property real changeScale: 1.1 - - MouseArea { - anchors.fill: parent - onClicked: { - button3.changeScale = 1.1 - button3.zoom = true - parent.bounce = true; - } - onPressAndHold: { - button3.changeScale = 2 - button3.zoom = true - parent.bounce = true; - } - } - - SequentialAnimation { - running: button3.zoom - loops: 1 - NumberAnimation { target: mainItem; property: "scale"; to: mainItem.scale/button3.changeScale; duration: 50;} - onCompleted: button3.zoom = false - } - } - - //Buton 4 - MainButton { - id: button4 - anchors.top: button3.bottom - imageSource: "images/arrow.svg" - - MouseArea { - anchors.fill: parent - onClicked: { - - parent.bounce = true; - - source_mesh.source = textInput.text; - } - } - } - - - } -} diff --git a/demos/quick3d/model_viewer/qtquick3d.ico b/demos/quick3d/model_viewer/qtquick3d.ico Binary files differdeleted file mode 100644 index c695ac72..00000000 --- a/demos/quick3d/model_viewer/qtquick3d.ico +++ /dev/null diff --git a/demos/quick3d/model_viewer/qtquick3d.png b/demos/quick3d/model_viewer/qtquick3d.png Binary files differdeleted file mode 100644 index 8351083e..00000000 --- a/demos/quick3d/model_viewer/qtquick3d.png +++ /dev/null diff --git a/demos/quick3d/qmlres.h b/demos/quick3d/qmlres.h deleted file mode 100644 index cae7d29a..00000000 --- a/demos/quick3d/qmlres.h +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLRES_H -#define QMLRES_H - -#include <QtCore/qdir.h> -#include <QtCore/qcoreapplication.h> - -#include <QtCore/qdebug.h> - -#define internal_xstr(s) internal_str(s) -#define internal_str(s) #s - -/*! - \internal - Returns a string with the path to qml resources, including qml sources, - 3D assets and textures. The path depends on the platform, and (for - some platforms) whether it was installed from a package or is being run - in a development setting. -*/ -static QString q_get_qmldir(const QString &name) -{ - QString qml = name; - // try for a Linux package install first -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) -#ifdef QT3D_USE_OPT - QDir pkgdir(QLatin1String("/opt/mt/applications/" internal_xstr(QT3D_USE_OPT))); -#else - QDir pkgdir(QLatin1String("/usr/share/qt5/quick3d/examples")); -#endif -#else - QDir pkgdir(QLatin1String("/usr/share/qt4/quick3d/examples")); -#endif - QString app = QCoreApplication::applicationFilePath(); - app = app.section(QDir::separator(), -1); - if (pkgdir.cd(app) && pkgdir.exists()) - { - qml = pkgdir.filePath(qml); - } - else - { - // failing that try Mac (pkg & dev) next - QDir dir(QCoreApplication::applicationDirPath()); - if (dir.path().endsWith(QLatin1String("MacOS"))) - { - if (dir.cdUp() && dir.cd(QLatin1String("Resources")) - && dir.exists()) - { - qml = dir.filePath(qml); - } - else - { - qWarning("Expected app bundle with QML resources!"); - } - } - else - { - // for Windows (pkg & dev), and for Linux dev expect to find it - // in a "resources" directory next to the binary - if (dir.cd(QLatin1String("resources")) && dir.exists()) - { - QString app = QCoreApplication::applicationFilePath(); - app = QDir::toNativeSeparators(app); - //For windows platforms the "app" filepath should have the .exe extension removed. - const QString winExtension = ".exe"; - if (app.right(winExtension.length()) == winExtension) { - app = app.left(app.length() - winExtension.length()); - } - - //Grab just the app name itself. - app = app.section(QDir::separator(), -1); - - if (dir.cd(QLatin1String("examples")) && dir.cd(app) && dir.exists()) - { - qml = dir.filePath(qml); - } - else - { - QString msg = QLatin1String("examples"); - msg += QDir::separator(); - msg += app; - qWarning("Expected %s directry with qml resources!", qPrintable(msg)); - } - } - } - } - return qml; -} - -#endif // QMLRES_H diff --git a/demos/quick3d/qtquick3d.svg b/demos/quick3d/qtquick3d.svg deleted file mode 100644 index 3b8a5c7a..00000000 --- a/demos/quick3d/qtquick3d.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- Converted with SVG Converter - Version 0.9.5 (Compiled Mon May 30 09:08:51 2011) - Copyright (C) 2011 Nokia --> -<svg xmlns="http://www.w3.org/2000/svg" width="287" version="1.1" height="286" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="tiny" id="svg2"> - <defs id="defs4"> - <linearGradient gradientTransform="matrix(1.0104795,0,0,1.004441,23.387309,76.758859)" id="linearGradient3730-2" y1="131.35715" y2="156.39526" x1="23.626827" gradientUnits="userSpaceOnUse" x2="303.57144"> - <stop offset="0" style="stop-color:#038d30;stop-opacity:1;" id="stop3726-7"/> - <stop offset="1" style="stop-color:#038d30;stop-opacity:0;" id="stop3728-1"/> - </linearGradient> - <linearGradient id="linearGradient3724-7"> - <stop offset="0" style="stop-color:#038d30;stop-opacity:1;" id="stop3726-7"/> - <stop offset="1" style="stop-color:#038d30;stop-opacity:0;" id="stop3728-1"/> - </linearGradient> - </defs> - <metadata id="metadata7"/> - <g id="layer1" transform="translate(-25.071424,-77.933617)"> - <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#00ffff;stroke-width:8.85648727000000060;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="path3722" d="M 149.39285,339.37194 C 118.29002,338.06386 93.410274,329.21846 78.267585,314.08502 66.239667,302.06444 58.159936,285.11057 54.818135,264.88047 c -1.962614,-11.881 -2.442596,-20.11519 -2.455216,-42.1199 -0.01051,-18.36712 0.160997,-23.0644 1.239861,-33.95521 2.529982,-25.53941 11.482605,-46.43472 25.677112,-59.93007 16.042727,-15.25252 39.462148,-23.21337 72.203768,-24.54383 6.77105,-0.27512 31.97542,0.38686 41.46813,1.08915 17.85829,1.32123 29.86273,4.01251 41.92069,9.39824 16.71724,7.46685 28.60768,18.52238 36.44553,33.88638 5.7477,11.26691 9.34961,23.29707 11.69339,39.05536 2.22754,14.97664 2.81073,44.00559 1.22086,60.77114 -2.76934,29.20404 -10.704,50.36949 -24.19378,64.53629 -8.65346,9.08774 -21.29946,16.39504 -35.37578,20.44137 -13.11053,3.76868 -25.14568,5.0858 -52.44498,5.73944 -13.81368,0.33078 -17.4242,0.35023 -22.82487,0.12311 l 0,0 z"/> - <rect width="236.93414" x="49.282932" y="102.78797" rx="95.84404" ry="92.255867" height="239.43414" style="opacity:0;fill:none;stroke:#008000;stroke-width:3.29858350999999980;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect2852"/> - <rect width="175" x="28.571428" y="19.214285" rx="95.84404" ry="92.255867" height="206.07143" style="opacity:0;fill:#b94b4b;fill-opacity:1;stroke:#05d105;stroke-width:4.147;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect3704" transform="translate(25.071424,77.933617)"/> - <image width="191.18274" x="73.931854" y="148.93103" height="144.13199" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK0AAACDCAYAAAD/CZsFAAAABHNCSVQICAgIfAhkiAAAIABJREFU
eJzsvXmUXdV5L/jb+0x3qltzqVSTZglJIECI0QYMjTEE45jwVszCcUgcp1fil3ZC2unl9PJb7tXL
dl4Sk7x46DhJ20mcvNjQL7Ed2wkewIARYIVJDJoQmkpIVarxzveeYe/+Yw9nn3NvSaUBnO7w2YXu
PfecPX77+37fsPchADjeprfp/0NEf9YNeJveprMl+2fdgNMRIUR/5vxthfA2Cfp3LWkVoxJCEgz8
Nv3Hpn93kra7uxvr1q3DwMAABgYGYFkWbNtGFEWYnZ1FqVRCqVTC3r17EUXRz7q5b9PPgP5dMO3Y
2BjGxsZwzTXXYGhoCFu3btVMSymFZVngnGNmZgblchmlUgkvvPAC9uzZg/3792Pfvn1vw4f/QETw
M/QeZLNZbNu2DR/4wAewefNmXH311chkMshkMvoexYyUUjDG9PVWq4V9+/Zhz5492LNnD772ta+h
XC6jXC6/5f14m9564j+rv76+Pv6xj32MT05OcsYYZ4zxKIp4FEVt3znnPAxD/ad+bzabvFwu86uv
vpqPjY39zPry9t9b+vfWVkgI4ZlMhheLRT43N8er1SoPw1Azp/mnGFR9Nhk6fQ/nnH/1q1/lq1at
+lkP6Nt/b/LfW+49cBwH999/P15//XX09vYil8t19AwQQkApBSEEnHNQGjfV9CpQSkEpBecc9957
L+677z7kcrm3rD9v01tPbzmmffrpp7XhZRpPijnTZDJo+n71u2Jqzjmmp6dx6tQpXH755Ynnz0SE
EHz4wx/Gr/7qr2J6ehpzc3M4dOgQFhcXceLECUxOTuLYsWOYm5s7574DgOu6GBkZwcjICIaGhlCv
1zE1NYWpqSmcOnXqvMr+j0Jvqffg6quvxujoKLq6ujQzcc4TDLkUk6WvL3VfPp/H0NAQNmzYgLm5
uWUzmWVZ6O3txfj4OPr6+lCv17FmzRo0m01UKhU89dRTIIScNdOqxTU6OorR0VHccccd6OrqQldX
F/L5PIIgQLVaRbVaxbPPPov9+/fj1VdfRRiGZ1XPfyR6S5jWcRzYto1PfvKTGB0dBRAz61K01O+m
5FWkgg+cc+TzeeRyOdx///34l3/5F3zve9/T0vhMbRwYGMD4+HjHunzfx969e5ffaYOuuOIK3Hvv
vdi0aRNuv/32JbXHvn378Oqrr+Kv/uqv8NRTT6FWq51Tff9/p7eEabds2YJLL70Ut912WxvTLcW4
CsMGQYAwDEEpheu6p2V0xQSEEHzwgx9EvV7HM888g9nZ2TO20XVdOI6jv6eZvNFonBM0+MhHPoJ3
vetdeO9734tCodD2u7k4N2/ejA0bNqCvrw87d+7EZz7zGURR9JYHUbZv3w7f91EqlVCv17GwsLCs
hf9W0VtiiG3atAl33nknLMtaVkhW3UMIQRRFaDabaLVaietLlaMMs66uLqxcuRJ9fX3LGmwVxEiX
abaj1WqdXcchmPbGG29EV1dXW5nqs/mvbdu47rrr8Fu/9VtwHAeWZZ11nedLl19+OS6++GKMjY2h
r6/v310Y/U2TtKqTfX192LZtG+644w5EUaQl6OlU/+HDh3H48GH89m//NmZnZzEzMwPOOa699lrc
dtttuO2227Bjx46Oq9/Extu3b8cVV1yB/fv3n7G9StIuZQy2Wi1UKpVl9/+6667DddddhyuvvLKt
nemcCvW7GhMVYPnsZz+Lhx9+GP/6r/+67HovBD3wwAPwPE8HeS6//HJtLP57oTfVp/bVr36VP//8
823BAtPPqnyvnHO+a9cufscdd5yx3EcffbQt+GCWF4Yh932ff/rTn+bd3d1nLG/16tX8r//6rzsG
OGZnZ/l/+S//hReLxWX1ua+vj//Zn/2ZLssMipj97eSPNr8zxviXvvQlPjQ09Jb6QZvNJg+CgCta
v3497+vrO+fy8vk8Hx8f5+vXr+ee53Hbts+rfW8aPMjlcujv78d9992Hbdu2gTHWUYqZEvfHP/4x
vvSlL+F73/veGcu/55579GclqdIuMcuysGbNGlx//fVnLK+vrw99fX2Ja6q8crmMSqWCarV6xnIA
4IYbbsD111+fCDub7TLL7kSmOr7mmmtwzTXXLKve8yXHcZDNZuG6bgKWNBqN8/JmbNu2DX/+53+O
V155BaVSCZ/73OcwODh4zuW9aUzb29uLdevWnRUe+uY3v4l9+/Yt6/5arYannnoKk5OTpzXqBgYG
sHnz5jOWl81mkc1mE9dUeY1GA0EQLIvRuru7sWrVKqxYsaKjp8O8f3p6GtVqFUEQtPmd1eeenh70
9vaesf0XghzHQT6f199VW4IgOC9j0LIsjc8tywJj7LwWwZuGabdt24bbbrsNQLt7Kj35J0+exIkT
J/C3f/u3yzZ2arUaPv/5z+Puu+9OuKlMnAgAa9euxS233II//uM/TjyvjC5KKXzfR09PD7q7uzvW
deLECVQqlTY3XCcmvu222/COd7wDw8PDievqOd/38dxzz+G5557D3r17kc/ncfHFF+Piiy/G9u3b
2xh85cqV2LRpEyYmJnDs2LFljc25UldXF1asWNF2/XwlbSaTQS6X09K71Wqh0Wicc3lvCtO6rotL
L70Ud99995I+SXUtiiI8+uijeOihh846Q+uxxx7D9u3bEUURbLtzV3p7e7F27dq261dddRXWr1+P
9evXo1KpaGs5HewAgFKpBMdxsHLlSgRBgHq9jiAIEASBvkfdf99992H9+vVtMIBzDsYY/uiP/gg/
/elP8cwzz2B+fh6A8K5s3LgRX/jCF9Dd3Y1isajLzWQy2LJlC9797nfjK1/5ylmNz9lSp7EihKDV
ap2XpM3lcjq0roxa3/fPubw3jWn7+/sxMjJyxkgWYwz79+/Hd7/73bOup1arwff906pt27YTqY6K
duzYgXe/+9249dZbsbi4CNd1kc/nO7q8lAtteHgY9Xpd43OTaRVt3LgRPT09mvlVecrf+vnPfx6N
RgP1el0/s3//fuzfvx+/93u/h4mJCc206tmBgQFs2rTprMfnbCmbzSZwvdn28/HROo6jfeCMMf13
rvSmMK2SYMvJF1DQ4FyoXq9jbm4Ok5OTWLt2bcJ9pCjNjOq3DRs2YGhoCJ7nYWhoqK1ss6y77roL
d911FwBoKRGGIcIwxNe+9jV8/OMf10nrnaQ6ALz66qvYvXt3xwCFatsf/MEf4IMf/CDuvffexO8b
N25EX18fPvGJT7ypTv5XXnkF+/fvx5NPPgnP81AsFpHJZM47uKEkLSEECwsL5wUNgDeJadesWYM1
a9YAgE5kAdCRgV988UW8+OKL51QP5xyTk5N4+umnsW7duoR0U5Nr27YeMLN+FXlK50Ck/abmd1We
GSRRSS47duzAe97zno4LBwB+9KMf4U/+5E+W7AshBDt37sRVV12FZrMJ13W1T7tQKMC2bb3tyGQi
Fbau1WpoNpvnxdRhGCKKIhw8ePCCLg7VRs45pqamlu2FWYreFO/B+Pg4xsbGtBroNACKaV999VW8
+uqr51zX3NwcXnvtNQAxboyiSNerLNdCoQDXdfVzmzZtwsDAgH5OPWuqLXUtHQwwIcSxY8dAKcW2
bdvaJKS67/XXX8fu3btx8uTJjn1Q9ZTLZRw5cgRvvPGGVslKIzmO0+aKIoTg/vvvx9GjR1GtVtFo
NPDiiy/iwQcfbKujt7cXl19+OW655RZcffXVuOiii7BixYpE6NociwtFlFLk83ntlZienj7vnIoL
LmkzmQyy2WzbYABJaQaICZ+fnz8v9eP7/mkjVapOx3G0BUwIged5eu/Z+VC9Xkcmk4HnefA8r81l
BYiJmp6eXnZ5jUajY0KQbdsJKz6Nv5Vk7oQXx8fHce211+Kqq66C7/toNpt44okn8MQTT2htsX79
emzYsAGDg4NoNps4evQopqencfjw4SXbOzo6ik2bNmm49G//9m8JrG9ZFlzX1YZytVo9LyMMeBOY
dv369RgdHW3zeSoyB/rpp5/G0aNHz4tpFa5N+0TT37PZrB7MbDaLrq4unYCzHFfWUn2Ym5tDb28v
urq62pLPlZQ8dOgQXn/99WX1Z25uDvPz8xqCqLbZtg3P8xJMm8/n4XkebNvWWqXZbHbEzZs3b8a7
3vUu3H333fpaFEV47rnndJ+uuOIKfOADH8C2bdvQbDbx4x//GE899VRHplUQ8J577kkw7eOPP46/
+Zu/QaVSQaVS0QELz/MAAKdOnUpIWpWTQQhJuNZOa1wvayTPgq6++mpMTEzolZXGsSaD7Nq1C2+8
8cZ51ReGIZrNZqJ8sz51Te2CAET0K5PJJPIgTjdIp+vD7OwsNm3ahMHBwbbkFkIIyuUyjh07tmxJ
22lzpmqn67q6r4CQct3d3Yl6FxYWOjLZ2NgYisViYsGZWooQgr6+Pqxdu1bbIwcOHEhAKkVbt27F
HXfcgTvuuCMRbeSc47rrrgMA/OQnP8GTTz6pF5bqgwqoqMSmj3/84zrvo1qt4tOf/vSS0VNFF5xp
R0ZGEhlNS0WFCCE4fvz4ee+e5ZwjiqIzMp45ENlsVkuntJRVbTPVvFK3naR4tVrFxMSEDkyk21Aq
lTA/P79sHNdqtdBqtdoMQRWWNtva29uLbDab6Huz2cTCwkJbucViUcMXdX8YhlpVq/JNWLdUWVu3
bsWOHTtw/fXXa4GgxjeXy+HWW2/FyZMntRfC9KEreKCy6n7zN39Texd838dnPvOZM0ZELzjTXnLJ
JRgaGupofQNJ5t23b9+ycl1PR8pIAZKuNNPiJ0QkcSsYUqlU8Id/+If6IJBbbrkFQ0NDba4v9fzU
1BRc14XnecjlctqKZ4xhZmYG119/PVatWtVx4ezZswczMzPL7o/v+/B9f8m0S/O6WizmwiuVSpic
nGx71lxYilSgBBDz4rouCoWCLq/RaOgACAAdhv3Sl76EbDar+6rGVbXh4MGDGrL19vYm/OSzs7Oo
1+sYGxvD6tWrdeojAHz961/v6PtO0wVhWtOqTlvlpuGVntC5uTk0m822Mw3OhhzH0VjSrMdkXMYY
arWaHpCpqSn8/u//vi7jy1/+Mq644ooE0yqf4tzcHC699FK9+0I5ylW/fN/H1q1bl/T1ni0E6mTI
LTV+a9asQW9vb4KRl0pWHx0dTcCDxcXFBIaklMLzPG3lM8ZQr9dRKpV0GZs3b8bWrVvR39/f0X2p
/p2ZmdGLoa+vL8Hg5XIZrVYLN954I+67775E2z/72c8ua4wumKRVGGXVqlUJHJSWtEotqUE5UyLK
mSiXy+lFkq5T1ccYQ6PRWLKe9evXJyJB6r5SqYSjR4/C9/3TSoCVK1cmJJRZ9+7du88qD1VJM3My
lepNY71Vq1YlpKdKmO/kTenp6UlIvDQ0S8ODKIpQr9exuLio77n66qvx4Q9/WMMxhVNPnTql57+v
r09LU0Awreknn5mZQTabxY4dO3DTTTeBMYaDBw/i4MGD2nV5JrpgTGt2wiRTWqjPKmHifLOHAOjI
zVL+xeVkFJkY12SWer1+RviSzWaRyWQ6Gp6A0CZnEwFSkEWRuQAUJFFkMqL6PQiChEtJ9cdsIyAW
pGnUKc2h5pBzrl1jykU4NDSE8fHxhPacnp7GAw88oK/9zu/8DprNph7zfD6fwMmlUglDQ0M6xE8I
wdGjR/HEE08se4wuCNOahoJacaZKM9UH5xz1eh0zMzM6gnM+1NPTg1WrVrVdV3Uq78Lp6unp6dEu
GdPwmZ+fTwQulnq2WCy2uajUInrjjTfOythUPl+TVFlBECSYdmRkRKt8pcE6SVpCiHbxqe/Hjh1L
qP5MJpPwpyrtpNo+ODiIdevWYXx8PGEv/Omf/ik+97nPJeqamZnRhufg4GACvpXLZdx8883Yvn07
OOcol8t49tln8Q//8A/LHqMLJmlVYkp68gC0STC1dUVJ2XNlXEII+vv7sXHjxrbfVJlhGC4p6cz9
ZIpRzLbOz8+f0b+qnk1DIBOWnE1an5kRpfqoonymMUkp1UaOqjcIgra0PyUB09ogzbRDQ0MoFAra
FlBSW8G3sbExjI6O6roWFhYwPz+PL3/5y4n2/8Vf/AUGBwe1Adff369DuICAGFdddRVGR0dBCMGD
Dz6Ip59+GsePH1/2GF0wplWRjzRESDvtTVfL+UpZQggKhQKGhoaWdHlFUYQwDDv+RinVTvtOGwjT
1nMnMgMU6YXaCYeeiVzX7egbVTDHdL+l2326DKq0MCmVSoncZeUSU+1Ph9+LxWICPy8sLODQoUNt
WmRxcTGBg3O5XMK7c+WVVyb8+N///vd1rsNy6YJL2rRbxmQmdf1cd7amyXVd9PT0JCRA2lvh+/6S
CRr5fB7FYjGh3s32Li4u4ujRo6dtQ9pzkXZVpXHomUi1hzGmw8xK0pplZTKZNuNK3ZO2E5Q7y7Zt
3b7JycmEpFWBCjMUbJaTdgnu3bt3Wemkynug6v3gBz+IXC6Her2Oer2O73znO2ftObqgTGuGbtOW
tLoGQKu68yUlHYB4cTDGtAtNSZSlGE95HpSKTRuNCnufjpRUXMoQPFttojCyuXOZMaZVtcm0XV1d
ifyJ020LUlEpNS/pbKvx8XF0d3frvjebTW0LUEqxYsUKzbTKd/3SSy+dsT9pCKP2hj3++ON4/PHH
z2lHxAWFB47jaEmbxrVAUhp18jScLQ0ODiKfzyfSH9MS7/jx43jmmWc6Pp/P59u2l5gMUC6XzxjJ
Uup5qSjOUsxsknrWtm309vYmmIcQgmazicXFxUQyttpmbvZbGX1mfdlsVm91MTXQwsJCwnug3Haq
rFqtppk6l8uht7c34darVCrLwqHd3d0Jw1Lh/IcffhgPPPDAGZ/vRG/pqYnmAF+IQyjGxsb0BC9F
5XK5Y4QIEBOa3jRoeh1ardYZIzRnCjmacOVM9ylokMlkEs9Vq1WcPHkywYyd3GLKcW+S53l6jNRC
SBt1ALR3QUlyczuRiUsVBUGwLFdeOp0SQBvUOVu6YEyrMFBazSoyB9zzPBQKhWVP6FJ0++23Y8OG
DW0BDLPu48ePY9euXR2f7+vrw/r169ueAUTcXW3nOR2lPQbp/qQx/ulo9erVGB4eRjabTUz05OQk
nnrqqUQfFWObbVA41RwHte9LtUNBjTSDDw8PI5/P62er1arezKk0mjlGrVZrWa68QqGQMPA453Ac
B319fRgZGVnWuKTpgjGtimObid+K0uoxl8thcHBQbys+F8Z1XRd33HEHNmzY0LEuzjmq1SomJydx
6NChjmX09fUlnjf/VXmtZ6I0hkwbhAoynY4UFr/yyisTE6nKOnbsGHbu3Jl4RuUcmHV3YtrBwUFs
3rxZt0d5U9LBhYGBAe2aUmOnoJHKilOkBNRy8gSUBFf8wTmH53nYvHkzbrnlljM+34kuGKZVKud0
/ln1WSVmqKTmc4mKua6LiYmJ0x6zVKlUsLi4mJgck0x4kF5YKj/0THS6pGyF3Ze7KNesWYOenp62
65VKpS1/wTyfQFEneKCOPlWkFkh6h62KCioy4UFaxZ+tC8+yLA0nFL4dGBjARRddtOxyTLpgkrbV
aqFUKiX8iOnJUkzc1dWlUxhN1XE2dNNNN51WUlNKceLEiSWTVSilGBgYwMaNG3VbVTmUUrRarSWZ
3aRyuZx4Nm1sqqSW5ZDKFlPEOUetVsORI0fwyiuvJO5VznmzbpWoYo7HyMgIduzYob8reGBqQ9d1
EzkChBDtkgLQdhDe2WhHBQ9effVVPPjgg3phbdq0Ce973/t0FPVseOCCMK2JlUzJaQ6qOZnq88qV
K5HP588JkP/Kr/wKgFhydOr0gQMHcODAgY7PU0r10U1pycE5b3OSL0Xz8/M68SfdR0II3vWud2H1
6tWnLUO1Q8EDE2IsLCxgZmamTYKuXLmyrZzFxUW0Wi2tfRzHwcjICLZu3ZoIdqgghRIimUxG+1MV
mUxr7rlTbTOz605HKhJXrVYxPT2Nl19+GdPT0ygWixgfH0/kfSyXLqghFoZhYjvFmdw9t956K9at
W7fsOszzB9773vcmIkRmO1SG0pEjR3DixImOmFLtbjUd7qYxtVymPXXqlI61mzF51e+77rrrjGrw
hhtuwCc/+UnYtp1oKyEEr732Wsfsp+UcYVosFjEyMqIZXAVbzIw3FVlT4VY1FqbLS6V1muPU3d19
2sWotKmSyiq6+MQTT+Do0aN6a/873/lOTExMnLYfabogTKvcKGEYYteuXThx4kSbhAXazz34+Z//
+bPCNYwx3H777fjiF7+oIzxKvajyVT7Bd77zHbz44ouo1WpLhjXVn3rWdAuZhsiZaM+ePZidnW3r
M2MMl156KS6++OLTHri2fft2fOQjH0kwu1o8S+0vMzGtqm9kZASFQkFrussuuwyXX355AvbUajWc
OHGizZdrUhAEqFQqWtKqLTLmol69ejVuvPFG/UyhUMDw8DA++tGPJr4r1a/g40MPPYQ9e/bocXrf
+9531geRXHA/7eTkpHaFpCVPWjKMj4/r5OTl0ODgICYmJrBp06aO5Zrfd+7cuaR/FkBbECRdlloQ
y6HXXntNZ+p3atPExMSS0uSee+7Btm3bOu5enpubw/T0dEfXkhlQUXT55ZfrM8SGh4exZcsWnZWl
qNVqaQmq2pk+Ukrlhigj00ygV+O1Zs0a3HzzzVixYgWGh4dx44034td//dd1hFAZ22aZrVYLMzMz
WFxc1Eb7JZdcguHh4bPy21/w7TaPPPIIVqxYgWuvvbZNyqpVqgZrbGwMt9xyC3bu3IlHHnmkze8I
9TznKBaL+NSnPoUrrriiTTqbTKK2q3zzm988rR9RSdml3FFjY2MYHx/Hyy+/3GYopL0d3/nud9Hd
3Y0rr7yyzSDjXCSJfOhDH8L4xAR+9KMf6d0P7//5n8f999+P/v7+tgOdCSH41re+hV27di3LH8o5
x5133onBwUFcdNFFWLt2LXbs2KEXi2pPpVJNnOjDOU9IWhWBq1Qq0uVHdEZXo9HQbrENGzZgzZo1
+NSnPgVCCC655BJcfPHF+MQnPgEA+iR2RQoenDp1CocPH8apU6cwOjqKK6+8Ejt37sTg4OCyk+Uv
ONPu2rULV111Fer1ets7BswJVYy2fft2/NpHPoJVq1bh7/7+78FSCR9Dg4MYHBzEhz70IXz0ox9t
C16YbjVCCA4cOICXXnqpLYIkWyD/5SCGpE2XwznHRRddhF/7tV/TZ+uq++bn5/GXf/mX8YIC8Pzz
z+Omm25CFEUdJeaKFSvwi7/4i7jxxhtx7TXX6Eyu97///Vi5cmXH/hBC8JWvfEWEStNGJueoSS+B
2cfR0VHceeedeM973rPk+9mq1QpOnEiOTa/ctaHKqzcaMo9BSNpWq4Xjx4/j5MkprF0rduoqe+A3
fuM3EvOrdh0rTAsImFStVvU2oEOHDuHQoUMYGxuD67oYHR3FZZddhocffritvZ3ogjNtqVTSvlEV
9eoULVKfc7kc3nHddRgfH8fXv/ENhBIfAwBkNGbLli342Mc+lqgnPWGKDh8+jEcfffS8dkSokOrt
t9+Om2++OfG+h9dff10wrbgR4ByNeh2+9HummVa1U6nRrVu3atwtutienaZo3/79aJoBDlkfgMSB
HuY4qA2YpkfF/N33fdRqyay3vBQu6r4gCBCl7IBSuYxSuZS4ll7sql2qHQWjXN/3NUZOG7nd3d1n
ZYydG9PGAku1Pv6Nc+zduw979+5NnIbdicnUtfHxcUxMTOD48eM4ceIEjh8/Ds441q1fh76+PvRL
S1ntTVIutjSVSiV9WIRul9FWMbgEnDNETPylXTnmRJvvHVCkomuEUIBSECos4xd378Y3HnoIv/LL
vyzK4lyPi4lv0056NQYqOw0Anty5E0/ufBIL8/MglILatmg3IUAUgUchDh87lsDPnbSOeiuNmXJY
q9VwamYG1LLBOQNnDEMrku4z5UslhACy3D179mLPnj3Yfvnlif4ASCwQxYxmUCOKIlSrVZ2bfOTI
ERw5ckS3fePGjbjzzjtjYXAGOnumNTEbEd/lFdmBCLtf2o3dL72EG264IfFoelWaTMw5R3exiO5i
EVtk2FExpqkyTYmUllKPPfY4HnvscXHNUjiU6narNvOII/R9RGGIMLX9eakFoeiExF2CmRwQm4LY
Dh576mk8u/tl/PIv/VJbeWZbO2WkmZ+r1Sq+/e1v44EH/gTUcUCoBWI7cTkAGOd4/oUXE1rMlNxq
vJ7+6S6Ac9x+23v0tXqzidn5eVDHAQtDcMYwPJrMASiVymg1W4BFAcuG7bg4cvwNPP/Ci7juundg
9aqJhPAw50Wlcvb09OhDPwCRy6GYtlQq4dChQzhw4ICOjC512mQnWh7TJgaX6hUIQGNDyEGzCMFi
qYyf/ORJDK8cwX/6hbsSE3Y6SlvE6Qk2t4Wnmf/7P/gB/vEf/wdeevklWI4LYlkglIBod5gRxaEU
rUoJ9XoD1UoVxQ5vkFyKXj90CAABdRxYmSyo42pmKC2ewP/zzW9h6+bNuHjLZl2eSWZ/1ISbVvw/
fevb+OZ3vgvL80C9DKhlgdoOQCk4AZSIOPbGSVSqVbjyYLp4fsTvP3z0x/jRI49g7erVIITADwLY
loV6vYGZuXlQLwNOAoARjIynjLVaFa3AF4vFywK2DTCGL//N3+Irf/d3OLxvr0h5zGb1nD744IN4
8KGHtHvuhz/8IV584UX87u/+btvRVVEU4Qtf+AK++MUvto3LcujMTKslm5BShFDBCFLCCokm/kBi
Jj72xgk89pMn8Z9+4a62yUpbyer3paSw+p6WzOa/3/72t7H/tddAbQeUWqC2nWRaasmFJq5F2Tym
5ufx/EsvYeXK4UQblhpAQgjK1SqI64K6nmAsxxN9th3YmSy+96NHAEqxcf260x7Cl24/IQTff+QR
PPv8cyiVyqCOC9vLiMXnuMY8CGnrt3zs/LdnsW71KqxfvTouV9bz7X8ukJBoAAAgAElEQVT+Z5yc
msK69euxWC6jXKmAcY6p2VlUanUQKcXhuJhZWMSTu8TBcWEQ4ImnnsHRN06CuB6o54HYDsAYOIsQ
co7/9vkviBer9PYC4Dg1NYUXXngB+/bt08KsXq9jZnYmESlNj8Ppvp+OCGJkmp4hPZiCEQWjUouC
UMEQIEQwB6GgaruKZQEccD0XruvhW9/471i5YgVGhoe1GjOlZSemXaoDnaTgCy/uxgu7d+P+++8H
AwexbFDLhu26gF5gkP/KxUYogijC6olxrJqYwDf+8s/F1m1jH1XnISH48G/+Z3z9f/wj7GwOdjYL
28uCUwq5rBE0G7jx2mvwv/7Gr+PKyy5FRm567FSW6lO5WkWlWsUH7rkHJ6emcWqxDDuThdPVBWLZ
QtLJxcYh4HLgt7DjkovxczffiDtuehdGVgyhWqtj7/4D2HvgAP733/99dA8MYPuVV2P9urWoLCwg
9H3s3b8f+w8fRotQcNsBLAcXb9mMomsjbDYRtJqYnDyOaq2GehhJpnUBzsGDADwMQIMWCtkMCtkM
EAQ4NT0lzobwW+AgAGOCrRS2v8DUkWlN9U+pBSJDnQrHWbYtsBaloI4DalmwbEf+bgGEauPixuuu
xZ23vht3vufd6E4dgJZmwE5Yr5N0Vfd89/s/wL8+/H3868MP49SpU3AyGWQKXbAdB5aUTjDhi+wX
tRyBF+UIfOZ/+zi2rl+HLevX6rJFVUmpSAjBe+/9EP7tpVfhdBXhFLrgFnvEQpWTFPg+PMvCVZds
wWWbL8K9P3crcq6LnOt07DMhBAvlMhbLFVyy4ypYuTy8gSHY2Tycrm6AErHY5EQJIw/gLEKjVsWG
8VFsHB/DaF8PFqensf/113Hg4OuYm5+Hk8vBzhXACRBWq+BhKObRdeF2FWFnMrC8LPwwRFirgkcR
eBjCssV8WtmsxtVREMBvNBCFAZjfAms1wVpNRPUaEAXgjAGMgQUheBQCnAmG1V6cC8e8neGBwbRK
Wqk/atuaUQm1YDkOqGXDcl0QSmHZdizRAPzwJzuxdvUqvPPqK9Fj7OY8HW5cDhFC8L0f/BAvvPAC
jk9OotjfD8fLIFMowHJcUFuqVColGrX0YrRdD04mAw4h8X/w1DPIeF6CaQEOzmN1rFrb4gTZnl54
vX1we/qQ7RuE5TpCEnGOiHEEzQaeP/IGXjx0DLe841oMdhWQdVOuMPkv5xz5XB5eJovs4DDgZWD1
DcIqFGEVuoXhKG4EiyIQLhk3CpHN5vDa9Cx2HzgIWq+iMXUSrufCcV14PX2wMxm4+TwotRBmsmBR
BM6EB8bOZGFnMrC9DDzLQpTNaUFj2bYQRJ4nNCmAoNkEIwSs5YvfHQdMzjlr1gXDRxEIg2BgAMC5
v1fhtHMPYwnEHoEYp1LXge24ovGWBdvLwMlkBXa0bUCq1WwuB8fz4BaKcL0MMsVuWJ6HiAOMcUSM
4b//n5/ARH/syFaT1um7ojQW5lIR3/e//Db+6aGvI5vPI5vLo9DTB9vLwM7mAcsCtSwhXS2JZYn4
lwPoXbsRpWI/SBQBjKF0ago2C7FhsA9rVwxhtOCh0WxiYXYW9WoVJ+bmUW80UW80cOz4ceRXjsHp
G4DT2w+72CvqkaqQRSHAIviVCoJaFQtHD8ElQAYMlDOsHh/FL935c/jQnXe0aY5f+K3fxZGpaRyv
+3CKPbCyeenqC8GiCIiEtc8ZAw8DOGAgTPz5zQZ4GALUAqcUVqEbVi4P2t0H7njg2SzguCC5LsDN
APkucMsGt22AWqatHbvzLEvwARgoY7ArJdBaGc2XdyFcnEOwMIcg8BFVyuCBLyRwvQrWbEomDoEw
lAs6umBQIWZaw+AictIJpbBdD7aXERLVcUBdD9l8AV42CzebRd/EGiEVegcAx4WTzYEBYISCEwIS
RQgbNQTNOtBq4U//5w9htK8Xo/29HY0R3bEOTB0xhnqrhXrLxzt/8UPIORa6VqxEYWglBtdtgOt5
yGRzoBZF6PvgUYTIDxCxCFEgXFxRFKFluTjeCITPkzGEzQb8ehWlE5NoLM6jcmISPBKDTCiB43h6
PLLFHmQHV8ApdMHJF+DmxEtIkq5rIRV5FCGqVRE16mgtzCFsNhA0G/jNX/wF/MYH7sZQT7yBEQC+
9eMn8NC/fB8/eP5ldA+PwO7pBfUysHJ5EMsGzxUA2wFsB9zLoWW74ISIseYcnEAsIGqBuVlwaoFb
tpxlrqSA/MwlPBJt50xc5/HQt7MJoWJBWBZIaQ6kPI/gse+hMfUGuN8C81sIy4uI6gKKcAklwJke
zwvBuES3XhoohBBYjgNiCcnqZLJwc3ktWcc3bUFh4xbAcQHHQ4vaIJzDIirDSp4JJSeZEgHMOedo
Lc5ifmYWG0ZXYv3oCD76vvcg53nozufgWGK1K8e8eCwVLTIY+rf+6L/hmd2voG9iNfom1qBv1WpY
tgs7Iyxu27IlXHFALXlUk5okzkGUxOIcURgg8n3USwtoNWqoLpYQhQEC30fEOZpBJIMRHD5j8AFE
HAhBEAQ+OAMIGAg4CIu0lOFSlXPGEPkBeBRhYWEO779mB95/7ZW48+rLAchDNjjHXKWK/+sfHsJf
/8uPkOnuhbV5G5orJtAYHJOq15h4xkAV4+nlQvT4mMGNsyWeEhzpUggATkSwwyJA9E9fRViaR7A4
j2BhHmFlURhtgQ/WbIhxjkJhoGmmPXfmteOGKQexgV+lj5DaDnI9vch394AOjyGwhMeAcKmeCBLS
RruWVBcpBeUcTjaPXFcL1ZaPw2+cwNcf+QmynoPuXA6ubYESgjAMcPHqCVy2MZlna0aZCIBLNm3E
ky++Ap5oNwEBEeEEY3IBFbWR/l4AQcTgRxFaEcNC00crCFANCHzmoGUXwGiEyArBOEfgCnTGOBdh
ZqlFOAgYZ0IISUOMMKHG0ayDBAGsmogQUdsCtygKXUXM1Zt4/tBR3Hl1HF0iAAqZDFb096GYy6LW
rAt1GwSgUSgMGq6CLdDeCj3eiegkSVxS/GxqA8IBrngcyXuVgWo8qj/rC0pLAqBbrgA9+hos30dY
rYLajsTHkfDaGPe2RVPPgQxDTLq2qCXcRpJZbc9DttCF4sg4ihNrEHT3I5RWNeEABQPVAQdIS1cy
EhQjURACuIVu9DgOgmYTU80GvvXMcyBRCIuFoBAM1mw0cOcN74CXz2PzaJxMkiDOccc7rsHf/+DH
sGwLQaOuB4YQgBIxaQQcFBwWOJphhGbE0GIMi60Q5SBEM2JohgzlkCFgDK2QgHEPzHXlqIoZYqY8
00xBtMFKCECkVQ9wgEUgvg8SBrCriyBBC1Z5HqRZQ86ycGR+EScXFvHb77sVxawIE1NKUchmcOlF
G7F25RCefP5FFFbXwZpNkDAAkapbzRUlADczS1UTicFt6d86cEzMlCaoTV3VZSbnQhmFZMsVsDxx
ulBYXgT3s2KcOAP35flhUSQfSDfu7MkihPwfIASUEFAJCSzHFREf24GTyWFo3Xq4QyuBvkHhazUk
MiXxEZHay6C+E6qvQ0IGYbln4eW74GY82J4nJBaliEAQEgruOJhv+Lh+y8Z48CT2U4PYU8jj4PQs
OGM4NTuL7hXDGoNTaRyCEFRDhnk/xGuVBo7VWjhabeFwpYE36i3MNAPMt0I0GIPPOCKl5AkBJ9Kv
K117OlRp+GSFrDUmQqlk6QPlroeo0I2o0A3m5cAyOZBqGdV6A3PlEt6xaT1WrxjURighBBnPw57X
DuLZ3S/BHhoBL3QD3WKPmRpHaOdOiglNd6JmOEgpqzwhqp3ix9i9yeMHU4BAeWASBUtIqbWfZYEW
uxEdeEkYhNIzw4NAYGUWJ0GdL8WSVjdeSY+YCfMDQwizeYQMsKgehSRpyWNeMwZASSUJOwDAcmy4
YR4sVwCLQrAoRBSGqMPCvuMnDQjbEblh2/o1aDSbOHDkKCLfh+W4wo0FIW0ZB0p+gJPNAK8s1hEx
od49JR2JCDsnsV9nqZKURObvHaQdV1Ia4IqBewaB7n5YJ48h5IAfhDg8PYObtm1JaJOuXA49hTxc
20bYaoGGASjj4DQ5tAlZmdDvS5C6p9N9p3neHO+lCuaMgXhZkN5BEOlRArUSvvGYNy4A0yZgsS5f
RL6obcN2bdD+QVBqg0i1EfOmsCg1gIo1avxFPYNYdUO6VCwqHPykUNBYlQAIfR8LfgunqlXkXQd5
eTKhmbvAGMP/dOlWnJyawk+aTVTnZ5HnHLmuImyb4I16C69XmjhYaYEBsKlQqbZ0exFCtbUcD4Bo
c2KiePI75wDVCxFK1opumiQFAE2Fnxvbb4B97DX0Th7EN37yDO67+Z1oBQFaQYjp+UUsVKuYK5fR
VyxgtlGF1WqAsgiEOtpfG9ehRxY8wcYGppX3M86EpLYdEcFTmJ9zIAzihWsavAaw5cY1sWaFeBDw
D4DjgbkZ2LkuhLU6YIXg1AZTkUjIBhGFcc/HEIOS9EYWFbW0J4FQC1YmL/IrIy4iNAkdIfslv1It
sIVRJLI8iDZcoFWtjLYR6DCxStuzXQ8ey+P/fmIXrt+wBjdsXNNxa/pAsQvrx8dwxcVbcejEcVgE
mMoXMU8aeLYSwiJE/KmRJ9JRwgl4wvFNoF1AqavGz+IjBzhVrArt6YgHQn1XC0BhQyV5LbD+YQRe
Dq899xjG7v5lNBbmUV+YR1haAAhBJp9HJp+HO7oBsF1ZFIstJ9U2ZeCkVoz4jWlIAADEccBPnQCO
vQZarwkfe74A5LoQrd2ijbyktRULp3gIuDFWgsEJ59LVRkFzBRB7FrAtQ+LKtw+dozcjTeaBUNDw
DPF2Y89xUJehZC1hDWmvmIhCMqlKUNFgisfS22y0BvcEFGYSjsxvsICfTk5juLcHW0dWoDefSa14
QTs2b8L4yAj+8399ANNuBqfcPkxaWeQymQTTCRin9YOBBolmyNgAJx2ksGozB5iJ/zgERDCvQa/i
OIWFiPXLIrBcATzfBavYB5sDBTeDfE8vWBRqQQFCgJ5e8EIBcOw2NW3KQmHfKAmZEijqIcsG6jXg
1EmgWQPxsrAWZ0EJELgZBGNrhSsQ6LB81VSSuArjB0OXgngeYMVhfkKVJGsv8lypcxiXJ5OLQQnA
4kHQRkCaCROiCbH6WmKFKcggeTt1EbAtG9VWgMmFMvoKqTdASsOs4Lkg3V3oyudRZQz1RgNO3kNy
WtFhxtvbZEqPuE9UuLCUSrNsg/WNAg1pnMS2RP9OIL0PUrPwbA60XhGyi1JQHkGNKyEE3PXAbAec
SHWeaitPVMpT9ab7zOOxVViTis/UbxlCJNUvo7ZEn0Vn0LZYzdRVNbmKoU3NjHMnO9kv4XRnUQTQ
ECDi7CduJPpSS/I5EZJDOrjkWAs3mAkPCIkbq9d/G7OT+H7E0juby2GyXMOj+w/jsvHhNj4LwhCu
ZcHJ5zCxajVemV1EaWEejpsFMh4UpwgD13w4NdlmWyA1JQF4aR68NA+UF6VjPALyXbDWX2yo0VQZ
6iuRyMi8RbmSJOPwnn7QxTkRenUzAFEVC6zJvIxIS6QUYB22D3E1ftxoglpAoi4lBfXPCl5JDwmn
FojflHUo538H80tVobVLB7lPIBeEdHVqKBnP+/mbYVLSKsDOGQMDQKJQT2C9UsbiK8/Dcj1YXgZe
oRtuV1Fk/6g/5dZS4sRcZGqstMQjHZg3fk4NKiEUbiaDuYaP2XIVj+47hEaljMBvyR23AWqNJqJI
nLn1+smTmKv5YF0OeOCL+T9dznmC6cyLRKQCVhbAX38V/MQxoNmIJ9O2wYdXAa4L4nqxoWYwZyyA
2icegGYOXugGWCikuWWJUeKI8baS9B00VaL49JpJ8m3c15hzTzMwHcrSt6vVaOLbxC/Q/nrNCEBs
0/Al23w2ZJtWoYo66aQMxtCq11HauxtOrgA7mwcfHIY1vhrI5mDJUKnOtwU0UwKIrbKEuoC+T9Ub
d9qQtHKVBhzwI47HDhzG7BvHUa+UUatWUK01UGk0Ech4/qFKDaS7H3b3UDxbXNUr+7fkMKQUvmWD
V8vA3DRQXQScTJwt1qyD1ysgtAieyQKRMugMSGFOZkLtSlyrfnNcwcCWfIbH/CWkrTlGqbGT3MQT
nEk6rMN2iWhK3cS/qfFIYHkVPCEG5jWwPzGfe5PJ1uoIHOAMnHHwiIIBAhZIpmQhQ1CvI6hVUDsx
Cdt1YbkuMv2DcHJ5ZAeHYecLcLp6xG4GaoEQS0o7xTw05ZwXTEr1d574RgiBm/HgeC72Tp3CzGsH
4deqaFUrIOAiSJHxUCh2werPgOYLsLr7xRYRCmOhcM0sAoqpSUlLwljNkUYNCAKQbBe0ZQ2AOC5o
swZkMlraEcU4xGAeObkipKzaor7I6mwXLFJWPonhJBe5qToQAIBQkoCbhBKhFYmR8CLLJxwAJTEO
Jmp0DS0H1Ra+tGAx6jcZXHWT6++xR0cP4JtItsJAaoAIgCgKQTkDoRGilmhgZPmgloUoDMEyIQJf
5NEGvg/LcdCYmYZl2/C6umFnssgPDMLNdyHTLxzORO5z0r5WPUhKIKqdBXKwoHY2CCYu9PXD2Xop
eBiChSGoReB4GYSEIqAW7HIkws+ZjMiEAgyjIg54xlLBAGlSl2oJqBmFis19LBaPnIvztrS643JB
cIPB5H+195Sn7XHZPybyCTgn4My4w0jm0bKRM+mqU+0goCQlObULDIbhxjVGVonZqk2iGZIDmfwz
3QOKGXV+hRobpQXks0riy1yUtGK40GQnes04OBErlTEOECZzTpjYd0UpoiBA5DdBLZEoHLaysBxH
RKRcFza14LkuWo06SpUKGkePyvQ5gloQoqd/AMXubnT19KCruweW7cCVmwNDxlK4i+iBczM5eJk8
1IRTy4JrO6hEQMgATuoiw0xuSTFDo0SrzdiHyoWIhIn1zMkX7jsLsBgEQBZEqQWu86vMJCHE6lIW
K6CSqa8lA8gFyhu1+F6D6QWTtI9FoiQDGwrtwUHMDBizzgQsU2hJqR5DS2hFYTK0qkyNGQHAkOx4
LMPPA6oum1IuL7VyuRZ4Gt9CZDmBhALfSexL5NtVqN0ScoWFCABQJwNic3gOk2zGQWUic61cQrNe
Q2VhAZbtIJPLw3Vd5Lq6YNk2LDvTdmSRmXhDILKmqNzmEinntvZCdOoTSU102pRIkWFlQ+N1yL1x
qpjU0zxeAHFOgnxQSTztcqJAs27gxZhpdUZbLFdh6ghVFzcXjbnwNBZVkwhD63Tua+J3bnwwoU0C
1xp91nWJZ95sZGswrWRVDikN5IRF4lJEhaoWh1tE2nnMORNbnMFBAxdRsRscROwkJQSOMSAZwhFF
EjezCM1qBSAEjWpFBBROWbAsG9lCAa7nIV8ows148DwPrueJvWlEBCkItWBZFJxHCAmLNzAKMaJV
oBmRjA0IcwjMCZHSTfplCSUg3DIkLQEokwk1atRU4dwsEfGvadws/6UUmD8lEnPARb6soWYVpl2K
AUx2VnBEQ3TDf8rj0Ug+2KnE0yazqDLNsuLPuh0adpyxwnOmpKTtWBEH5wxgFJwwUAAsUonUFJHc
XUupBc4YquUyXGcGmWwBVi4HksuBQIaFKeB5NmxbMpy0vFkkkqxbrabI+C9HaNkW/FpN5PRaFAwU
mVxOMnAGPf0DcJ2MEIIWleFlgCvXmx5AFn+WeanEbwF+Q+SoRpFw8bEIJAyENc8YUJ4XCo8SgCt3
HgFYBGY7wrfKjeTAtLQypHrbxPktgNWB2SljcakFZuDLFMsSoyStySU+iCO5JHFjJyxt3qaUe/pb
vA554rq2ORNtSWutFCS6wLTkuQft1XJD08TqS2Tmi4RfRASNWgURAaxCUaQl5gvSyLIACEMgiiIw
zuO0RteDRSmKff1y6IQR4tcbqJcXUa/XUK41kS8UUOgqIl8sIl/sFgvCEhY6V0YctcCpBQnGpZDk
wjkfBkDgg1QWgfKCZN6WcK6zCCTwBWMHgYybp4xGyEiV48rFYfxmOjS1GiVa6MUQkIh2NOtAvSr2
aylXoxprPb7JEGnandYZ5EIbRmmFstREt+UEpO/tIGR1nemFyttAU7Kxnco5S0oyrcbdNJ4ky9Ju
LxAit5Rb2jcr3FsG2A8jhJUKKgf3omYfhNfdAyebh53NIzMyClLsFc9atmg9IdKAIgjCAATiHWPE
spHpzSLX1w9KCRzbRqPeAGdiR+m+53eh1WoitD0ETgaWVxBBgHoFVhTCCX2xB8yXjBj6MTMQIlSo
2W6NXy0gs/QZJsT1RFBAZUqR9IyaMx5LLQ1xbRs4eRR47RWxsZBJ/MU4QOU9jIlFxnl79liiMUmN
aIL2ZCvQkVk4JJLoELwAELsr1YNLBWu0Ow8GE4sKCT/zy//OlhL5tOaxQXo3ri0YjKoECFtuwdFM
K36jjjzRxZJuIipUdthogAU+gnoZQWUB2d4+2Lk8rGwebt+g3IumyjcNizhCxxkBYxx2JiOS1SlF
sX9InA4YBmBhiFa9ipbnYZE3UG/4WKyK1/8EYYgoYiIQIhmTpiVjPAjtGFCNv2SkaHgM3MvG7ioG
uRtX3qhj/MazhMTZcT/+Z/BaBbxWBrEcAb2UoaTjFML4pZrTZJawofJN1tBXtbsqXiWxUyCNR41m
cg5ROYf+CrmwAXCF6bmweTjlcX8RIzC5lSE5bm8CpSRtnF9AJNNRWwQRqLTmqeOJjY8qEia3GVN1
dpYlGJqq7cdSmikhFzRbYBEDbTZhcYYqLLQcF45to7enF47jws2od2/FFjylVIcdwDkYZ2gFLRAQ
ENuB192LLKUYWLUalm3DoRYC30e9VkXg+5ieOolKpYJKuSJeusGl+4vIrDJIZjWteKmSWSYL1t0H
1t2PaHStwMByvKD8mMrLYPp7AcCxgMAH9r8CfuSAiLRRAli2yHHVdSHOHosigEUJ74CKOCrWo4To
akEgzhrQ6jp1Eo/2gJAk33IJ9fTpO0zfLoZCGIOUWMIdCi6CFkQBRgP7qIacznK8QExsq4rifFrF
jMbhHLaUhBaF7bpwMhn5XRzWoU50YQDCIIgNGEL1AtAH1bV1hiMKIrAowmKpBNuyxTYcy0Yun4dt
WeJwCNpBN8UgUEMaLhN+Iinh3EwWjuthxQhFrx8gCHx9nqzIYWihWq2JgyhsR2y59jJi+7XjCozs
ZcG9LJiXicVKyhhRfUk0jBBgZgooL4BPHQcaNclY8h7DRZZ43nAttZdtVNHps0YrCkiTeCGabrT0
VJh1G2UR1VbtuzVhkCFZFVR5k6SrSbbuGDGSv+UJI8SykO0qIjcwJM48cFw4uTzsbE4wo+0IKSwj
XhwErFUHwgjcbwFRiCiM3+pHaHyeAiFUbIhkHGHog3Gg1fRBCJEnnIhXJjm2OOo9l88hm83Bsm3Y
6t1TiFWcStjhnINHDBEggxIZUEKR7+4GpQSUUITyQLQw8BEGAfaeWkCZcZRhg9i2yLiyLJ3lD2rH
E6S2tRuDKELEMQMK7cpjrMoBFIpi2/3CKcD3xd6pRGjWjFRxYUQCCQiT5G8D3hiROJGeHvvZY2Zq
F3UmijHLSa6P04nOZP3iM0vdZUjgNGw6RxI7F5SkNY8+kge55Xv70b1th5bAcBxxBKSUvNSyxaRR
sQXcBcSAh75IJglaQtVFIRCEwqqVC8JxbBAWgrFIQkzBdKHvgxOg1WzqU7Ndz0M2k9FHv+e7iigU
umDLIAMl8VGYCYnORZRP4GMCTjhsx4WbycC2LDiWhTdyfai3IkR+GNsa5kQYaYEcMPIJEGPjlCRU
Eor3D4H0DQDD4wImzE+Dz04Dc1Pg87P6dJoEE7IInLN4t6tZuUk8dVF/bNMB7c+nJfnpaCkGS/im
JfZu89MaBZDz4lVN7d4Dg3kJpeLwi6ERHfPn3DhEl3FQMJFZRwCAghFxYB08D4RayFAKhD54FIDU
6ggaVY2hhNQVE6TBv6F3CSHgjCNiEephHZVSCY7rihcC+yEyGXE+qq3ajNTWlzRJyMDBwRgHIwwR
EbkWPIqAiMXaeylSNpxRZNpjkKxTcAfJZMGzOZCBYSDzGsAjsJkpgMTngJllCDzZqdSkek6yjQFL
lmGxa95aaszMEGJ6baQhSXtDkeBevqwmLYts3TgDz1Lz3APHBYkiYclaVGxwlIMswroK9CuGEz2g
XCSUB+Ag1AaxHCBbRMa2oU5jKboOajOz4JWaiJRJg8uypKonpiFCYFs2OOPwWz6mpk7ixBvHYTsO
bMfGwMAgunt6MDQ8DC/jwrLt+CA0jdfjP7ELREAixriePFMA6QldCj9qSqrEpMqNPxAArFkHWTkB
OrYW0ew0sLgQ36juVcGFtP4mQFtmWltFS1s8ul9nlLByFMz1gfahiG8TDSXKvki0aLnifPlkE82w
hiFmWfp0REvuhFW7VwUujc87EBpSMLBOm1DWquHvhWSUiMvDPSjFIqfID67Axv5BhGGEWrWKZqOO
SrmMMAwQRUxHxKiRr6uGkBIId1cY4vjRozh+7CgO7NsH13UxODQkmHjliDh3zHX1G9KhIIo8t4Ep
x77RH7MqTpUxg9gtJ3mDmPahwg5GcEH/zs1j5gUMousvQbjzYbn5TwZfAH1sps6kImmG06oo6X2Q
DSbxFZgcxyE3IaYOMxTbeQz20r7rzlJdew8kPNKnC2mhyo27mfHDhWHgpJ/WsPLjY5HEyUmq/UZw
SHy3bFgkTkYR52/Fq57KJBdIvEmJsSKlNLEsG47jolDsEplkYYQwCFAuLaIpXw9Ur1QRsvhFIcSy
4o2SHLrdke+j3mrhcLkMzjm8TAaZbBaj4xPo7u1BsbcXxa5u2I4NSxqDURCI1EBuqFhozR67oiA/
SyOLg8SZVZCzzkRn1cRRg0EIEccoERYBIQddMQIehMaeaFmPsgFUFpoSuVovcw2d9NzpBsO4N54n
fV4soMc/FpU8cbv6WUM27TmQN2k/rXxG1au263TEARwX6ujPJc6LPfYAAB7gSURBVEI/RmKvznGV
v0imSxs8CiLYxq6zGPsY96ny1fNGNEXsABYTYts2Cl1FZHN5FKMIrd4mGvUagkBstWk2m/EQEAKq
GQ56gRAi37rt+5idOYVyuQR3ago9PT3o7e9HV1dRvG8BEP1UErWTHaMnn+s+KTtM1aekaUJQcSmj
tFQ0ClanfEvHqKjaxLfcqNO4Zn4kMZOZ495JpiXxfpwQbv6Z1ZpASUtyA+4obZKgtNsO5IJJWEVL
xys5JByQkS/E+FV8J/EKh4mHjXfN6mK4Lk/rOhIzrSpLcTmlBMSypT9YSEPOGfxWC0HgIwgCNGp1
eWS6jyAQvlYexa+DV4cB8yiCzyLMzTRFdhnnyOayKHb3oFAooNDVhWpIEILCZgDhEcCkGuXG66Qs
G9yyEPWvlJOlWCM+fNkcuuQVoq/G7kwi9pi5rnzNEtMCkrdJKyGl0mckJuuMZWXcMlUTEO8IMRun
vidXabucJB0/pu8ngAxLy/Zr6a4kPEkogyWg9xkpce4B5xxEZbdzeQym7wufqGxEvLVCMiohUC/k
iK/HZ3sJDCfVqYm/RC/i5xVsIIDahkx0uyIQy0IunwehXboNYRghCHyEvo9qtYLA98V7XH0fdfki
5ygMBH60LSF9KUWr2cJMcwqz02L0SC4HDsCRg024mnrVTCJ2z1ILQcQQrBiD6ZfV6tbkVoMxNBuZ
E84h9qIZL+EgRDqOmEpNTAeUU0xHCAiJmUJjWp68LZ5ijrQ/mXPI9MjOJJcaCOHJdUTalyUAfeav
EhD6BS9aaJ0/2YJRjUL1n/getpqSGaUuUrLVNODMjij4oFU/kYaXzMeVndLGjxwULX2l2orBs/oc
70rlEBg2k/OQo3kQSjFERtFqNjE/N4t6rYqTk5MIfB9+JKJtttIQhMXqXJVXq2iNAcmguk5VH+eg
nMGaeQP+yomEBDEEqf6iBQoxb4CEIPJHWU+8dUde53JzaVp5JxilAwOY7ViKP3j7bzpjrVN5utwO
hXZwramsPyiDz+CpC5U4o7fbqPcPMJlmSGU2VX1xAX3VCrjrgjuejD3HpwjCZF5CxDzA/E7jvhMC
1/PizZIy5MoieUhFYpSME2m0FCbGrwQ8isAYASgHt8QbdUbHJ0AtG5fsuBJ+o4H5UzOoVis4+vpB
tJpNNJtNobZkMERJUb1wxMhLKS+DChoOWaCLcyBBEDM3AM5SijvJsUky5o0Q8VIVcBhMCr1HLMlg
JtOQZDVm2YYwkGhL4m3jceWIUf207KSwUnvPjH4kEw5J8lZpCxDOwYJAbItnkRy/lHblqX/PgeS5
BzKFTB1AHASIpGSLwgClPS8iM74G3thqEBbBkIcJBk74a3UjuZZa6jwnwgEwLk7rth1QmcAdSgZW
m+dUlMzEzgkJnDgMQrjcGGcAC9GsR6CEYGB4GIN0BBdtuwyRDN/OzZzC4f37UFpcQGlhQTxJKWzb
0a+W4gYTE6jdCgQ0DEEadbGIPQ+UpWeBxEjAUKkJgauYRb2qgTGRJEOteMw64Np4Y6M09lQ5Rrm6
LnMWtEWooF/cYg4u3snATZ82kkwlo3NilAkAFmsQZacELSBoIWqJdz9wI2CjX9EkuAvnS7boOBFZ
PIppI5HFTwCErRYq01NghAJhgPz6LfqUveSbvKnxB51wk2Zq7d+lNMay0mea8cT5W5wL+BD5gRxs
bsAOxM8jLgsqF0EuEJr4Lo6ZJ4TA9lyMrl6D8bVr9bHx5YUFVEuLOP76QSzMzaJaKoncA0vFXgwo
EclkclsqKSmFSEcLWS5kA0pwBZ2goI78n0xzJGIChEGjPCskfXibOu/AOEMMXEu8hANELSCuFo7U
LCwCvAyY6yEaXCnYUTGz8VYf8YjYiycYWzCp6JGYE27ZsGp12HOngICgGtZBwhYQhjL/mQn3JldZ
EecHE2zVYeFzVNhDqCfGIrBQnBvrV0oAAdz+IXg9fSDSRRQfg4QkUwGaafTYm9egnjMlqRgQSi1x
LKfc0pIMaRoYWk0CTKnSCWPHi4USIt6LAKoNBOq4sAtF5EYnEHX3ozo9LXYV1KpQ+FQlfOs9XIY1
ozF/mtKXuG5uwm4wRZ/elp7Cf+Zx853Kjf+NxzIBG4iqS6RD8mwevKcfvLtfNIoxcxT1mPIlrphw
iBAC1qwhWJiCHVH0RQU0ogh1pk5oN4MN508CHnAuVCATjWLylZCcM4StBizbBgsD+JUSCKHoWrUO
TqEAu9AFkslL7U8T2DYtYdU97dKZJKJrIstL5uhSw3qWAF+5g/RBFWqhSKlm6WuxlIvCCDXOEIIj
4kCTcTQYR8jF9vOAUkQ0C39gFGEfB+saBI4fAqlVBIMy6GPradTpTC0TawqRprfZqAWn0QaX/xdC
goeBxOYcegOlwrQxX6T+5ZoJzRNr0g8oXtX6vlAExtaBOw6inn6gUATPF7WKj9mRpzg2iWcT/xIK
2mogmjuJ8Mg+hEEdng94QRY9oYXjbDHpBrsAzKtdXgK0MxHRkXu4OBMhV59asEIHLHRRPX4Efr2M
fLEfuWI/wkGxE8Ht6RPvieVKfXdi3KTxljbizJdFK8xEZTmWZcl5km4UQDAvZ2CMoxZxhATwIyaP
wRfoyWeCURsMCDlHyDiaHGhFTLz0g3FwxwUhgKWmLFsQWFsPtp59aTSaZMbQ2okv8RmAwH2+LzAg
Vwo37mPCNEiUQDpe7dQe/ZlzoH8I6B0Etx0Q1439wQqXop2pTIna3i8CUIJo908RTB5CMDuFVmsO
VquKfECRiwhWRD2oszoqPAB7syJi6uRE1TAWiXdwKWwZ2TYatRKsFoO90ABvleENDsHu7hZva9Rn
WxmMmRgCI5igjbfk/TH2MrEfZKCBaImtDKuIhagwjibjWGQELRA0OEcgGZSp51T9nIt3KUCc/dvx
jAvFOOowZzmp2mAx+2RKJSL9slxp65ROV985hESVr69X0jpWpoqRjFYRIrlQScNOsES1Ry0AQ1u5
Xly3XHzc0EgJUuohTcZt6qi04LWXEVQWEQRNhEETraiGJmthnrWwjW3EHCOoo4IIJsY5d0oGF+RH
xuQ7sThD6Ivf2P/b3pn9SJLcdfwTGZl1dlX13T19zvTOzuzttb0+AbOy1jIgJLAQsgQS4g3xxL/A
v4F48ht+AIMxwhbwYmMjWbZsr3d2dnemZ3Z6jr6768ysPCKCh8jMyurp7un1k0fqn9RHZWVkZkR8
8xe/O+KYWEqUSvhUsoLnlXG9MoPIR2w/wjzukTQn8F6+jqhUENXaiIPmCtO4MpWbnDL52BkVZ87a
OIW2BUEYIRxq9TrtgU83jPnhwEE6AlemYY/GatgyDZs8OSfZfJ/khDnP0RqT2DywQli1NZ5n10h/
2Zdw1DpjkgLzdKarESNAxSEqGOQ4zl6q3MOWKwMmvf64S92kXxWeJr9ONpsiN1+JbDll9Ls4IOZp
oKYdHCtyJ0BLF0clOEmM971/pbETIEMXGU7hBBITtawSFicEesCamWdVz7BvjviIByfv/InpRN2D
HLYYnZmnEmI0ZVWm7EiumQV+rn9p63NJSTmqIb0S5aSOe+ghn9xicnKRmZuvIRfmcCdaI2nJSQvT
kfNbBFmhaDEqnJZZFjLum1khHGcE+lTedaSkVC5TDuIsl3JsSjKj/Vg1lhwlJ4XF9JxUESWvtZUq
WwLLoWQheo3UY5c9azqxmTfrqXoEhfuboY8JfFs21CuhM49V9jYVufKYpSC9d1FYzoBlDAZNvqdE
dp2cKZ/se0bFFyK9v7EcP18NpWv3yjjYRt+9RXL3Fv2DHV7vL7ITbfMw3KY/3IUoSm21CZgEDLRo
0GKCT3OTHQ7Z4fA3Vs5OjT3INVdjMELxQrKOFgYlDL80tyjrCkIm4Dgkica4HjoOMa7DV6pf5Hg4
4HH3f9GeYGp9g/rCMvXFZeRE0xbHyJb+LHkx46ap3AoFUOcihEm5cPatfb5SuUy9XMXpt/MKW3ag
ySSadF6L61ph7igyoHGFyi7belxz1wYhZP5MmY03C4YZmXTG07hHQsKo78n2VpqOX+CNJ8WJ4kNn
EkbWvyJlL6vAAjZNdLSnWcfFU6uLScdFjJrbs9OXVKY7yjvg+APYfB/9ZIvhvduYOEan++L+eHCf
q/Esb8XXuB0G7MbbqS3ewWhbg6JjenTosc0eV1lig2Xu8xj9GwD3zICZbJmeYxLfBMQoYhKEMmiR
7RubsjZtmBQNWqrFY/GYQMWEDgjl4h/so+OEqNelPrdIdX4B6ZWQad2D3OyVjXuuhI0Am4E3m50c
5KNWJ4B42sQLRqb5p74al0sz019mFM+VMTu7QqY7rRet9CcpB9iJYxmoHBd1uJdWkxRPNyQbl7SX
J0SZjGuOy8+j78bvW3hD0/7Z7mbHC4WbjcHRGhFHmE4fEQ1xul2EPyB58jFxZ99u2BxH6DjChENk
pOgmxzyIfVqqTmyaDHVAYILxlxWDxnBElwY1lphjQMCQiIDwlEE8nU4FbY0KFVOmShmDoWP6KKFI
SJBGYnSMSlPDK4mgKWvUYkEk+zwKHyNciTus4nolVDBksLuLLJWYmJ1nde01VKMKzRrVmVmrpct0
c5GiFeGEeWwUv1D4cRyEESOQFpfUM4B78pgpLrGF5dHaqhWZQjZaIiWUy4wrRQX5cgwtYgwo2V8T
RaCHRHdu5Q6MPBds7HFPVAHPu2lXgvwZRk9Q6J4Y56oj22Buj7fbxBqM30cMfZvDFkW2CvowQHeO
IPBRx4fUQ4HXH6CSHuGwC3GEiSNUECDDIT3Vo5PELCQtltUMXdOjaxw6pp+xmfzROvTRaCaoscAM
ASFDQvY4uhDfHQNthTIVSlxjKb/RoWkzx+ToJGUHuKRLeHi0dAPpuAySiI7TYyou29TyyMWRAjcU
CNfgeAkLPsRHd9CNMqpRwlxZxG02qCxfwZuoj8IanUJmRIHTjv+MLAJnVWEx+dL3dAnK0+I/8lF1
S5BWgzRKWVtrOtHOlTWbVTu2OTEjMbRwmfEj6TEpoX2AONhF+gOS84JIChVwzBn9GFshCjJP5oYW
mBEwkwQnGFhwDvo2hiKOaPgGf3CAE8XIKIFO2ypSYQiJRkdDasqjEXrIZIqdKEAlBqUMRAIiz0YH
ao1SERXtUWOGZTNL3wwYEhESF7WKbHaoUaHFBC6SSRp8xFbh29PpBGhLtJhglQX6BPTxWWKOMV+J
ESijaJg6DWo0aXBgOihjqItpBBK0QOCm4CuD60DisGHm+Uju4KgYOXAJ2j3c+Rnc5gReYwKR1uDK
xISCnDD+OTuWDYPI1ZdR2zGOVZzZjAMVUrQLlzVg99xy7DZIJlXGsmJ1NKfT4nOAUadzu0z+EE+h
CqSHEwQ4h7t4pQpx6I9Gt8jR8+fOrnFCiC0qVylIRXG80r/CaIRQ4Pft/mFH+xAMEAd7EIaY4ZBJ
NUukDihpiaccZCwQSuJEJVAaJwStElqRy2zSQMYDYhUSqRAnsWOTxx8bTWJiJpigaeqss8ghHdr0
kch8LLLeJCgqlKhSZopmDtrzKAftEnOUcDmgzXf54dMLaWHcb5qr9PHZw+HX+i5CC7IMB6FtHIGM
7V5SUax51b3OK/I6/xT+G05sC3tI16NSb+D6D6kcbOKWysy9/BoTV5aZXNvA9WzJozFuCyOxIFWA
UMYqR5mEVjCWi/zjSNwX6Rrs5CpbUctKr5HEyLUXQMXo7YdQquJMzSCmZnFWrmGicCSLazOWgJlX
ys6mJpOP01gG7/5tkif3CHfu8WLzBTaDuxhlMEozTNTI4J/VS8j6pDW6IBYhbcZDpjTLOEIc7oDf
w/g9KkcdomGXqH0AYYROwtSMl8YDRDFGK7ROcOI2a8kMj/QOd9U2MraikU7i9NwobWtrWfxJ8jab
ZptN/TED5Y+n2RRWDgNssEyLCY7p8jHbT+Gq+LmExzt8gSfs8YQ9jumfCloxz7RZZJp92uxy9Eyv
xRd4jR4++xyzzzGZ3JarRQXjPwK+Id9hUz5m03lM7BlKpaotxuG6eNWqNZfVJ3BLZZrlBpOVKerr
qyQLDVY+9Xm7uXQa3Z9FYGX38KSLrzS+0nz38TEOVoEcH7aM4xVMRibTpEdZuONLbCovpiae7GUw
GFtR8QRI88i14nRk3C8LgwwGiH6H5L/+hSQJieMhb/jL3I03UUahTIJwJUZKEg0qSah846+Rc1eQ
U7OYJLb7fQUDzNBHHO9jOocQ+JhggG4foaPQgkwpmnGZhqnha58dfYATJ6kzI7YZHtqWNTVKEyYB
v6te59Acc6iP2Yv3rGk4jdAyysr2NgJPI3TMDXOVG2adH+gfEpnU7Z8L0eNLe4sJNlhmhhb/zU/P
xRfAMvMsMUfAkD2O2eNo7HtxgzXzLJbsINhgmQ2WucU9HrN/ztkWxC+Ja7wkrvF95//QwtYYkK7d
3dxWr3Hw0rpgTqUMruRP619jq7TPk3oH6XqUGw1aS6s0l1a48ubn8EoVMhAKR+JKh0hpQq35562j
cStDwcOUrdiZQJHncWXnFK0XjMZdFNoWWUO2MUiRw45Rxl2FAK+E6BxhfvUT9L0PiP0BOhqioiE3
gjm6cYcefXqmb9PzpS3wJ4Sg+vm30YD2ezDoMdVWhCIhJCEkGm3tpFNAqThNilT4SY8behWZwKba
sjbn1GFiTAbEVNlUmlj7vGFu8Ia5wbfVf6aRdun1VRoXm8V+oHCNxDUO3zBf5dviB2Tx2GdRhRJl
SnyZN7jLI+7y8Fy5FWCDJZpM0KHPFjuolKFK4O/PMzc4OLzKC0gc2vQ4pENIfOb5IJgXUzRFnTY9
dsVRtgiTa9OGVHa18vE0LVbNPD3hc6TbBIT5zjpGa5JwSDQY5NYDr1q1ZZnsFXGF4L22PxIhC1Aa
eZty41F6/KRpadRqTII8cb3cIJC3OQW2mUPEkYjH9zE7W6iHm+h+B+X76DCEaEg9lFRih6EKGKi+
Dd/Lltp0oxDda6N7XbTfpxwavERQTzza8THEMTqKc9OTiUK7lMcxJg7xYkM9cplMquwne5gktgqW
SizAUzndJDYUUhrBUA9pqRrGJPh6ALmsyuhvrmYaPCQLYgaAAcE5uMiEMZPKtuAzPPd8gIiEOhUW
mOGYXj43p8JdIpE4rLNIlTL7tDmgTUxy7k1usk5JeBzTY48jIpGQeYusA8Fq/giB4zrU5QTr3ioz
copflDcRrkzFBo9KbQJZsjXEyvUJptY3mJiapzE9z9TSKvXlRTzXxXNdvnN3m77S+MqkpTzTwc31
pPElXRTclic5bXoS2cHcxASpcjO6rkjNXqaoLIYB5nAH0++gbv8S3WsTH+5iooik37XgiSNmoiqv
JOt8zCPum0c4wu4AZMtOOXaXnqyWrxCUHZdVFlkxi/yP+TGOknl8hEmrnGecF53ganhRr3DNrPB9
/SOMsTIsJlUws36mpfIdY93mX9ZvckSbB+YJPfyCsyn/lbct4fEmNwkYEhByl4fn4sPBYZZJpmmi
0dxJzz+L6zo4zDHFDC36DOgwwN1geewkg6FKmRoValQo4XGfJ9SosMrCmQ+TtVlhgX1zTEDICvOj
dXlsnbZyZ0V7zIlZSkmZtnPEXFzFcSRuWLYyr+/geA6OB+5Ao/uPoDTAKbc5XNqht7FEZXqK6vQk
rzerbAUx9/2YxJDWds2wds4ydIqmOQbiUyZqRJlFw5YuJQyRh7s4nQ7y4ZY1yh91LOfzXUykMUEV
Eg+SEpXEYV1NoxgQ0UOSOhocmZcDzdKBQKBEzAyCeePygmkR6WQkimg12lIpC3oymrLRhKbHF82L
tOnS1X2rhBaVpsx5ktLADFhgmhY1djhAZZaWM4bymC4LTPMia7SY4ID2aIPvM2iCGtM0maZJQEhA
RESMc0abIWFqyTLjoLVea8M0TZrUaVLn12yyzpWxRxi3Ptp207SYZZJ9jmlQw8PFSZORxvzvWqS1
eQ2TNJgUTQIiYhExayatmQwXEonUHk7sWlenLqONx1w0wVzY4oNgm87ePtWVRaoriyy/9Qa+Mjwa
KiKlT+36adA1Y/+P9+wsqBe7Y4SD0BoR+DidNu4H7+F2B9SOA0pKUgnqiDhBBC4kMSKsIbK9HhLN
nG4QME1MhIebixYIRuBNEywTFDPUqQIvmVV6up8v36MwQ8gcBzZ00xCagE9zg20O2DOHSFNIZMzb
jA6FRMzQopTeLSYeF63GRkIQkTBJgwmqfJaX+ICP85X6rLHTaCJiPscrtOlzTI8+Pm4qOoyuPpqb
mASJHBcP6lSpU+Ul1nnADg/YPmPaxmmDZWpU2OGQA9rnn1xA/jfF17klNnnPuWuPyVQWdNPADNdD
pvuVqZLDK5WXqHhVym6VW9UnVKqTVmlxPYxXYWppBfnKZ+hMLTIo121KidZP31+n4kEqIY0BV4g8
NDNb7sesA9LFMQrRbUOvjX64Sbz5HhOxRz1y6UbH+MmAvm+1eTUcYJIYPQwgSewmISYNxlEJf6f/
ip/yLj/lXatoZHEZhfuPXKySFjWa1HjTvMq/mx/kfaBY2ecECDHwZ+ZrPGKX99mkZwbPnFOJw2d4
mTe5wT/ynWeen9F1VlhghofsssXOhdrcYI0XWeMnvMsx3Ween4N2nSssMktEzC/44MIP+ee8w2P2
eZ97tOld4IaCz/EKb/EK3+J7JEIRiySVGkYuXCvzyrxmrvQkf+v9BT+XH/Iz+SHlygROpYzwSlYG
rNTA9RCVqnUNr17HzMxhrt5ENKZRRQfDqXGKIzKAoxXO0IcoxBzugN+3m9Ud7KGPrFKj4xgdRURR
n+V4mqV4igfhx/SSLr3wCKMS9DC0yk4cWXNUHNvl3GiMiflL/pgPuM9t7uMT2BEaq0MgTvyvMCj+
hm/yD+bbkBr6xr1zJxBrjW+8wQ0whl/x0TPnCazIV6XMF3mdOzzkzgUM/wCv8QIuEhfJz7h9oTYA
b/NZtjngkM65zE8A5g/5Mm163OHhszllSjdZ5wbrvM89julydIE3BODrfIn91Pb2iL3RU6T/jLIb
QAi7DZQWij+Qb3PbfUDfCek7QzyvjCiV0xBJF1Gu2P8rNYTroaRgVs5Qq7YYeAp/pgnlCpTKiHI1
VW7S26q0dtYwgDii5UMc+fhBm0RFqGiY2yutaclySaNidBgSRQOuqUWuqkVuRx/SV316cQeTgdWk
ipLO4hlIgaX5ffMWB6LNAcfscghPCTYnP1sQ/h6f4R7b9OjTzZjFmUlkljZYZpZJOvT58BPEtf4R
v0OXAXfYYveEzfQseoEVNlhmjyN2OWKHwwu1+wqfJiRiSMSvuHPqOe6rbPCYfXr4FzJBAFxliRIe
h3Q4pnvhCJ1FZhAIQmK6nLFEZQZ/AzjGvrGmRIMqHdEm1gbjGFQqZwmlEDKxOfzSRWiDcD0iF0py
EqFDuu4xmCCvnSW8UmrBABA2G0FrdBKiVcL1aJWjJKIb91A6GYE21dKLKdI22ikAFSGVsoEkOkIn
UcEwr8e9RmQdhDa9NHikyu7pA3Lq0QOOucYSW2yPQHsOCQQd+rnClAVjn28ptXSHh0zRoEmdfdoX
Sps5pss9YJUFImI69C+EkwfsMEGVCWosM0+PwVNYcQVwl4fEJM80ZwFcZ5UZWhzRZZuDC3FYDxcX
l9e5zl0eckR3/EEKGvyYsm4UV8Q861zhgX5MR3dwhN3d3CSJ3fcr33UnsKKEVwYpmfamqckhA7dP
x9mmIitjlWOKadykjobEJCijWNUrDEwbXz/OC1CYzNCexJgkGYE4iVEqwNFTlHWMTgZo46P10AJU
aWxQfQbYAmgNPGGPOTPFCvNs8oiLwQgesM1X+TwJEU/YJWFUGOMsOqZHhwELzDDHFAOGz7StAtxh
ixUWWGOBeab5Ce8WZ+tUOkpX3xIeVSosMssT9q1T5Bn9mkwDxmeZZJIGuyd0JfcW9y40TFM0maLJ
IjPcYYsBAf0LdBjgCrOsssA+x8+041myTzRvZpgzk8zQ4j/Ej+w8C40Rxm5Wp0Y1cJ00YBl3CELw
WfdT7DsdtuQTED6xHKS2YgeTZ0Vk90vrxRqDZwTKHBKZXYZ6F1c7VhbNtHSl821ITfrZ6CGuiagY
jVFDDCEY64AxmYKUx+QWbZ7QY8AaC6yxeKGxzMhnSJsuAsEMrWcu25lh/yG7tOnxJd7gI7a4w1YK
+PNphwMa1LjGEuss0qZ/IR3mNveZZ4pl5pljkne5Q4I6955terTpMSBgmibLzDNDKw+mcS/2XlvQ
brDMfiqjfBKaZZKXuMq3+N4najfPNAC7HBKZmBxleSypAWE1bluV3AGTYIRmWU1x6BwycDoIYVAy
HnHXonYOKdMzuMalQomBbhPRx+gApR1GlVksxxR5nK3NBEbHCDQyNdobrKs0f9b0Hhl3LZJC4+HR
pP6JxgYsVxoS0mTiwnMyICBgyHVWOaLLPR5dCLQJih0OCYlYYxHDzoVAC7DPMUvM8TJX+YgHDIku
dM8D2iQobrLGGgvcSV2/Z3rELumSflvp7BqPl3RJv6V0CdpLeu7oErSX9NzRJWgv6bmjS9Be0nNH
l6C9pOeOLkF7Sc8dXYL2kp47ugTtJT139P84WGaZUimIJgAAAABJRU5ErkJggg==
" id="image3163"/> - <rect width="282.94818" x="28.049149" y="81.03817" rx="0" height="279.91772" ry="0" style="fill:none;fill-opacity:1;stroke:none;stroke-width:5.44153594999999960;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect2995"/> - </g> - <g id="layer2"/> -</svg> diff --git a/demos/quick3d/quick3d.pro b/demos/quick3d/quick3d.pro deleted file mode 100644 index 0459eb93..00000000 --- a/demos/quick3d/quick3d.pro +++ /dev/null @@ -1,2 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = model_viewer robo_bounce tea_service flickr3d diff --git a/demos/quick3d/robo_bounce/main.cpp b/demos/quick3d/robo_bounce/main.cpp deleted file mode 100644 index 07f7f219..00000000 --- a/demos/quick3d/robo_bounce/main.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui/QApplication> -#include "qgltexture2d.h" -#include "qdeclarativeview3d.h" - -int main(int argc, char *argv[]) -{ -#ifdef Q_OS_SYMBIAN - QGLTexture2D::setMaxImageSize(256,256); -#endif - - QApplication app(argc, argv); - - QDeclarativeView3D view; - view.setSource(QUrl(QLatin1String("qrc:///qml/robobounce.qml"))); - -#ifdef Q_OS_SYMBIAN - view.setAttribute(Qt::WA_LockLandscapeOrientation, true); - view.setResizeMode(QDeclarativeView::SizeRootObjectToView); - view.showFullScreen(); -#else - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - view.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - view.showFullScreen(); - else - view.show(); -#endif - - return app.exec(); -} diff --git a/demos/quick3d/robo_bounce/qml/Assets/QML3DSign.png b/demos/quick3d/robo_bounce/qml/Assets/QML3DSign.png Binary files differdeleted file mode 100644 index b4bfb88b..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/QML3DSign.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/button.png b/demos/quick3d/robo_bounce/qml/Assets/button.png Binary files differdeleted file mode 100644 index 2943e240..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/button.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/calculatorSign.png b/demos/quick3d/robo_bounce/qml/Assets/calculatorSign.png Binary files differdeleted file mode 100644 index 3a8fca72..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/calculatorSign.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/cubeButton.png b/demos/quick3d/robo_bounce/qml/Assets/cubeButton.png Binary files differdeleted file mode 100644 index 2ea32a8b..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/cubeButton.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/hazard.png b/demos/quick3d/robo_bounce/qml/Assets/hazard.png Binary files differdeleted file mode 100644 index a7c0b7fe..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/hazard.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/infobutton.png b/demos/quick3d/robo_bounce/qml/Assets/infobutton.png Binary files differdeleted file mode 100644 index e7379f2d..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/infobutton.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/qtlogo.png b/demos/quick3d/robo_bounce/qml/Assets/qtlogo.png Binary files differdeleted file mode 100644 index 3bf1a77d..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/qtlogo.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/roboInfo.png b/demos/quick3d/robo_bounce/qml/Assets/roboInfo.png Binary files differdeleted file mode 100644 index b7bdda19..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/roboInfo.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/roboticArms.3ds b/demos/quick3d/robo_bounce/qml/Assets/roboticArms.3ds Binary files differdeleted file mode 100644 index 478d27bf..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/roboticArms.3ds +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/roboticBody.3ds b/demos/quick3d/robo_bounce/qml/Assets/roboticBody.3ds Binary files differdeleted file mode 100644 index ed872c82..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/roboticBody.3ds +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/roboticHead.3ds b/demos/quick3d/robo_bounce/qml/Assets/roboticHead.3ds Binary files differdeleted file mode 100644 index 7a517c2b..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/roboticHead.3ds +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/rotateButton2.png b/demos/quick3d/robo_bounce/qml/Assets/rotateButton2.png Binary files differdeleted file mode 100644 index 80a2d82a..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/rotateButton2.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/sQt3D_logo.png b/demos/quick3d/robo_bounce/qml/Assets/sQt3D_logo.png Binary files differdeleted file mode 100644 index 92a071d3..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/sQt3D_logo.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Assets/tronscape.png b/demos/quick3d/robo_bounce/qml/Assets/tronscape.png Binary files differdeleted file mode 100644 index 325f60e3..00000000 --- a/demos/quick3d/robo_bounce/qml/Assets/tronscape.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Calculator/Calculator.qml b/demos/quick3d/robo_bounce/qml/Calculator/Calculator.qml deleted file mode 100644 index b31688ae..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/Calculator.qml +++ /dev/null @@ -1,187 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import "CalculatorCore" -import "CalculatorCore/calculator.js" as CalcEngine - -Rectangle { - id: window - - width: 640; height: 480 - color: "#282828" - - property string rotateLeft: "\u2939" - property string rotateRight: "\u2935" - property string leftArrow: "\u2190" - property string division : "\u00f7" - property string multiplication : "\u00d7" - property string squareRoot : "\u221a" - property string plusminus : "\u00b1" - - function doOp(operation) { CalcEngine.doOperation(operation) } - - - states: [ - State { - name: "hidden"; - }, - State { - name: "shown"; - } - ] - - transitions: [ - Transition { - from: "*" - to: "hidden" - SequentialAnimation { - NumberAnimation {target: window; property: "opacity"; to : 0.1; duration: 1000; easing.type:"OutQuad" } - PropertyAction {target: window; property: "visible"; value: false} - } - }, - Transition { - from: "*" - to: "shown" - SequentialAnimation { - PropertyAction {target: window; property: "visible"; value: true} - NumberAnimation {target: window; property: "opacity"; to : 1.0; duration: 1000; easing.type:"OutQuad" } - } - } - ] - - Item { - id: main - state: "orientation " + runtime.orientation - - width: parent.width; height: parent.height; anchors.centerIn: parent - - Column { - id: box; spacing: 8 - - anchors { fill: parent; topMargin: 6; bottomMargin: 6; leftMargin: 6; rightMargin: 6 } - - Display { - id: display - width: box.width-3 - height: 64 - } - - Column { - id: column; spacing: 6 - - property real h: ((box.height - 72) / 6) - ((spacing * (6 - 1)) / 6) - property real w: (box.width / 4) - ((spacing * (4 - 1)) / 4) - - Row { - spacing: 6 - Button { width: column.w; height: column.h; color: 'purple'; operation: "Off" } - Button { width: column.w; height: column.h; color: 'purple'; operation: leftArrow } - Button { width: column.w; height: column.h; color: 'purple'; operation: "C" } - Button { width: column.w; height: column.h; color: 'purple'; operation: "AC" } - } - - Row { - spacing: 6 - property real w: (box.width / 4) - ((spacing * (4 - 1)) / 4) - - Button { width: column.w; height: column.h; color: 'green'; operation: "mc" } - Button { width: column.w; height: column.h; color: 'green'; operation: "m+" } - Button { width: column.w; height: column.h; color: 'green'; operation: "m-" } - Button { width: column.w; height: column.h; color: 'green'; operation: "mr" } - } - - Grid { - id: grid; rows: 5; columns: 5; spacing: 6 - - property real w: (box.width / columns) - ((spacing * (columns - 1)) / columns) - - Button { width: grid.w; height: column.h; operation: "7"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "8"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "9"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: division } - Button { width: grid.w; height: column.h; operation: squareRoot } - Button { width: grid.w; height: column.h; operation: "4"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "5"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "6"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: multiplication } - Button { width: grid.w; height: column.h; operation: "x^2" } - Button { width: grid.w; height: column.h; operation: "1"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "2"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "3"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "-" } - Button { width: grid.w; height: column.h; operation: "1/x" } - Button { width: grid.w; height: column.h; operation: "0"; color: 'blue' } - Button { width: grid.w; height: column.h; operation: "." } - Button { width: grid.w; height: column.h; operation: plusminus } - Button { width: grid.w; height: column.h; operation: "+" } - Button { width: grid.w; height: column.h; operation: "="; color: 'red' } - } - } - } - - states: [ - State { - name: "orientation " + Orientation.Landscape - PropertyChanges { target: main; rotation: 90; width: window.height; height: window.width } - PropertyChanges { target: rotateButton; operation: rotateLeft } - }, - State { - name: "orientation " + Orientation.PortraitInverted - PropertyChanges { target: main; rotation: 180; } - PropertyChanges { target: rotateButton; operation: rotateRight } - }, - State { - name: "orientation " + Orientation.LandscapeInverted - PropertyChanges { target: main; rotation: 270; width: window.height; height: window.width } - PropertyChanges { target: rotateButton; operation: rotateLeft } - } - ] - - transitions: Transition { - SequentialAnimation { - PropertyAction { target: rotateButton; property: "operation" } - RotationAnimation { direction: RotationAnimation.Shortest; duration: 300; easing.type: Easing.InOutQuint } - NumberAnimation { properties: "x,y,width,height"; duration: 300; easing.type: Easing.InOutQuint } - } - } - } -} diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/Button.qml b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/Button.qml deleted file mode 100644 index ab10fcae..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/Button.qml +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -BorderImage { - id: button - - property alias operation: buttonText.text - property string color: "" - - signal clicked - - source: "images/button-" + color + ".png"; clip: true - border { left: 10; top: 10; right: 10; bottom: 10 } - - Rectangle { - id: shade - anchors.fill: button; radius: 10; color: "black"; opacity: 0 - } - - Text { - id: buttonText - anchors.centerIn: parent; anchors.verticalCenterOffset: -1 - font.pixelSize: parent.width > parent.height ? parent.height * .5 : parent.width * .5 - style: Text.Sunken; color: "white"; styleColor: "black"; smooth: true - } - - MouseArea { - id: mouseArea - anchors.fill: parent - onClicked: { - doOp(operation) - button.clicked() - } - } - - states: State { - name: "pressed"; when: mouseArea.pressed == true - PropertyChanges { target: shade; opacity: .4 } - } - - transitions: [ - Transition { - from: "*" - to: "pressed" - SequentialAnimation { - NumberAnimation {target: button; property: "scale"; to : 0.8; duration: 200; easing.type:"OutQuad" } - } - }, - Transition { - from: "pressed" - to: "*" - SequentialAnimation { - NumberAnimation {target: button; property: "scale"; to : 1.0; duration: 200; easing.type:"OutQuad" } - } - } - ] -} diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/Display.qml b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/Display.qml deleted file mode 100644 index 23da6f59..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/Display.qml +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -BorderImage { - id: image - - property alias text : displayText.text - property alias currentOperation : operationText - - source: "images/display.png" - border { left: 10; top: 10; right: 10; bottom: 10 } - - Text { - id: displayText - anchors { - right: parent.right; verticalCenter: parent.verticalCenter; verticalCenterOffset: -1 - rightMargin: 6; left: operationText.right - } - font.pixelSize: parent.height * .6; text: "0"; horizontalAlignment: Text.AlignRight; elide: Text.ElideRight - color: "#343434"; smooth: true; font.bold: true - } - Text { - id: operationText - font.bold: true; font.pixelSize: parent.height * .7 - color: "#343434"; smooth: true - anchors { left: parent.left; leftMargin: 6; verticalCenterOffset: -3; verticalCenter: parent.verticalCenter } - } -} diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/calculator.js b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/calculator.js deleted file mode 100644 index 7c363c7f..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/calculator.js +++ /dev/null @@ -1,91 +0,0 @@ - -var curVal = 0 -var memory = 0 -var lastOp = "" -var timer = 0 - -function disabled(op) { - if (op == "." && display.text.toString().search(/\./) != -1) { - return true - } else if (op == squareRoot && display.text.toString().search(/-/) != -1) { - return true - } else { - return false - } -} - -function doOperation(op) { - if (disabled(op)) { - return - } - - if (op.toString().length==1 && ((op >= "0" && op <= "9") || op==".") ) { - if (display.text.toString().length >= 14) - return; // No arbitrary length numbers - if (lastOp.toString().length == 1 && ((lastOp >= "0" && lastOp <= "9") || lastOp == ".") ) { - display.text = display.text + op.toString() - } else { - display.text = op - } - lastOp = op - return - } - lastOp = op - - if (display.currentOperation.text == "+") { - display.text = Number(display.text.valueOf()) + Number(curVal.valueOf()) - } else if (display.currentOperation.text == "-") { - display.text = Number(curVal) - Number(display.text.valueOf()) - } else if (display.currentOperation.text == multiplication) { - display.text = Number(curVal) * Number(display.text.valueOf()) - } else if (display.currentOperation.text == division) { - display.text = Number(Number(curVal) / Number(display.text.valueOf())).toString() - } else if (display.currentOperation.text == "=") { - } - - if (op == "+" || op == "-" || op == multiplication || op == division) { - display.currentOperation.text = op - curVal = display.text.valueOf() - return - } - - curVal = 0 - display.currentOperation.text = "" - - if (op == "1/x") { - display.text = (1 / display.text.valueOf()).toString() - } else if (op == "x^2") { - display.text = (display.text.valueOf() * display.text.valueOf()).toString() - } else if (op == "Abs") { - display.text = (Math.abs(display.text.valueOf())).toString() - } else if (op == "Int") { - display.text = (Math.floor(display.text.valueOf())).toString() - } else if (op == plusminus) { - display.text = (display.text.valueOf() * -1).toString() - } else if (op == squareRoot) { - display.text = (Math.sqrt(display.text.valueOf())).toString() - } else if (op == "mc") { - memory = 0; - } else if (op == "m+") { - memory += display.text.valueOf() - } else if (op == "mr") { - display.text = memory.toString() - } else if (op == "m-") { - memory = display.text.valueOf() - } else if (op == leftArrow) { - display.text = display.text.toString().slice(0, -1) - if (display.text.length == 0) { - display.text = "0" - } - } else if (op == "Off") { - Qt.quit(); - } else if (op == "C") { - display.text = "0" - } else if (op == "AC") { - curVal = 0 - memory = 0 - lastOp = "" - display.text ="0" - } -} - diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-.png b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-.png Binary files differdeleted file mode 100644 index 544e5145..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-blue.png b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-blue.png Binary files differdeleted file mode 100644 index 5f92de32..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-blue.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-green.png b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-green.png Binary files differdeleted file mode 100644 index 36c93914..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-green.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-purple.png b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-purple.png Binary files differdeleted file mode 100644 index 347cbbea..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-purple.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-red.png b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-red.png Binary files differdeleted file mode 100644 index 3b335891..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/button-red.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/display.png b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/display.png Binary files differdeleted file mode 100644 index 9507f438..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/images/display.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/qmldir b/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/qmldir deleted file mode 100644 index a926b93f..00000000 --- a/demos/quick3d/robo_bounce/qml/Calculator/CalculatorCore/qmldir +++ /dev/null @@ -1,2 +0,0 @@ -Button Button.qml -Display Display.qml diff --git a/demos/quick3d/robo_bounce/qml/RobotCore/PushButton.qml b/demos/quick3d/robo_bounce/qml/RobotCore/PushButton.qml deleted file mode 100644 index 8cc48744..00000000 --- a/demos/quick3d/robo_bounce/qml/RobotCore/PushButton.qml +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 -import Qt3D 1.0 - -Image { - id: theButton - property bool bounce: false - source: "../Assets/button.png" - width: 40 - height: 40 - - signal pressed - - SequentialAnimation { - running: theButton.bounce - NumberAnimation {target: theButton; property: "scale"; duration: 50; to: 0.8;} - NumberAnimation {target: theButton; property: "scale"; duration: 50; to: 1;} - onCompleted: {theButton.bounce = false} - } - - MouseArea { - anchors.fill: parent - onClicked: { - theButton.bounce=true - theButton.pressed() - } - } -} - - diff --git a/demos/quick3d/robo_bounce/qml/RobotCore/QMLPanels.qml b/demos/quick3d/robo_bounce/qml/RobotCore/QMLPanels.qml deleted file mode 100644 index 874436dd..00000000 --- a/demos/quick3d/robo_bounce/qml/RobotCore/QMLPanels.qml +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 -import Qt3D 1.0 - -Item { - Rectangle { - id: buttonBox1 - x: 30 - y: 110 - width: 60 - height: 160 - opacity: 0.5 - color: "black" - border.color: "#2D918D" - border.width: 2 - radius: 5 - } - PushButton { - x: buttonBox1.x+10 - y: buttonBox1.y+10 - } - PushButton { - x: buttonBox1.x+10 - y: buttonBox1.y+60 - } - PushButton { - x: buttonBox1.x+10 - y: buttonBox1.y+110 - } - - Rectangle { - id: buttonBox2 - x: 550 - y: 110 - width: 60 - height: 160 - opacity: 0.5 - color: "black" - border.color: "#2D918D" - border.width: 2 - radius: 5 - } - PushButton { - x: buttonBox2.x+10 - y: buttonBox2.y+10 - } - PushButton { - x: buttonBox2.x+10 - y: buttonBox2.y+60 - } - PushButton { - x: buttonBox2.x+10 - y: buttonBox2.y+110 - } - - states: [ - State {}, - State {} - - ] -} - - diff --git a/demos/quick3d/robo_bounce/qml/RobotCore/Robot.qml b/demos/quick3d/robo_bounce/qml/RobotCore/Robot.qml deleted file mode 100644 index c696b794..00000000 --- a/demos/quick3d/robo_bounce/qml/RobotCore/Robot.qml +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 -import Qt3D 1.0 - -Item3D { - id: robot1 - scale: 0.3 - mesh: Mesh { id: roboMesh; source: "../Assets/roboticBody.3ds"; } - effect: Effect {} -} - - diff --git a/demos/quick3d/robo_bounce/qml/RobotCore/TronCube.qml b/demos/quick3d/robo_bounce/qml/RobotCore/TronCube.qml deleted file mode 100644 index 9e352602..00000000 --- a/demos/quick3d/robo_bounce/qml/RobotCore/TronCube.qml +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 -import Qt3D 1.0 -import Qt3D.Shapes 1.0 - -Cube { - effect: Effect {color: "#aaaaaa"; texture: "../Assets/qtlogo.png"; decal: true} - position: Qt.vector3d(0,-5.01, 0) -} - - diff --git a/demos/quick3d/robo_bounce/qml/robobounce.qml b/demos/quick3d/robo_bounce/qml/robobounce.qml deleted file mode 100644 index c9e412b0..00000000 --- a/demos/quick3d/robo_bounce/qml/robobounce.qml +++ /dev/null @@ -1,609 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 -import Qt3D 1.0 -import Qt3D.Shapes 1.0 -import "Calculator" -import "RobotCore" - -Image { - property real eyeSeparation: 0.0 //Eye separation: 0.1 for 3d, 0.0 for standard - property real repeatAnimationTimer: 30; //Auto click the 'start' button this often - - id: theBackground - width: 640 - height: 480 - source: "Assets/tronscape.png" - - focus: true - Keys.onSpacePressed: { - heartbeat.restart(); - qt3dButton.bounce = true; - console.log("Hide Calc") - if (calc.state=="hidden") { - calc.state="shown" - - } else { - calc.state = "hidden" - }; - } - Keys.onLeftPressed: { - console.log("Rotate Key Pressed"); - heartbeat.restart(); - room.spinning = true; - } - Keys.onRightPressed: { - console.log("Box Drop Key pressed"); - heartbeat.restart(); - smallCube.fallingCubeAnimation=true; - } - Keys.onUpPressed: { - console.log("Info Key Pressed"); - heartbeat.restart(); - roboInfo.showVisible=true - } - Keys.onPressed: { - heartbeat.restart(); - if (event.key==Qt.Key_A) { - navigator.spindir=1 - } else if (event.key==Qt.Key_D) { - navigator.spindir=2 - } else if (event.key==Qt.Key_W) { - navigator.tiltdir=1 - } else if (event.key==Qt.Key_S) { - navigator.tiltdir=2 - } else if (event.key==Qt.Key_Plus) { - navigator.zoomdir=1 - } else if (event.key==Qt.Key_Minus) { - navigator.zoomdir=2 - } - } - Keys.onReleased: { - heartbeat.restart(); - if (event.key==Qt.Key_A) { - navigator.spindir=0 - } else if (event.key==Qt.Key_D) { - navigator.spindir=0 - } else if (event.key==Qt.Key_W) { - navigator.tiltdir=0 - } else if (event.key==Qt.Key_S) { - navigator.tiltdir=0 - } else if (event.key==Qt.Key_Plus) { - navigator.zoomdir=0 - } else if (event.key==Qt.Key_Minus) { - navigator.zoomdir=0 - } - } - - Timer { - id: navigator; - interval: 5; - running: true - repeat: true - property int tiltdir: 0 //1 is forward, 2 is back - property int spindir: 0 //1 is right, 2 is left - property int zoomdir: 0 //1 is in, 2 is out - onTriggered: { - if (tiltdir==1) {roomTilt.angle=roomTilt.angle+0.5} - else if (tiltdir==2) {roomTilt.angle=roomTilt.angle-0.5} - if (spindir==1) {roomSpin.angle=roomSpin.angle+0.5} - else if (spindir==2) {roomSpin.angle=roomSpin.angle-0.5} - if (spindir==1) {roomSpin.angle=roomSpin.angle+0.5} - else if (spindir==2) {roomSpin.angle=roomSpin.angle-0.5} - if (zoomdir==1) { - if (theCamera.fieldOfView>13) { - theCamera.fieldOfView=theCamera.fieldOfView-0.5 - } - } else if (zoomdir==2) { - if (theCamera.fieldOfView<80) { - theCamera.fieldOfView=theCamera.fieldOfView+0.5 - } - } - } - } - - - Timer { - id: heartbeat; - interval: theBackground.repeatAnimationTimer*1000; - running: true - repeat: true - onTriggered: { - qt3dButton.bounce = true; - console.log("Hide Calc") - if (calc.state=="hidden") { - calc.state="shown" - } else { - calc.state = "hidden" - } - } - } - - Viewport { - id: viewport - width: 640 - height: 480 - navigation: true - picking: true - //showPicking: true - - Item { - visible: false - id: buttonPanel - state: "panelUp" - states: [ - State { name: "panelDown";}, - State { name: "panelUp";} - ] - - transitions: [ - Transition { - from: "*" - to: "panelDown" - SequentialAnimation { - PropertyAction{target: buttonPanel; property: "visible"; value: true} - PauseAnimation{duration: 10} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - PauseAnimation{duration: 10} - PropertyAction{target: buttonPanel; property: "visible"; value: true} - PauseAnimation{duration: 10} - PropertyAction{target: buttonPanel; property: "visible"; value: true} - PauseAnimation{duration: 10} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - PauseAnimation{duration: 10} - PropertyAction{target: buttonPanel; property: "visible"; value: true} - } - }, - Transition { - from: "*" - to: "panelUp" - SequentialAnimation { - onStarted: { console.log("Panel Up"); } - NumberAnimation {target: buttonPanel; property: opacity; to: 0; duration: 2000;} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - } - } - ] - - Rectangle { - id: buttonBox1 - x: viewport.width-175 - y: 10 - width: 160 - height: 60 - opacity: 0.5 - color: "black" - border.color: "#2D918D" - border.width: 2 - radius: 5 - } - PushButton { - source: "Assets/rotateButton2.png" - x: buttonBox1.x+10 - y: buttonBox1.y+10 - onPressed: { - console.log("Rotate Pressed"); - room.spinning = true; - heartbeat.restart(); - } - } - PushButton { - source: "Assets/cubeButton.png" - x: buttonBox1.x+60 - y: buttonBox1.y+10 - onPressed: { - console.log("Box button pressed"); - smallCube.fallingCubeAnimation=true; - heartbeat.restart(); - } - } - PushButton { - source: "Assets/infobutton.png" - x: buttonBox1.x+110 - y: buttonBox1.y+10 - onPressed: { - console.log("Info Button Pressed"); - roboInfo.showVisible=true - heartbeat.restart(); - } - } - } - - Rectangle { - id: roboInfo - x: 5 - y: 85 - width: 150 - height: 175 - opacity: 0.0 - color: "black" - property bool showVisible: false - border.color: "#2D918D" - border.width: 2 - radius: 5 - Image { - source: "Assets/roboInfo.png" - } - - SequentialAnimation { - running: roboInfo.showVisible - NumberAnimation {target: roboInfo; property: "opacity"; to: 0.7; duration: 500} - PauseAnimation {duration: 3000} - NumberAnimation {target: roboInfo; property: "opacity"; to: 0.0; duration: 500} - onCompleted: {roboInfo.showVisible=false} - } - } - - Calculator { - id: calc - } - - Image { - id: qt3dButton - source: "Assets/sQt3D_logo.png" - property bool bounce: false - - x: 10 - y: 5 - width: 110 - height: 70 - - SequentialAnimation { - running: qt3dButton.bounce - NumberAnimation {target: qt3dButton; property: "scale"; duration: 100; to: 1.2;} - NumberAnimation {target: qt3dButton; property: "scale"; duration: 100; to: 1;} - onCompleted: {qt3dButton.bounce = false} - } - - MouseArea { - id: qt3dActivate - anchors.fill: parent - onClicked: { - heartbeat.restart(); - qt3dButton.bounce = true; - console.log("Hide Calc") - if (calc.state=="hidden") { - calc.state="shown" - } else { - calc.state = "hidden" - } - } - } - } - - camera: Camera { - id: theCamera - eye: Qt.vector3d(0, 2, 10) - nearPlane:2.5 - center: Qt.vector3d(0,2,0) - fieldOfView: 12 - eyeSeparation: theBackground.eyeSeparation - } - - Item3D { - id: scene - - states: [ - State { name: "qmlView"; when: calc.visible}, - State { name: "threedView"; when: !calc.visible } - ] - - transitions: [ - Transition { - from: "*" - to: "qmlView" - SequentialAnimation { - PropertyAction{target: roomSpin; property: "angle"; value: 0} - PropertyAction{target: roomTilt; property: "angle"; value: 0} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - PropertyAction{target: theCamera; property: "eye"; value: Qt.vector3d(0, 2, 10)} - PropertyAction{target: theCamera; property: "fieldOfView"; value: 11.45} - PropertyAction{target: spinSign; property: "angle"; value: 0} - PropertyAction{target: robot; property: "position"; value: Qt.vector3d(0,10,4)} - PropertyAction{target: pitch; property: "angle"; value: -15} - PropertyAction{target: roll; property: "angle"; value: 0} - PropertyAction{target: yaw; property: "angle"; value: 0} - PropertyAction{target: spinSign; property: "angle"; value: 0} - PropertyAction{target: innerCube; property: "scale"; value: 0.95} - PropertyAction{target: signCube; property: "scale"; value: 2.375} - PropertyAction{target: headroll; property: "angle"; value: -45} - } - }, - Transition { - from: "*" - to: "threedView" - SequentialAnimation { - onStarted: {console.log("start")} - SequentialAnimation { - NumberAnimation { target: theCamera; property: "fieldOfView"; to: 20; duration: 1000; easing.type: "InOutQuad" } - ParallelAnimation { - NumberAnimation { target: spinSign; property: "angle"; to: 720; duration: 500; easing.type: "InOutQuad"} - NumberAnimation { target: innerCube; property: "scale"; to: 1.01; duration: 500} - } - } - PauseAnimation {duration: 1000} - ParallelAnimation { - NumberAnimation {target: theCamera; property: "fieldOfView"; to: 40; - duration: 1000; easing.type: "InOutQuad"} - Vector3dAnimation {target: theCamera; property: "eye"; to: Qt.vector3d(0,4,10); - duration: 2500; easing.type: "InOutQuad" - } - } - PauseAnimation {duration: 1000} - NumberAnimation {target: signCube; property: "scale"; to: 0.0; duration: 2500; easing.type: "InOutQuad"} - Vector3dAnimation {target: robot; property: "position"; to: Qt.vector3d(0,0,4); duration: 1000; easing.type: "OutBounce"} - PauseAnimation {duration: 500} - NumberAnimation { target:pitch; property: "angle"; to: -90; duration: 2500; easing.type: "InOutElastic"} - NumberAnimation { target: theCamera; property: "fieldOfView"; to: 20; duration: 1000; easing.type: "InOutQuad" } - NumberAnimation { target: headroll; property: "angle"; to: 0; duration: 500; easing.type: "OutElastic"} - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 00; duration: 100; easing.type: "OutQuad"} - NumberAnimation { target: theCamera; property: "fieldOfView"; to: 40; duration: 1000; easing.type: "InOutQuad" } - PauseAnimation{duration: 1000} - ParallelAnimation { - SequentialAnimation { - NumberAnimation {target: roll; property: "angle"; to: -20; duration: 500; easing.type: "InOutBack"} - PauseAnimation{duration: 1000} - NumberAnimation {target: roll; property: "angle"; to: 0; duration: 500; easing.type: "InOutBack"} - } - Vector3dAnimation {target: robot; property: "position"; to: Qt.vector3d(0,0,0); duration: 2000; easing.type: "InOutBack"} - } - PauseAnimation{duration: 500} - SequentialAnimation { - PropertyAction{target: buttonPanel; property: "visible"; value: true} - PauseAnimation{duration: 50} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - PauseAnimation{duration: 40} - PropertyAction{target: buttonPanel; property: "visible"; value: true} - PauseAnimation{duration: 100} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - PauseAnimation{duration: 40} - PropertyAction{target: buttonPanel; property: "visible"; value: true} - PauseAnimation{duration: 150} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - PauseAnimation{duration: 40} - PropertyAction{target: buttonPanel; property: "visible"; value: true} - PauseAnimation{duration: 300} - PropertyAction{target: buttonPanel; property: "visible"; value: false} - PauseAnimation{duration: 40} - PropertyAction{target: buttonPanel; property: "visible"; value: true} - } - } - } - ] - - effect: Effect{} - - Light {position: Qt.vector3d(20,5,00)} - - - Item3D { - id: room - property bool spinning: false - transform: [ - Rotation3D{id: roomTilt; angle: 0; axis: Qt.vector3d(1,0,0)}, - Rotation3D{id: roomSpin; angle: 0; axis: Qt.vector3d(0,1,0)} - ] - - - NumberAnimation { - running: room.spinning - target: roomSpin - property: "angle" - to: 360 - duration: 3000 - easing.type: "InOutQuad" - onCompleted: { - room.spinning=false - roomSpin.angle=0 - } - } - - TronCube { - id: smallCube - property bool fallingCubeAnimation: false - position: Qt.vector3d(0,5,0) - - onClicked: { - heartbeat.restart(); - console.log("Small cube clicked"); - smallCube.fallingCubeAnimation=true; - } - - transform: [ - Rotation3D {id: spinSmallCube; angle: 0; axis: Qt.vector3d(0,1,0)} - ] - - SequentialAnimation { - running: smallCube.fallingCubeAnimation - onCompleted: {smallCube.fallingCubeAnimation=false;} - ParallelAnimation { - NumberAnimation {target: spinSmallCube; property: "angle"; to: 360; easing.type: "InOutQuad"; duration: 1750} - SequentialAnimation { - Vector3dAnimation {target: smallCube; property: "position"; to: Qt.vector3d(0,3.2,0); easing.type: "InQuad"; duration: 250} - PropertyAction {target: robotHead; property: "z"; value: -9.0;} - ParallelAnimation { - NumberAnimation {target: smallCube; property: "x"; to: 2; easing.type: "Linear"; duration: 1500} - SequentialAnimation { - NumberAnimation {target: smallCube; property: "y"; to: 4.5; easing.type: "OutQuad"; duration: 250} - NumberAnimation {target: smallCube; property: "y"; to: 0.5; easing.type: "OutBounce"; duration: 1250} - } - } - } - } - PauseAnimation {duration: 500 } - NumberAnimation { target: robotHead; property: "z"; to: -9.2; easing.type: "OutBounce"; duration: 250 } - PauseAnimation {duration: 500 } - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: -30; duration: 70; easing.type: "InOutQuad"} - NumberAnimation { target: headyaw; property: "angle"; to: 00; duration: 100; easing.type: "OutQuad"} - NumberAnimation { target: yaw; property: "angle"; to: 90; duration: 250; easing.type: "InOutQuad"} - NumberAnimation { target: armBend; property: "angle"; to: -45; duration: 500; easing.type: "InOutQuad"} - ParallelAnimation { - NumberAnimation { target: robot; property: "x"; to: 0.5; duration: 500; easing.type: "InQuad"} - NumberAnimation { target: roll; property: "angle"; to: 30; duration: 500; easing.type: "InOutQuad"} - } - ParallelAnimation { - NumberAnimation { target: robot; property: "x"; to: 3.5; duration: 1000; easing.type: "Linear"} - NumberAnimation { target: smallCube; property: "x"; to: 5; duration: 1000; easing.type: "Linear"} - } - ParallelAnimation { - NumberAnimation { target: smallCube; property: "x"; to: 8; duration: 1000; easing.type: "Linear"} - SequentialAnimation { - PauseAnimation { duration: 250} - NumberAnimation { target: smallCube; property: "y"; to: -5; duration: 750; easing.type: "InQuad"} - } - ParallelAnimation { - SequentialAnimation { - NumberAnimation {target: roll; property: "angle"; to: -10; duration: 750; easing.type: "InOutBack"} - PauseAnimation{duration: 1500} - NumberAnimation {target: roll; property: "angle"; to: 0; duration: 750; easing.type: "InOutBack"} - } - Vector3dAnimation {target: robot; property: "position"; to: Qt.vector3d(0,0,0); duration: 3000; easing.type: "InOutBack"} - } - } - NumberAnimation { target: yaw; property: "angle"; to: 0; duration: 250; easing.type: "InOutQuad"} - NumberAnimation { target: armBend; property: "angle"; to: -90; duration: 500; easing.type: "InOutQuad"} - PauseAnimation { duration: 1000 } - PropertyAction {target: smallCube; property: "position"; value: Qt.vector3d(0,10,0)} - NumberAnimation { target: smallCube; property: "y"; to: 5; duration: 1000; easing.type: "OutQuad"} - } - } - - TronCube { - scale: 10.0 - onClicked: { - heartbeat.restart(); - console.log("Big cube clicked"); - room.spinning = true; - } - } - - Cube { - id: signCube - scale: 2.375 - position: Qt.vector3d(0,2,0) - effect: calcEffect - transform: [ - Rotation3D{id: spinSign; angle: 180; axis:Qt.vector3d(0,1,0)} - ] - - Cube { - id: innerCube - scale: 0.95 - effect: signEffect - } - - Effect { - id: signEffect - color: "#aaca00" - texture: "Assets/QML3DSign.png" - decal: true - } - - Effect { - id: calcEffect - color: "#aaca00" - texture: "Assets/calculatorSign.png" - decal: true - } - } - - Robot { - id: robot - position: Qt.vector3d(0,0,4) - - onClicked: { - heartbeat.restart(); - console.log("robot has been clicked") - roboInfo.showVisible=true - } - - transform: [ - Rotation3D {id: correct; angle: 90; axis: Qt.vector3d(0,1,0)}, - Rotation3D {id: pitch; angle: -90; axis: Qt.vector3d(0,0,1)}, - Rotation3D {id: roll; angle: 0; axis: Qt.vector3d(1,0,0)}, - Rotation3D {id: yaw; angle: 0; axis: Qt.vector3d(0,1,0)} - ] - - Item3D { - id: robotArms - mesh: Mesh { source: "Assets/roboticArms.3ds"} - transform: Rotation3D{id: armBend; angle: -90;axis: Qt.vector3d(0,1,0)} - position: Qt.vector3d(.18, 0,-5.4) - - SequentialAnimation { - running: false - loops: 100 - NumberAnimation {target: armBend; property: "angle"; to: 0.0; duration: 1000; easing.type: "OutQuad" } - PauseAnimation {duration: 1000} - NumberAnimation {target: armBend; property: "angle"; to: -90.0; duration: 1000; easing.type: "OutQuad" } - } - } - - Item3D { - id: robotHead - mesh: Mesh { source: "Assets/roboticHead.3ds" } - position: Qt.vector3d(0,0,-9.1) - transform: [ - Rotation3D {id: headyaw; angle: 0; axis: Qt.vector3d(0,0,1)}, - Rotation3D {id: headroll; angle: -45; axis: Qt.vector3d(1,0,0)}, - Rotation3D {id: headpitch; angle: 0; axis: Qt.vector3d(0,1,0)} - ] - } - } - } - } - } -} diff --git a/demos/quick3d/robo_bounce/qtquick3d.ico b/demos/quick3d/robo_bounce/qtquick3d.ico Binary files differdeleted file mode 100644 index c695ac72..00000000 --- a/demos/quick3d/robo_bounce/qtquick3d.ico +++ /dev/null diff --git a/demos/quick3d/robo_bounce/qtquick3d.png b/demos/quick3d/robo_bounce/qtquick3d.png Binary files differdeleted file mode 100644 index 8351083e..00000000 --- a/demos/quick3d/robo_bounce/qtquick3d.png +++ /dev/null diff --git a/demos/quick3d/robo_bounce/robo_bounce.desktop b/demos/quick3d/robo_bounce/robo_bounce.desktop deleted file mode 100644 index d21ea4f0..00000000 --- a/demos/quick3d/robo_bounce/robo_bounce.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=RoboBounce -Icon=/usr/share/icons/hicolor/80x80/apps/qtquick3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/robo_bounce -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_robo_bounce diff --git a/demos/quick3d/robo_bounce/robo_bounce.pro b/demos/quick3d/robo_bounce/robo_bounce.pro deleted file mode 100644 index 5232a715..00000000 --- a/demos/quick3d/robo_bounce/robo_bounce.pro +++ /dev/null @@ -1,22 +0,0 @@ -TEMPLATE = app -TARGET = robo_bounce -CONFIG += qt warn_on - -CONFIG += qt3dquick_deploy_pkg -include(../../../pkg.pri) - -SOURCES += main.cpp - -OTHER_FILES += \ - robo_bounce.rc \ - robo_bounce.desktop - -RC_FILE = robo_bounce.rc - -RESOURCES += \ - robo_bounce.qrc - - -symbian { - TARGET.EPOCHEAPSIZE = 0x40000 0x4000000 -} diff --git a/demos/quick3d/robo_bounce/robo_bounce.qrc b/demos/quick3d/robo_bounce/robo_bounce.qrc deleted file mode 100644 index 69a83785..00000000 --- a/demos/quick3d/robo_bounce/robo_bounce.qrc +++ /dev/null @@ -1,34 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>qml/robobounce.qml</file> - <file>qml/Assets/button.png</file> - <file>qml/Assets/calculatorSign.png</file> - <file>qml/Assets/cubeButton.png</file> - <file>qml/Assets/hazard.png</file> - <file>qml/Assets/infobutton.png</file> - <file>qml/Assets/QML3DSign.png</file> - <file>qml/Assets/qtlogo.png</file> - <file>qml/Assets/roboInfo.png</file> - <file>qml/Assets/roboticArms.3ds</file> - <file>qml/Assets/roboticBody.3ds</file> - <file>qml/Assets/roboticHead.3ds</file> - <file>qml/Assets/rotateButton2.png</file> - <file>qml/Assets/sQt3D_logo.png</file> - <file>qml/Assets/tronscape.png</file> - <file>qml/Calculator/Calculator.qml</file> - <file>qml/Calculator/CalculatorCore/Button.qml</file> - <file>qml/Calculator/CalculatorCore/calculator.js</file> - <file>qml/Calculator/CalculatorCore/Display.qml</file> - <file>qml/Calculator/CalculatorCore/qmldir</file> - <file>qml/Calculator/CalculatorCore/images/button-.png</file> - <file>qml/Calculator/CalculatorCore/images/button-blue.png</file> - <file>qml/Calculator/CalculatorCore/images/button-green.png</file> - <file>qml/Calculator/CalculatorCore/images/button-purple.png</file> - <file>qml/Calculator/CalculatorCore/images/button-red.png</file> - <file>qml/Calculator/CalculatorCore/images/display.png</file> - <file>qml/RobotCore/PushButton.qml</file> - <file>qml/RobotCore/QMLPanels.qml</file> - <file>qml/RobotCore/Robot.qml</file> - <file>qml/RobotCore/TronCube.qml</file> - </qresource> -</RCC> diff --git a/demos/quick3d/robo_bounce/robo_bounce.rc b/demos/quick3d/robo_bounce/robo_bounce.rc deleted file mode 100644 index 1b6228c9..00000000 --- a/demos/quick3d/robo_bounce/robo_bounce.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qtquick3d.ico" diff --git a/demos/quick3d/tea_service/main.cpp b/demos/quick3d/tea_service/main.cpp deleted file mode 100644 index ed22e4b9..00000000 --- a/demos/quick3d/tea_service/main.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui/QApplication> -#include "qdeclarativeview3d.h" - -#include "../qmlres.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QDeclarativeView3D view; - QString qml = q_get_qmldir(QLatin1String("qml/teaservice.qml")); - view.setSource(QUrl::fromLocalFile(qml)); - -#ifdef Q_OS_SYMBIAN - view.setAttribute(Qt::WA_LockLandscapeOrientation, true); - view.setResizeMode(QDeclarativeView::SizeRootObjectToView); - view.showFullScreen(); -#else - if (QApplication::arguments().contains(QLatin1String("-maximize"))) - view.showMaximized(); - else if (QApplication::arguments().contains(QLatin1String("-fullscreen"))) - view.showFullScreen(); - else - view.show(); -#endif - - return app.exec(); -} diff --git a/demos/quick3d/tea_service/qml/Teacup.qml b/demos/quick3d/tea_service/qml/Teacup.qml deleted file mode 100644 index 9c34b0da..00000000 --- a/demos/quick3d/tea_service/qml/Teacup.qml +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import Qt3D 1.0 - -Item3D { - id: top - property real spoonY - property bool bounce: false - - Item3D { - mesh: teacup_mesh - effect: Effect { - material: china - } - - onHoverEnter: { effect.material = china_highlight } - onHoverLeave: { effect.material = china } - onClicked: { top.bounce = true } - - y: top.spoonY - } - - SequentialAnimation on spoonY { - running: top.bounce - NumberAnimation { to : 1; duration: 300; easing.type:"OutQuad" } - NumberAnimation { to : 0; duration: 300; easing.type:"OutBounce" } - onCompleted: top.bounce = false - } -} diff --git a/demos/quick3d/tea_service/qml/Teaspoon.qml b/demos/quick3d/tea_service/qml/Teaspoon.qml deleted file mode 100644 index 65712e2e..00000000 --- a/demos/quick3d/tea_service/qml/Teaspoon.qml +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import Qt3D 1.0 - -Item3D { - id: "top" - property real saucerY - Item3D { - id: teaspoon1 - property real y_lift - y: Math.max(y_lift,top.saucerY) - transform: Rotation3D { - angle: 275 - axis: Qt.vector3d(1, 0, 0) - } - mesh: teaspoon_mesh - effect: Effect { - material: metal - } - property bool bounce: false - - onHoverEnter: { effect.material = metal_highlight } - onHoverLeave: { effect.material = metal } - onClicked: { teaspoon1.bounce = true } - - SequentialAnimation on y_lift { - running: teaspoon1.bounce - NumberAnimation { to : 1; duration: 300; easing.type:"OutQuad" } - NumberAnimation { to : 0; duration: 300; easing.type:"OutBounce" } - onCompleted: teaspoon1.bounce = false - } - } -} diff --git a/demos/quick3d/tea_service/qml/teacup.bez b/demos/quick3d/tea_service/qml/teacup.bez deleted file mode 100644 index f4dde3ef..00000000 --- a/demos/quick3d/tea_service/qml/teacup.bez +++ /dev/null @@ -1,280 +0,0 @@ -26 -1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 -4,17,18,19,8,20,21,22,12,23,24,25,16,26,27,28 -19,29,30,31,22,32,33,34,25,35,36,37,28,38,39,40 -31,41,42,1,34,43,44,5,37,45,46,9,40,47,48,13 -13,14,15,16,49,50,51,52,53,54,55,56,57,58,59,60 -16,26,27,28,52,61,62,63,56,64,65,66,60,67,68,69 -28,38,39,40,63,70,71,72,66,73,74,75,69,76,77,78 -40,47,48,13,72,79,80,49,75,81,82,53,78,83,84,57 -193,194,195,196,197,198,199,200,201,202,203,204,1,2,3,4 -196,205,206,207,200,208,209,210,204,211,212,213,4,17,18,19 -207,214,215,216,210,217,218,219,213,220,221,222,19,29,30,31 -216,223,224,193,219,225,226,197,222,227,228,201,31,41,42,1 -229,230,231,28,232,233,234,235,236,237,238,239,240,241,242,243 -28,244,245,229,235,246,247,232,239,248,249,236,243,250,251,240 -57,58,59,60,85,86,87,88,89,90,91,92,93,94,95,96 -60,67,68,69,88,97,98,99,92,100,101,102,96,103,104,105 -69,76,77,78,99,106,107,108,102,109,110,111,105,112,113,114 -78,83,84,57,108,115,116,85,111,117,118,89,114,119,120,93 -93,94,95,96,121,122,123,124,125,126,127,128,129,130,131,132 -96,103,104,105,124,133,134,135,128,136,137,138,132,139,140,141 -105,112,113,114,135,142,143,144,138,145,146,147,141,148,149,150 -114,119,120,93,144,151,152,121,147,153,154,125,150,155,156,129 -129,130,131,132,157,158,159,160,161,162,163,164,165,166,167,168 -132,139,140,141,160,169,170,171,164,172,173,174,168,175,176,177 -141,148,149,150,171,178,179,180,174,181,182,183,177,184,185,186 -150,155,156,129,180,187,188,157,183,189,190,161,186,191,192,165 -251 -0.409091,0.772727,0.0 -0.409091,0.772727,-0.229091 -0.229091,0.772727,-0.409091 -0.0,0.772727,-0.409091 -0.409091,0.886364,0.0 -0.409091,0.886364,-0.229091 -0.229091,0.886364,-0.409091 -0.0,0.886364,-0.409091 -0.454545,0.886364,0.0 -0.454545,0.886364,-0.254545 -0.254545,0.886364,-0.454545 -0.0,0.886364,-0.454545 -0.454545,0.772727,0.0 -0.454545,0.772727,-0.254545 -0.254545,0.772727,-0.454545 -0.0,0.772727,-0.454545 --0.229091,0.772727,-0.409091 --0.409091,0.772727,-0.229091 --0.409091,0.772727,0.0 --0.229091,0.886364,-0.409091 --0.409091,0.886364,-0.229091 --0.409091,0.886364,0.0 --0.254545,0.886364,-0.454545 --0.454545,0.886364,-0.254545 --0.454545,0.886364,0.0 --0.254545,0.772727,-0.454545 --0.454545,0.772727,-0.254545 --0.454545,0.772727,0.0 --0.409091,0.772727,0.229091 --0.229091,0.772727,0.409091 -0.0,0.772727,0.409091 --0.409091,0.886364,0.229091 --0.229091,0.886364,0.409091 -0.0,0.886364,0.409091 --0.454545,0.886364,0.254545 --0.254545,0.886364,0.454545 -0.0,0.886364,0.454545 --0.454545,0.772727,0.254545 --0.254545,0.772727,0.454545 -0.0,0.772727,0.454545 -0.229091,0.772727,0.409091 -0.409091,0.772727,0.229091 -0.229091,0.886364,0.409091 -0.409091,0.886364,0.229091 -0.254545,0.886364,0.454545 -0.454545,0.886364,0.254545 -0.254545,0.772727,0.454545 -0.454545,0.772727,0.254545 -0.454545,0.545455,0.0 -0.454545,0.545455,-0.254545 -0.254545,0.545455,-0.454545 -0.0,0.545455,-0.454545 -0.454545,0.272727,0.0 -0.454545,0.272727,-0.254545 -0.254545,0.272727,-0.454545 -0.0,0.272727,-0.454545 -0.318182,0.0454545,0.0 -0.318182,0.0454545,-0.178182 -0.178182,0.0454545,-0.318182 -0.0,0.0454545,-0.318182 --0.254545,0.545455,-0.454545 --0.454545,0.545455,-0.254545 --0.454545,0.545455,0.0 --0.254545,0.272727,-0.454545 --0.454545,0.272727,-0.254545 --0.454545,0.272727,0.0 --0.178182,0.0454545,-0.318182 --0.318182,0.0454545,-0.178182 --0.318182,0.0454545,0.0 --0.454545,0.545455,0.254545 --0.254545,0.545455,0.454545 -0.0,0.545455,0.454545 --0.454545,0.272727,0.254545 --0.254545,0.272727,0.454545 -0.0,0.272727,0.454545 --0.318182,0.0454545,0.178182 --0.178182,0.0454545,0.318182 -0.0,0.0454545,0.318182 -0.254545,0.545455,0.454545 -0.454545,0.545455,0.254545 -0.254545,0.272727,0.454545 -0.454545,0.272727,0.254545 -0.178182,0.0454545,0.318182 -0.318182,0.0454545,0.178182 -0.545455,0.0454545,0.0 -0.545455,0.0454545,-0.305455 -0.305455,0.0454545,-0.545455 -0.0,0.0454545,-0.545455 -0.727273,0.136364,0.0 -0.727273,0.136364,-0.407273 -0.407273,0.136364,-0.727273 -0.0,0.136364,-0.727273 -0.909091,0.136364,0.0 -0.909091,0.136364,-0.509091 -0.509091,0.136364,-0.909091 -0.0,0.136364,-0.909091 --0.305455,0.0454545,-0.545455 --0.545455,0.0454545,-0.305455 --0.545455,0.0454545,0.0 --0.407273,0.136364,-0.727273 --0.727273,0.136364,-0.407273 --0.727273,0.136364,0.0 --0.509091,0.136364,-0.909091 --0.909091,0.136364,-0.509091 --0.909091,0.136364,0.0 --0.545455,0.0454545,0.305455 --0.305455,0.0454545,0.545455 -0.0,0.0454545,0.545455 --0.727273,0.136364,0.407273 --0.407273,0.136364,0.727273 -0.0,0.136364,0.727273 --0.909091,0.136364,0.509091 --0.509091,0.136364,0.909091 -0.0,0.136364,0.909091 -0.305455,0.0454545,0.545455 -0.545455,0.0454545,0.305455 -0.407273,0.136364,0.727273 -0.727273,0.136364,0.407273 -0.509091,0.136364,0.909091 -0.909091,0.136364,0.509091 -1.0,0.136364,0.0 -1.0,0.136364,-0.56 -0.56,0.136364,-1.0 -0.0,0.136364,-1.0 -1.0,0.0909091,0.0 -1.0,0.0909091,-0.56 -0.56,0.0909091,-1.0 -0.0,0.0909091,-1.0 -0.909091,0.0909091,0.0 -0.909091,0.0909091,-0.509091 -0.509091,0.0909091,-0.909091 -0.0,0.0909091,-0.909091 --0.56,0.136364,-1.0 --1.0,0.136364,-0.56 --1.0,0.136364,0.0 --0.56,0.0909091,-1.0 --1.0,0.0909091,-0.56 --1.0,0.0909091,0.0 --0.509091,0.0909091,-0.909091 --0.909091,0.0909091,-0.509091 --0.909091,0.0909091,0.0 --1.0,0.136364,0.56 --0.56,0.136364,1.0 -0.0,0.136364,1.0 --1.0,0.0909091,0.56 --0.56,0.0909091,1.0 -0.0,0.0909091,1.0 --0.909091,0.0909091,0.509091 --0.509091,0.0909091,0.909091 -0.0,0.0909091,0.909091 -0.56,0.136364,1.0 -1.0,0.136364,0.56 -0.56,0.0909091,1.0 -1.0,0.0909091,0.56 -0.509091,0.0909091,0.909091 -0.909091,0.0909091,0.509091 -0.727273,0.0909091,0.0 -0.727273,0.0909091,-0.407273 -0.407273,0.0909091,-0.727273 -0.0,0.0909091,-0.727273 -0.545455,0.0,0.0 -0.545455,0.0,-0.305455 -0.305455,0.0,-0.545455 -0.0,0.0,-0.545455 -0.318182,0.0,0.0 -0.318182,0.0,-0.178182 -0.178182,0.0,-0.318182 -0.0,0.0,-0.318182 --0.407273,0.0909091,-0.727273 --0.727273,0.0909091,-0.407273 --0.727273,0.0909091,0.0 --0.305455,0.0,-0.545455 --0.545455,0.0,-0.305455 --0.545455,0.0,0.0 --0.178182,0.0,-0.318182 --0.318182,0.0,-0.178182 --0.318182,0.0,0.0 --0.727273,0.0909091,0.407273 --0.407273,0.0909091,0.727273 -0.0,0.0909091,0.727273 --0.545455,0.0,0.305455 --0.305455,0.0,0.545455 -0.0,0.0,0.545455 --0.318182,0.0,0.178182 --0.178182,0.0,0.318182 -0.0,0.0,0.318182 -0.407273,0.0909091,0.727273 -0.727273,0.0909091,0.407273 -0.305455,0.0,0.545455 -0.545455,0.0,0.305455 -0.178182,0.0,0.318182 -0.318182,0.0,0.178182 -0.272727,0.0454545,0.0 -0.272727,0.0454545,-0.152727 -0.152727,0.0454545,-0.272727 -0.0,0.0454545,-0.272727 -0.409091,0.272727,0.0 -0.409091,0.272727,-0.229091 -0.229091,0.272727,-0.409091 -0.0,0.272727,-0.409091 -0.409091,0.545455,0.0 -0.409091,0.545455,-0.229091 -0.229091,0.545455,-0.409091 -0.0,0.545455,-0.409091 --0.152727,0.0454545,-0.272727 --0.272727,0.0454545,-0.152727 --0.272727,0.0454545,0.0 --0.229091,0.272727,-0.409091 --0.409091,0.272727,-0.229091 --0.409091,0.272727,0.0 --0.229091,0.545455,-0.409091 --0.409091,0.545455,-0.229091 --0.409091,0.545455,0.0 --0.272727,0.0454545,0.152727 --0.152727,0.0454545,0.272727 -0.0,0.0454545,0.272727 --0.409091,0.272727,0.229091 --0.229091,0.272727,0.409091 -0.0,0.272727,0.409091 --0.409091,0.545455,0.229091 --0.229091,0.545455,0.409091 -0.0,0.545455,0.409091 -0.152727,0.0454545,0.272727 -0.272727,0.0454545,0.152727 -0.229091,0.272727,0.409091 -0.409091,0.272727,0.229091 -0.229091,0.545455,0.409091 -0.409091,0.545455,0.229091 --0.454545,0.704545,0.0 --0.454545,0.704545,-0.0454545 --0.454545,0.772727,-0.0454545 --0.772727,0.863636,0.0 --0.772727,0.863636,-0.0454545 --0.818182,0.954545,-0.0454545 --0.818182,0.954545,0.0 --0.772727,0.522727,0.0 --0.772727,0.522727,-0.0454545 --0.909091,0.477273,-0.0454545 --0.909091,0.477273,0.0 --0.409091,0.363636,0.0 --0.409091,0.363636,-0.0454545 --0.409091,0.295455,-0.0454545 --0.409091,0.295455,0.0 --0.454545,0.772727,0.0454545 --0.454545,0.704545,0.0454545 --0.818182,0.954545,0.0454545 --0.772727,0.863636,0.0454545 --0.909091,0.477273,0.0454545 --0.772727,0.522727,0.0454545 --0.409091,0.295455,0.0454545 --0.409091,0.363636,0.0454545 -# reverse-patches diff --git a/demos/quick3d/tea_service/qml/teapot-body.bez b/demos/quick3d/tea_service/qml/teapot-body.bez deleted file mode 100644 index 614daf09..00000000 --- a/demos/quick3d/tea_service/qml/teapot-body.bez +++ /dev/null @@ -1,332 +0,0 @@ -24 -1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 -4,17,18,19,8,20,21,22,12,23,24,25,16,26,27,28 -19,29,30,31,22,32,33,34,25,35,36,37,28,38,39,40 -31,41,42,1,34,43,44,5,37,45,46,9,40,47,48,13 -13,14,15,16,49,50,51,52,53,54,55,56,57,58,59,60 -16,26,27,28,52,61,62,63,56,64,65,66,60,67,68,69 -28,38,39,40,63,70,71,72,66,73,74,75,69,76,77,78 -40,47,48,13,72,79,80,49,75,81,82,53,78,83,84,57 -57,58,59,60,85,86,87,88,89,90,91,92,93,94,95,96 -60,67,68,69,88,97,98,99,92,100,101,102,96,103,104,105 -69,76,77,78,99,106,107,108,102,109,110,111,105,112,113,114 -78,83,84,57,108,115,116,85,111,117,118,89,114,119,120,93 -204,204,204,204,207,208,209,210,211,211,211,211,212,213,214,215,4 -204,204,204,204,210,217,218,219,211,211,211,211,215,220,221,222,4 -204,204,204,204,219,224,225,226,211,211,211,211,222,227,228,229,4 -204,204,204,204,226,230,231,207,211,211,211,211,229,232,233,212,4 -212,213,214,215,234,235,236,237,238,239,240,241,242,243,244,245 -215,220,221,222,237,246,247,248,241,249,250,251,245,252,253,254 -222,227,228,229,248,255,256,257,251,258,259,260,254,261,262,263 -229,232,233,212,257,264,265,234,260,266,267,238,263,268,269,242 -270,270,270,270,279,280,281,282,275,276,277,278,271,272,273,274,4 -270,270,270,270,282,289,290,291,278,286,287,288,274,283,284,285,4 -270,270,270,270,291,298,299,300,288,295,296,297,285,292,293,294,4 -270,270,270,270,300,305,306,279,297,303,304,275,294,301,302,271,4 -306 -0.700000,0.450000,-0.000000 -0.700000,0.450000,0.392000 -0.392000,0.450000,0.700000 -0.000000,0.450000,0.700000 -0.668750,0.515625,-0.000000 -0.668750,0.515625,0.374500 -0.374500,0.515625,0.668750 -0.000000,0.515625,0.668750 -0.718750,0.515625,-0.000000 -0.718750,0.515625,0.402500 -0.402500,0.515625,0.718750 -0.000000,0.515625,0.718750 -0.750000,0.450000,-0.000000 -0.750000,0.450000,0.420000 -0.420000,0.450000,0.750000 -0.000000,0.450000,0.750000 --0.392000,0.450000,0.700000 --0.700000,0.450000,0.392000 --0.700000,0.450000,-0.000000 --0.374500,0.515625,0.668750 --0.668750,0.515625,0.374500 --0.668750,0.515625,-0.000000 --0.402500,0.515625,0.718750 --0.718750,0.515625,0.402500 --0.718750,0.515625,-0.000000 --0.420000,0.450000,0.750000 --0.750000,0.450000,0.420000 --0.750000,0.450000,-0.000000 --0.700000,0.450000,-0.392000 --0.392000,0.450000,-0.700000 -0.000000,0.450000,-0.700000 --0.668750,0.515625,-0.374500 --0.374500,0.515625,-0.668750 -0.000000,0.515625,-0.668750 --0.718750,0.515625,-0.402500 --0.402500,0.515625,-0.718750 -0.000000,0.515625,-0.718750 --0.750000,0.450000,-0.420000 --0.420000,0.450000,-0.750000 -0.000000,0.450000,-0.750000 -0.392000,0.450000,-0.700000 -0.700000,0.450000,-0.392000 -0.374500,0.515625,-0.668750 -0.668750,0.515625,-0.374500 -0.402500,0.515625,-0.718750 -0.718750,0.515625,-0.402500 -0.420000,0.450000,-0.750000 -0.750000,0.450000,-0.420000 -0.875000,0.187500,-0.000000 -0.875000,0.187500,0.490000 -0.490000,0.187500,0.875000 -0.000000,0.187500,0.875000 -1.000000,-0.075000,-0.000000 -1.000000,-0.075000,0.560000 -0.560000,-0.075000,1.000000 -0.000000,-0.075000,1.000000 -1.000000,-0.300000,-0.000000 -1.000000,-0.300000,0.560000 -0.560000,-0.300000,1.000000 -0.000000,-0.300000,1.000000 --0.490000,0.187500,0.875000 --0.875000,0.187500,0.490000 --0.875000,0.187500,-0.000000 --0.560000,-0.075000,1.000000 --1.000000,-0.075000,0.560000 --1.000000,-0.075000,-0.000000 --0.560000,-0.300000,1.000000 --1.000000,-0.300000,0.560000 --1.000000,-0.300000,-0.000000 --0.875000,0.187500,-0.490000 --0.490000,0.187500,-0.875000 -0.000000,0.187500,-0.875000 --1.000000,-0.075000,-0.560000 --0.560000,-0.075000,-1.000000 -0.000000,-0.075000,-1.000000 --1.000000,-0.300000,-0.560000 --0.560000,-0.300000,-1.000000 -0.000000,-0.300000,-1.000000 -0.490000,0.187500,-0.875000 -0.875000,0.187500,-0.490000 -0.560000,-0.075000,-1.000000 -1.000000,-0.075000,-0.560000 -0.560000,-0.300000,-1.000000 -1.000000,-0.300000,-0.560000 -1.000000,-0.525000,-0.000000 -1.000000,-0.525000,0.560000 -0.560000,-0.525000,1.000000 -0.000000,-0.525000,1.000000 -0.750000,-0.637500,-0.000000 -0.750000,-0.637500,0.420000 -0.420000,-0.637500,0.750000 -0.000000,-0.637500,0.750000 -0.750000,-0.675000,-0.000000 -0.750000,-0.675000,0.420000 -0.420000,-0.675000,0.750000 -0.000000,-0.675000,0.750000 --0.560000,-0.525000,1.000000 --1.000000,-0.525000,0.560000 --1.000000,-0.525000,-0.000000 --0.420000,-0.637500,0.750000 --0.750000,-0.637500,0.420000 --0.750000,-0.637500,-0.000000 --0.420000,-0.675000,0.750000 --0.750000,-0.675000,0.420000 --0.750000,-0.675000,-0.000000 --1.000000,-0.525000,-0.560000 --0.560000,-0.525000,-1.000000 -0.000000,-0.525000,-1.000000 --0.750000,-0.637500,-0.420000 --0.420000,-0.637500,-0.750000 -0.000000,-0.637500,-0.750000 --0.750000,-0.675000,-0.420000 --0.420000,-0.675000,-0.750000 -0.000000,-0.675000,-0.750000 -0.560000,-0.525000,-1.000000 -1.000000,-0.525000,-0.560000 -0.420000,-0.637500,-0.750000 -0.750000,-0.637500,-0.420000 -0.420000,-0.675000,-0.750000 -0.750000,-0.675000,-0.420000 --0.800000,0.262500,-0.000000 --0.800000,0.262500,0.150000 --0.750000,0.375000,0.150000 --0.750000,0.375000,-0.000000 --1.150000,0.262500,-0.000000 --1.150000,0.262500,0.150000 --1.250000,0.375000,0.150000 --1.250000,0.375000,-0.000000 --1.350000,0.262500,-0.000000 --1.350000,0.262500,0.150000 --1.500000,0.375000,0.150000 --1.500000,0.375000,-0.000000 --1.350000,0.150000,-0.000000 --1.350000,0.150000,0.150000 --1.500000,0.150000,0.150000 --1.500000,0.150000,-0.000000 --0.750000,0.375000,-0.150000 --0.800000,0.262500,-0.150000 --1.250000,0.375000,-0.150000 --1.150000,0.262500,-0.150000 --1.500000,0.375000,-0.150000 --1.350000,0.262500,-0.150000 --1.500000,0.150000,-0.150000 --1.350000,0.150000,-0.150000 --1.350000,0.037500,-0.000000 --1.350000,0.037500,0.150000 --1.500000,-0.075000,0.150000 --1.500000,-0.075000,-0.000000 --1.250000,-0.187500,-0.000000 --1.250000,-0.187500,0.150000 --1.325000,-0.281250,0.150000 --1.325000,-0.281250,-0.000000 --1.000000,-0.300000,0.150000 --0.950000,-0.450000,0.150000 --0.950000,-0.450000,-0.000000 --1.500000,-0.075000,-0.150000 --1.350000,0.037500,-0.150000 --1.325000,-0.281250,-0.150000 --1.250000,-0.187500,-0.150000 --0.950000,-0.450000,-0.150000 --1.000000,-0.300000,-0.150000 -0.850000,-0.037500,-0.000000 -0.850000,-0.037500,0.330000 -0.850000,-0.450000,0.330000 -0.850000,-0.450000,-0.000000 -1.300000,-0.037500,-0.000000 -1.300000,-0.037500,0.330000 -1.550000,-0.337500,0.330000 -1.550000,-0.337500,-0.000000 -1.150000,0.300000,-0.000000 -1.150000,0.300000,0.125000 -1.200000,0.262500,0.125000 -1.200000,0.262500,-0.000000 -1.350000,0.450000,-0.000000 -1.350000,0.450000,0.125000 -1.650000,0.450000,0.125000 -1.650000,0.450000,-0.000000 -0.850000,-0.450000,-0.330000 -0.850000,-0.037500,-0.330000 -1.550000,-0.337500,-0.330000 -1.300000,-0.037500,-0.330000 -1.200000,0.262500,-0.125000 -1.150000,0.300000,-0.125000 -1.650000,0.450000,-0.125000 -1.350000,0.450000,-0.125000 -1.400000,0.487500,-0.000000 -1.400000,0.487500,0.125000 -1.762500,0.496875,0.125000 -1.762500,0.496875,-0.000000 -1.450000,0.487500,-0.000000 -1.450000,0.487500,0.075000 -1.725000,0.506250,0.075000 -1.725000,0.506250,-0.000000 -1.400000,0.450000,-0.000000 -1.400000,0.450000,0.075000 -1.600000,0.450000,0.075000 -1.600000,0.450000,-0.000000 -1.762500,0.496875,-0.125000 -1.400000,0.487500,-0.125000 -1.725000,0.506250,-0.075000 -1.450000,0.487500,-0.075000 -1.600000,0.450000,-0.075000 -1.400000,0.450000,-0.075000 -0.000000,0.825000,-0.000000 -0.000000,0.825000,0.001000 -0.001000,0.825000,-0.000000 -0.400000,0.825000,-0.000000 -0.400000,0.825000,0.225000 -0.225000,0.825000,0.400000 -0.000000,0.825000,0.400000 -0.000000,0.675000,-0.000000 -0.100000,0.600000,-0.000000 -0.100000,0.600000,0.056000 -0.056000,0.600000,0.100000 -0.000000,0.600000,0.100000 --0.001000,0.825000,-0.000000 --0.225000,0.825000,0.400000 --0.400000,0.825000,0.225000 --0.400000,0.825000,-0.000000 --0.056000,0.600000,0.100000 --0.100000,0.600000,0.056000 --0.100000,0.600000,-0.000000 -0.000000,0.825000,-0.001000 --0.400000,0.825000,-0.225000 --0.225000,0.825000,-0.400000 -0.000000,0.825000,-0.400000 --0.100000,0.600000,-0.056000 --0.056000,0.600000,-0.100000 -0.000000,0.600000,-0.100000 -0.225000,0.825000,-0.400000 -0.400000,0.825000,-0.225000 -0.056000,0.600000,-0.100000 -0.100000,0.600000,-0.056000 -0.200000,0.525000,-0.000000 -0.200000,0.525000,0.112000 -0.112000,0.525000,0.200000 -0.000000,0.525000,0.200000 -0.650000,0.525000,-0.000000 -0.650000,0.525000,0.364000 -0.364000,0.525000,0.650000 -0.000000,0.525000,0.650000 -0.650000,0.450000,-0.000000 -0.650000,0.450000,0.364000 -0.364000,0.450000,0.650000 -0.000000,0.450000,0.650000 --0.112000,0.525000,0.200000 --0.200000,0.525000,0.112000 --0.200000,0.525000,-0.000000 --0.364000,0.525000,0.650000 --0.650000,0.525000,0.364000 --0.650000,0.525000,-0.000000 --0.364000,0.450000,0.650000 --0.650000,0.450000,0.364000 --0.650000,0.450000,-0.000000 --0.200000,0.525000,-0.112000 --0.112000,0.525000,-0.200000 -0.000000,0.525000,-0.200000 --0.650000,0.525000,-0.364000 --0.364000,0.525000,-0.650000 -0.000000,0.525000,-0.650000 --0.650000,0.450000,-0.364000 --0.364000,0.450000,-0.650000 -0.000000,0.450000,-0.650000 -0.112000,0.525000,-0.200000 -0.200000,0.525000,-0.112000 -0.364000,0.525000,-0.650000 -0.650000,0.525000,-0.364000 -0.364000,0.450000,-0.650000 -0.650000,0.450000,-0.364000 -0.000000,-0.750000,-0.000000 -0.750000,-0.675000,-0.000000 -0.750000,-0.675000,-0.420000 -0.420000,-0.675000,-0.750000 -0.000000,-0.675000,-0.750000 -0.750000,-0.712500,-0.000000 -0.750000,-0.712500,-0.420000 -0.420000,-0.712500,-0.750000 -0.000000,-0.712500,-0.750000 -0.712500,-0.750000,-0.000000 -0.712500,-0.750000,-0.399000 -0.399000,-0.750000,-0.712500 -0.000000,-0.750000,-0.712500 --0.420000,-0.675000,-0.750000 --0.750000,-0.675000,-0.420000 --0.750000,-0.675000,-0.000000 --0.420000,-0.712500,-0.750000 --0.750000,-0.712500,-0.420000 --0.750000,-0.712500,-0.000000 --0.399000,-0.750000,-0.712500 --0.712500,-0.750000,-0.399000 --0.712500,-0.750000,-0.000000 --0.750000,-0.675000,0.420000 --0.420000,-0.675000,0.750000 -0.000000,-0.675000,0.750000 --0.750000,-0.712500,0.420000 --0.420000,-0.712500,0.750000 -0.000000,-0.712500,0.750000 --0.712500,-0.750000,0.399000 --0.399000,-0.750000,0.712500 -0.000000,-0.750000,0.712500 -0.420000,-0.675000,0.750000 -0.750000,-0.675000,0.420000 -0.420000,-0.712500,0.750000 -0.750000,-0.712500,0.420000 -0.399000,-0.750000,0.712500 -0.712500,-0.750000,0.399000 diff --git a/demos/quick3d/tea_service/qml/teapot-handle.bez b/demos/quick3d/tea_service/qml/teapot-handle.bez deleted file mode 100644 index a2a3503e..00000000 --- a/demos/quick3d/tea_service/qml/teapot-handle.bez +++ /dev/null @@ -1,312 +0,0 @@ -4 -121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136 -124,137,138,121,128,139,140,125,132,141,142,129,136,143,144,133 -133,134,135,136,145,146,147,148,149,150,151,152,69,153,154,155 -136,143,144,133,148,156,157,145,152,158,159,149,155,160,161,69 -306 -0.700000,0.450000,-0.000000 -0.700000,0.450000,0.392000 -0.392000,0.450000,0.700000 -0.000000,0.450000,0.700000 -0.668750,0.515625,-0.000000 -0.668750,0.515625,0.374500 -0.374500,0.515625,0.668750 -0.000000,0.515625,0.668750 -0.718750,0.515625,-0.000000 -0.718750,0.515625,0.402500 -0.402500,0.515625,0.718750 -0.000000,0.515625,0.718750 -0.750000,0.450000,-0.000000 -0.750000,0.450000,0.420000 -0.420000,0.450000,0.750000 -0.000000,0.450000,0.750000 --0.392000,0.450000,0.700000 --0.700000,0.450000,0.392000 --0.700000,0.450000,-0.000000 --0.374500,0.515625,0.668750 --0.668750,0.515625,0.374500 --0.668750,0.515625,-0.000000 --0.402500,0.515625,0.718750 --0.718750,0.515625,0.402500 --0.718750,0.515625,-0.000000 --0.420000,0.450000,0.750000 --0.750000,0.450000,0.420000 --0.750000,0.450000,-0.000000 --0.700000,0.450000,-0.392000 --0.392000,0.450000,-0.700000 -0.000000,0.450000,-0.700000 --0.668750,0.515625,-0.374500 --0.374500,0.515625,-0.668750 -0.000000,0.515625,-0.668750 --0.718750,0.515625,-0.402500 --0.402500,0.515625,-0.718750 -0.000000,0.515625,-0.718750 --0.750000,0.450000,-0.420000 --0.420000,0.450000,-0.750000 -0.000000,0.450000,-0.750000 -0.392000,0.450000,-0.700000 -0.700000,0.450000,-0.392000 -0.374500,0.515625,-0.668750 -0.668750,0.515625,-0.374500 -0.402500,0.515625,-0.718750 -0.718750,0.515625,-0.402500 -0.420000,0.450000,-0.750000 -0.750000,0.450000,-0.420000 -0.875000,0.187500,-0.000000 -0.875000,0.187500,0.490000 -0.490000,0.187500,0.875000 -0.000000,0.187500,0.875000 -1.000000,-0.075000,-0.000000 -1.000000,-0.075000,0.560000 -0.560000,-0.075000,1.000000 -0.000000,-0.075000,1.000000 -1.000000,-0.300000,-0.000000 -1.000000,-0.300000,0.560000 -0.560000,-0.300000,1.000000 -0.000000,-0.300000,1.000000 --0.490000,0.187500,0.875000 --0.875000,0.187500,0.490000 --0.875000,0.187500,-0.000000 --0.560000,-0.075000,1.000000 --1.000000,-0.075000,0.560000 --1.000000,-0.075000,-0.000000 --0.560000,-0.300000,1.000000 --1.000000,-0.300000,0.560000 --1.000000,-0.300000,-0.000000 --0.875000,0.187500,-0.490000 --0.490000,0.187500,-0.875000 -0.000000,0.187500,-0.875000 --1.000000,-0.075000,-0.560000 --0.560000,-0.075000,-1.000000 -0.000000,-0.075000,-1.000000 --1.000000,-0.300000,-0.560000 --0.560000,-0.300000,-1.000000 -0.000000,-0.300000,-1.000000 -0.490000,0.187500,-0.875000 -0.875000,0.187500,-0.490000 -0.560000,-0.075000,-1.000000 -1.000000,-0.075000,-0.560000 -0.560000,-0.300000,-1.000000 -1.000000,-0.300000,-0.560000 -1.000000,-0.525000,-0.000000 -1.000000,-0.525000,0.560000 -0.560000,-0.525000,1.000000 -0.000000,-0.525000,1.000000 -0.750000,-0.637500,-0.000000 -0.750000,-0.637500,0.420000 -0.420000,-0.637500,0.750000 -0.000000,-0.637500,0.750000 -0.750000,-0.675000,-0.000000 -0.750000,-0.675000,0.420000 -0.420000,-0.675000,0.750000 -0.000000,-0.675000,0.750000 --0.560000,-0.525000,1.000000 --1.000000,-0.525000,0.560000 --1.000000,-0.525000,-0.000000 --0.420000,-0.637500,0.750000 --0.750000,-0.637500,0.420000 --0.750000,-0.637500,-0.000000 --0.420000,-0.675000,0.750000 --0.750000,-0.675000,0.420000 --0.750000,-0.675000,-0.000000 --1.000000,-0.525000,-0.560000 --0.560000,-0.525000,-1.000000 -0.000000,-0.525000,-1.000000 --0.750000,-0.637500,-0.420000 --0.420000,-0.637500,-0.750000 -0.000000,-0.637500,-0.750000 --0.750000,-0.675000,-0.420000 --0.420000,-0.675000,-0.750000 -0.000000,-0.675000,-0.750000 -0.560000,-0.525000,-1.000000 -1.000000,-0.525000,-0.560000 -0.420000,-0.637500,-0.750000 -0.750000,-0.637500,-0.420000 -0.420000,-0.675000,-0.750000 -0.750000,-0.675000,-0.420000 --0.800000,0.262500,-0.000000 --0.800000,0.262500,0.150000 --0.750000,0.375000,0.150000 --0.750000,0.375000,-0.000000 --1.150000,0.262500,-0.000000 --1.150000,0.262500,0.150000 --1.250000,0.375000,0.150000 --1.250000,0.375000,-0.000000 --1.350000,0.262500,-0.000000 --1.350000,0.262500,0.150000 --1.500000,0.375000,0.150000 --1.500000,0.375000,-0.000000 --1.350000,0.150000,-0.000000 --1.350000,0.150000,0.150000 --1.500000,0.150000,0.150000 --1.500000,0.150000,-0.000000 --0.750000,0.375000,-0.150000 --0.800000,0.262500,-0.150000 --1.250000,0.375000,-0.150000 --1.150000,0.262500,-0.150000 --1.500000,0.375000,-0.150000 --1.350000,0.262500,-0.150000 --1.500000,0.150000,-0.150000 --1.350000,0.150000,-0.150000 --1.350000,0.037500,-0.000000 --1.350000,0.037500,0.150000 --1.500000,-0.075000,0.150000 --1.500000,-0.075000,-0.000000 --1.250000,-0.187500,-0.000000 --1.250000,-0.187500,0.150000 --1.325000,-0.281250,0.150000 --1.325000,-0.281250,-0.000000 --1.000000,-0.300000,0.150000 --0.950000,-0.450000,0.150000 --0.950000,-0.450000,-0.000000 --1.500000,-0.075000,-0.150000 --1.350000,0.037500,-0.150000 --1.325000,-0.281250,-0.150000 --1.250000,-0.187500,-0.150000 --0.950000,-0.450000,-0.150000 --1.000000,-0.300000,-0.150000 -0.850000,-0.037500,-0.000000 -0.850000,-0.037500,0.330000 -0.850000,-0.450000,0.330000 -0.850000,-0.450000,-0.000000 -1.300000,-0.037500,-0.000000 -1.300000,-0.037500,0.330000 -1.550000,-0.337500,0.330000 -1.550000,-0.337500,-0.000000 -1.150000,0.300000,-0.000000 -1.150000,0.300000,0.125000 -1.200000,0.262500,0.125000 -1.200000,0.262500,-0.000000 -1.350000,0.450000,-0.000000 -1.350000,0.450000,0.125000 -1.650000,0.450000,0.125000 -1.650000,0.450000,-0.000000 -0.850000,-0.450000,-0.330000 -0.850000,-0.037500,-0.330000 -1.550000,-0.337500,-0.330000 -1.300000,-0.037500,-0.330000 -1.200000,0.262500,-0.125000 -1.150000,0.300000,-0.125000 -1.650000,0.450000,-0.125000 -1.350000,0.450000,-0.125000 -1.400000,0.487500,-0.000000 -1.400000,0.487500,0.125000 -1.762500,0.496875,0.125000 -1.762500,0.496875,-0.000000 -1.450000,0.487500,-0.000000 -1.450000,0.487500,0.075000 -1.725000,0.506250,0.075000 -1.725000,0.506250,-0.000000 -1.400000,0.450000,-0.000000 -1.400000,0.450000,0.075000 -1.600000,0.450000,0.075000 -1.600000,0.450000,-0.000000 -1.762500,0.496875,-0.125000 -1.400000,0.487500,-0.125000 -1.725000,0.506250,-0.075000 -1.450000,0.487500,-0.075000 -1.600000,0.450000,-0.075000 -1.400000,0.450000,-0.075000 -0.000000,0.825000,-0.000000 -0.000000,0.825000,0.001000 -0.001000,0.825000,-0.000000 -0.400000,0.825000,-0.000000 -0.400000,0.825000,0.225000 -0.225000,0.825000,0.400000 -0.000000,0.825000,0.400000 -0.000000,0.675000,-0.000000 -0.100000,0.600000,-0.000000 -0.100000,0.600000,0.056000 -0.056000,0.600000,0.100000 -0.000000,0.600000,0.100000 --0.001000,0.825000,-0.000000 --0.225000,0.825000,0.400000 --0.400000,0.825000,0.225000 --0.400000,0.825000,-0.000000 --0.056000,0.600000,0.100000 --0.100000,0.600000,0.056000 --0.100000,0.600000,-0.000000 -0.000000,0.825000,-0.001000 --0.400000,0.825000,-0.225000 --0.225000,0.825000,-0.400000 -0.000000,0.825000,-0.400000 --0.100000,0.600000,-0.056000 --0.056000,0.600000,-0.100000 -0.000000,0.600000,-0.100000 -0.225000,0.825000,-0.400000 -0.400000,0.825000,-0.225000 -0.056000,0.600000,-0.100000 -0.100000,0.600000,-0.056000 -0.200000,0.525000,-0.000000 -0.200000,0.525000,0.112000 -0.112000,0.525000,0.200000 -0.000000,0.525000,0.200000 -0.650000,0.525000,-0.000000 -0.650000,0.525000,0.364000 -0.364000,0.525000,0.650000 -0.000000,0.525000,0.650000 -0.650000,0.450000,-0.000000 -0.650000,0.450000,0.364000 -0.364000,0.450000,0.650000 -0.000000,0.450000,0.650000 --0.112000,0.525000,0.200000 --0.200000,0.525000,0.112000 --0.200000,0.525000,-0.000000 --0.364000,0.525000,0.650000 --0.650000,0.525000,0.364000 --0.650000,0.525000,-0.000000 --0.364000,0.450000,0.650000 --0.650000,0.450000,0.364000 --0.650000,0.450000,-0.000000 --0.200000,0.525000,-0.112000 --0.112000,0.525000,-0.200000 -0.000000,0.525000,-0.200000 --0.650000,0.525000,-0.364000 --0.364000,0.525000,-0.650000 -0.000000,0.525000,-0.650000 --0.650000,0.450000,-0.364000 --0.364000,0.450000,-0.650000 -0.000000,0.450000,-0.650000 -0.112000,0.525000,-0.200000 -0.200000,0.525000,-0.112000 -0.364000,0.525000,-0.650000 -0.650000,0.525000,-0.364000 -0.364000,0.450000,-0.650000 -0.650000,0.450000,-0.364000 -0.000000,-0.750000,-0.000000 -0.750000,-0.675000,-0.000000 -0.750000,-0.675000,-0.420000 -0.420000,-0.675000,-0.750000 -0.000000,-0.675000,-0.750000 -0.750000,-0.712500,-0.000000 -0.750000,-0.712500,-0.420000 -0.420000,-0.712500,-0.750000 -0.000000,-0.712500,-0.750000 -0.712500,-0.750000,-0.000000 -0.712500,-0.750000,-0.399000 -0.399000,-0.750000,-0.712500 -0.000000,-0.750000,-0.712500 --0.420000,-0.675000,-0.750000 --0.750000,-0.675000,-0.420000 --0.750000,-0.675000,-0.000000 --0.420000,-0.712500,-0.750000 --0.750000,-0.712500,-0.420000 --0.750000,-0.712500,-0.000000 --0.399000,-0.750000,-0.712500 --0.712500,-0.750000,-0.399000 --0.712500,-0.750000,-0.000000 --0.750000,-0.675000,0.420000 --0.420000,-0.675000,0.750000 -0.000000,-0.675000,0.750000 --0.750000,-0.712500,0.420000 --0.420000,-0.712500,0.750000 -0.000000,-0.712500,0.750000 --0.712500,-0.750000,0.399000 --0.399000,-0.750000,0.712500 -0.000000,-0.750000,0.712500 -0.420000,-0.675000,0.750000 -0.750000,-0.675000,0.420000 -0.420000,-0.712500,0.750000 -0.750000,-0.712500,0.420000 -0.399000,-0.750000,0.712500 -0.712500,-0.750000,0.399000 diff --git a/demos/quick3d/tea_service/qml/teapot-spout.bez b/demos/quick3d/tea_service/qml/teapot-spout.bez deleted file mode 100644 index 7674812e..00000000 --- a/demos/quick3d/tea_service/qml/teapot-spout.bez +++ /dev/null @@ -1,312 +0,0 @@ -4 -162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177 -165,178,179,162,169,180,181,166,173,182,183,170,177,184,185,174 -174,175,176,177,186,187,188,189,190,191,192,193,194,195,196,197 -177,184,185,174,189,198,199,186,193,200,201,190,197,202,203,194 -306 -0.700000,0.450000,-0.000000 -0.700000,0.450000,0.392000 -0.392000,0.450000,0.700000 -0.000000,0.450000,0.700000 -0.668750,0.515625,-0.000000 -0.668750,0.515625,0.374500 -0.374500,0.515625,0.668750 -0.000000,0.515625,0.668750 -0.718750,0.515625,-0.000000 -0.718750,0.515625,0.402500 -0.402500,0.515625,0.718750 -0.000000,0.515625,0.718750 -0.750000,0.450000,-0.000000 -0.750000,0.450000,0.420000 -0.420000,0.450000,0.750000 -0.000000,0.450000,0.750000 --0.392000,0.450000,0.700000 --0.700000,0.450000,0.392000 --0.700000,0.450000,-0.000000 --0.374500,0.515625,0.668750 --0.668750,0.515625,0.374500 --0.668750,0.515625,-0.000000 --0.402500,0.515625,0.718750 --0.718750,0.515625,0.402500 --0.718750,0.515625,-0.000000 --0.420000,0.450000,0.750000 --0.750000,0.450000,0.420000 --0.750000,0.450000,-0.000000 --0.700000,0.450000,-0.392000 --0.392000,0.450000,-0.700000 -0.000000,0.450000,-0.700000 --0.668750,0.515625,-0.374500 --0.374500,0.515625,-0.668750 -0.000000,0.515625,-0.668750 --0.718750,0.515625,-0.402500 --0.402500,0.515625,-0.718750 -0.000000,0.515625,-0.718750 --0.750000,0.450000,-0.420000 --0.420000,0.450000,-0.750000 -0.000000,0.450000,-0.750000 -0.392000,0.450000,-0.700000 -0.700000,0.450000,-0.392000 -0.374500,0.515625,-0.668750 -0.668750,0.515625,-0.374500 -0.402500,0.515625,-0.718750 -0.718750,0.515625,-0.402500 -0.420000,0.450000,-0.750000 -0.750000,0.450000,-0.420000 -0.875000,0.187500,-0.000000 -0.875000,0.187500,0.490000 -0.490000,0.187500,0.875000 -0.000000,0.187500,0.875000 -1.000000,-0.075000,-0.000000 -1.000000,-0.075000,0.560000 -0.560000,-0.075000,1.000000 -0.000000,-0.075000,1.000000 -1.000000,-0.300000,-0.000000 -1.000000,-0.300000,0.560000 -0.560000,-0.300000,1.000000 -0.000000,-0.300000,1.000000 --0.490000,0.187500,0.875000 --0.875000,0.187500,0.490000 --0.875000,0.187500,-0.000000 --0.560000,-0.075000,1.000000 --1.000000,-0.075000,0.560000 --1.000000,-0.075000,-0.000000 --0.560000,-0.300000,1.000000 --1.000000,-0.300000,0.560000 --1.000000,-0.300000,-0.000000 --0.875000,0.187500,-0.490000 --0.490000,0.187500,-0.875000 -0.000000,0.187500,-0.875000 --1.000000,-0.075000,-0.560000 --0.560000,-0.075000,-1.000000 -0.000000,-0.075000,-1.000000 --1.000000,-0.300000,-0.560000 --0.560000,-0.300000,-1.000000 -0.000000,-0.300000,-1.000000 -0.490000,0.187500,-0.875000 -0.875000,0.187500,-0.490000 -0.560000,-0.075000,-1.000000 -1.000000,-0.075000,-0.560000 -0.560000,-0.300000,-1.000000 -1.000000,-0.300000,-0.560000 -1.000000,-0.525000,-0.000000 -1.000000,-0.525000,0.560000 -0.560000,-0.525000,1.000000 -0.000000,-0.525000,1.000000 -0.750000,-0.637500,-0.000000 -0.750000,-0.637500,0.420000 -0.420000,-0.637500,0.750000 -0.000000,-0.637500,0.750000 -0.750000,-0.675000,-0.000000 -0.750000,-0.675000,0.420000 -0.420000,-0.675000,0.750000 -0.000000,-0.675000,0.750000 --0.560000,-0.525000,1.000000 --1.000000,-0.525000,0.560000 --1.000000,-0.525000,-0.000000 --0.420000,-0.637500,0.750000 --0.750000,-0.637500,0.420000 --0.750000,-0.637500,-0.000000 --0.420000,-0.675000,0.750000 --0.750000,-0.675000,0.420000 --0.750000,-0.675000,-0.000000 --1.000000,-0.525000,-0.560000 --0.560000,-0.525000,-1.000000 -0.000000,-0.525000,-1.000000 --0.750000,-0.637500,-0.420000 --0.420000,-0.637500,-0.750000 -0.000000,-0.637500,-0.750000 --0.750000,-0.675000,-0.420000 --0.420000,-0.675000,-0.750000 -0.000000,-0.675000,-0.750000 -0.560000,-0.525000,-1.000000 -1.000000,-0.525000,-0.560000 -0.420000,-0.637500,-0.750000 -0.750000,-0.637500,-0.420000 -0.420000,-0.675000,-0.750000 -0.750000,-0.675000,-0.420000 --0.800000,0.262500,-0.000000 --0.800000,0.262500,0.150000 --0.750000,0.375000,0.150000 --0.750000,0.375000,-0.000000 --1.150000,0.262500,-0.000000 --1.150000,0.262500,0.150000 --1.250000,0.375000,0.150000 --1.250000,0.375000,-0.000000 --1.350000,0.262500,-0.000000 --1.350000,0.262500,0.150000 --1.500000,0.375000,0.150000 --1.500000,0.375000,-0.000000 --1.350000,0.150000,-0.000000 --1.350000,0.150000,0.150000 --1.500000,0.150000,0.150000 --1.500000,0.150000,-0.000000 --0.750000,0.375000,-0.150000 --0.800000,0.262500,-0.150000 --1.250000,0.375000,-0.150000 --1.150000,0.262500,-0.150000 --1.500000,0.375000,-0.150000 --1.350000,0.262500,-0.150000 --1.500000,0.150000,-0.150000 --1.350000,0.150000,-0.150000 --1.350000,0.037500,-0.000000 --1.350000,0.037500,0.150000 --1.500000,-0.075000,0.150000 --1.500000,-0.075000,-0.000000 --1.250000,-0.187500,-0.000000 --1.250000,-0.187500,0.150000 --1.325000,-0.281250,0.150000 --1.325000,-0.281250,-0.000000 --1.000000,-0.300000,0.150000 --0.950000,-0.450000,0.150000 --0.950000,-0.450000,-0.000000 --1.500000,-0.075000,-0.150000 --1.350000,0.037500,-0.150000 --1.325000,-0.281250,-0.150000 --1.250000,-0.187500,-0.150000 --0.950000,-0.450000,-0.150000 --1.000000,-0.300000,-0.150000 -0.850000,-0.037500,-0.000000 -0.850000,-0.037500,0.330000 -0.850000,-0.450000,0.330000 -0.850000,-0.450000,-0.000000 -1.300000,-0.037500,-0.000000 -1.300000,-0.037500,0.330000 -1.550000,-0.337500,0.330000 -1.550000,-0.337500,-0.000000 -1.150000,0.300000,-0.000000 -1.150000,0.300000,0.125000 -1.200000,0.262500,0.125000 -1.200000,0.262500,-0.000000 -1.350000,0.450000,-0.000000 -1.350000,0.450000,0.125000 -1.650000,0.450000,0.125000 -1.650000,0.450000,-0.000000 -0.850000,-0.450000,-0.330000 -0.850000,-0.037500,-0.330000 -1.550000,-0.337500,-0.330000 -1.300000,-0.037500,-0.330000 -1.200000,0.262500,-0.125000 -1.150000,0.300000,-0.125000 -1.650000,0.450000,-0.125000 -1.350000,0.450000,-0.125000 -1.400000,0.487500,-0.000000 -1.400000,0.487500,0.125000 -1.762500,0.496875,0.125000 -1.762500,0.496875,-0.000000 -1.450000,0.487500,-0.000000 -1.450000,0.487500,0.075000 -1.725000,0.506250,0.075000 -1.725000,0.506250,-0.000000 -1.400000,0.450000,-0.000000 -1.400000,0.450000,0.075000 -1.600000,0.450000,0.075000 -1.600000,0.450000,-0.000000 -1.762500,0.496875,-0.125000 -1.400000,0.487500,-0.125000 -1.725000,0.506250,-0.075000 -1.450000,0.487500,-0.075000 -1.600000,0.450000,-0.075000 -1.400000,0.450000,-0.075000 -0.000000,0.825000,-0.000000 -0.000000,0.825000,0.001000 -0.001000,0.825000,-0.000000 -0.400000,0.825000,-0.000000 -0.400000,0.825000,0.225000 -0.225000,0.825000,0.400000 -0.000000,0.825000,0.400000 -0.000000,0.675000,-0.000000 -0.100000,0.600000,-0.000000 -0.100000,0.600000,0.056000 -0.056000,0.600000,0.100000 -0.000000,0.600000,0.100000 --0.001000,0.825000,-0.000000 --0.225000,0.825000,0.400000 --0.400000,0.825000,0.225000 --0.400000,0.825000,-0.000000 --0.056000,0.600000,0.100000 --0.100000,0.600000,0.056000 --0.100000,0.600000,-0.000000 -0.000000,0.825000,-0.001000 --0.400000,0.825000,-0.225000 --0.225000,0.825000,-0.400000 -0.000000,0.825000,-0.400000 --0.100000,0.600000,-0.056000 --0.056000,0.600000,-0.100000 -0.000000,0.600000,-0.100000 -0.225000,0.825000,-0.400000 -0.400000,0.825000,-0.225000 -0.056000,0.600000,-0.100000 -0.100000,0.600000,-0.056000 -0.200000,0.525000,-0.000000 -0.200000,0.525000,0.112000 -0.112000,0.525000,0.200000 -0.000000,0.525000,0.200000 -0.650000,0.525000,-0.000000 -0.650000,0.525000,0.364000 -0.364000,0.525000,0.650000 -0.000000,0.525000,0.650000 -0.650000,0.450000,-0.000000 -0.650000,0.450000,0.364000 -0.364000,0.450000,0.650000 -0.000000,0.450000,0.650000 --0.112000,0.525000,0.200000 --0.200000,0.525000,0.112000 --0.200000,0.525000,-0.000000 --0.364000,0.525000,0.650000 --0.650000,0.525000,0.364000 --0.650000,0.525000,-0.000000 --0.364000,0.450000,0.650000 --0.650000,0.450000,0.364000 --0.650000,0.450000,-0.000000 --0.200000,0.525000,-0.112000 --0.112000,0.525000,-0.200000 -0.000000,0.525000,-0.200000 --0.650000,0.525000,-0.364000 --0.364000,0.525000,-0.650000 -0.000000,0.525000,-0.650000 --0.650000,0.450000,-0.364000 --0.364000,0.450000,-0.650000 -0.000000,0.450000,-0.650000 -0.112000,0.525000,-0.200000 -0.200000,0.525000,-0.112000 -0.364000,0.525000,-0.650000 -0.650000,0.525000,-0.364000 -0.364000,0.450000,-0.650000 -0.650000,0.450000,-0.364000 -0.000000,-0.750000,-0.000000 -0.750000,-0.675000,-0.000000 -0.750000,-0.675000,-0.420000 -0.420000,-0.675000,-0.750000 -0.000000,-0.675000,-0.750000 -0.750000,-0.712500,-0.000000 -0.750000,-0.712500,-0.420000 -0.420000,-0.712500,-0.750000 -0.000000,-0.712500,-0.750000 -0.712500,-0.750000,-0.000000 -0.712500,-0.750000,-0.399000 -0.399000,-0.750000,-0.712500 -0.000000,-0.750000,-0.712500 --0.420000,-0.675000,-0.750000 --0.750000,-0.675000,-0.420000 --0.750000,-0.675000,-0.000000 --0.420000,-0.712500,-0.750000 --0.750000,-0.712500,-0.420000 --0.750000,-0.712500,-0.000000 --0.399000,-0.750000,-0.712500 --0.712500,-0.750000,-0.399000 --0.712500,-0.750000,-0.000000 --0.750000,-0.675000,0.420000 --0.420000,-0.675000,0.750000 -0.000000,-0.675000,0.750000 --0.750000,-0.712500,0.420000 --0.420000,-0.712500,0.750000 -0.000000,-0.712500,0.750000 --0.712500,-0.750000,0.399000 --0.399000,-0.750000,0.712500 -0.000000,-0.750000,0.712500 -0.420000,-0.675000,0.750000 -0.750000,-0.675000,0.420000 -0.420000,-0.712500,0.750000 -0.750000,-0.712500,0.420000 -0.399000,-0.750000,0.712500 -0.712500,-0.750000,0.399000 diff --git a/demos/quick3d/tea_service/qml/teaservice.qml b/demos/quick3d/tea_service/qml/teaservice.qml deleted file mode 100644 index 0812b4ac..00000000 --- a/demos/quick3d/tea_service/qml/teaservice.qml +++ /dev/null @@ -1,382 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import Qt3D 1.0 - -Viewport { - width: 850 - height: 480 - picking: true - //showPicking: true - - camera: Camera { - eye: Qt.vector3d(0, 3, 10) - } - - Item3D { - id: teapot - transform: [ - Rotation3D { - id: teapot_rotate1 - angle: 0 - axis: Qt.vector3d(0, 1, 0) - }, - Rotation3D { - id: teapot_rotate2 - angle: 0 - axis: Qt.vector3d(0, 0, 1) - } - ] - property bool bounce: false - - Item3D { - id: body - mesh: Mesh { source: "teapot-body.bez" } - effect: Effect { - material: china - } - - onHoverEnter: { effect.material = china_highlight } - onHoverLeave: { effect.material = china } - onClicked: { teapot.bounce = true } - } - - Item3D { - id: handle - mesh: Mesh { source: "teapot-handle.bez" } - effect: Effect { - material: china - } - - onHoverEnter: { effect.material = china_highlight } - onHoverLeave: { effect.material = china } - onClicked: { - if (teapot.state == "facing_left" || - teapot.state == "pour_left") { - teapot.state = "facing_right"; - } else if (teapot.state == "facing_right" || - teapot.state == "pour_right") { - teapot_rotate1.angle = 0; - teapot.state = "facing_left"; - } else { - teapot.state = "facing_left"; - } - } - } - - Item3D { - id: spout - mesh: Mesh { source: "teapot-spout.bez" } - effect: Effect { - material: china - } - - onHoverEnter: { effect.material = china_highlight } - onHoverLeave: { effect.material = china } - onClicked: { - if (teapot.state == "facing_left") { - teapot.state = "pour_left"; - } else if (teapot.state == "pour_left") { - teapot.state = "facing_left"; - teapot.state = "pour_left"; - } else if (teapot.state == "pour_right" || - teapot.state == "facing_right") { - teapot.state = ""; - teapot_rotate1.angle = 0; - teapot.state = "pour_right"; - } else { - teapot.state = "pour_right"; - } - } - } - - SequentialAnimation on y{ - running: teapot.bounce - NumberAnimation { to : 1.0; duration: 300; easing.type: "OutQuad" } - NumberAnimation { to : 0.0; duration: 300; easing.type: "OutBounce" } - onCompleted: teapot.bounce = false - } - - states: [ - State { - name: "facing_left" - PropertyChanges { - target: teapot_rotate1 - angle: 180 - } - }, - State { - name: "facing_right" - PropertyChanges { - target: teapot_rotate1 - angle: 360 - } - }, - State { - name: "pour_left" - PropertyChanges { - target: teapot - y: 0 - } - PropertyChanges { - target: teapot - x: 0 - } - PropertyChanges { - target: teapot_rotate1 - angle: 180 - } - PropertyChanges { - target: teapot_rotate2 - angle: 0 - } - }, - State { - name: "pour_right" - PropertyChanges { - target: teapot - y: 0 - } - PropertyChanges { - target: teapot - x: 0 - } - PropertyChanges { - target: teapot_rotate2 - angle: 0 - } - } - ] - - transitions: [ - Transition { - from: "*" - to: "facing_left" - NumberAnimation { - targets: teapot_rotate1 - properties: "angle" - duration: 300 - } - }, - Transition { - from: "*" - to: "facing_right" - NumberAnimation { - targets: teapot_rotate1 - properties: "angle" - duration: 300 - } - }, - Transition { - from: "*" - to: "pour_left" - SequentialAnimation { - ParallelAnimation { - NumberAnimation { - target: teapot - property: "y" - duration: 500 - to: 1 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot - property: "x" - duration: 500 - to: -0.5 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot_rotate2 - property: "angle" - duration: 500 - to: 45 - easing.type: "OutQuad" - } - } - PauseAnimation { duration: 700 } - ParallelAnimation { - NumberAnimation { - target: teapot - property: "y" - duration: 500 - to: 0 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot - property: "x" - duration: 500 - to: 0 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot_rotate2 - property: "angle" - duration: 500 - to: 0 - easing.type: "OutQuad" - } - } - } - }, - Transition { - from: "*" - to: "pour_right" - SequentialAnimation { - ParallelAnimation { - NumberAnimation { - target: teapot - property: "y" - duration: 500 - to: 1 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot - property: "x" - duration: 500 - to: 0.5 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot_rotate2 - property: "angle" - duration: 500 - to: -45 - easing.type: "OutQuad" - } - } - PauseAnimation { duration: 700 } - ParallelAnimation { - NumberAnimation { - target: teapot - property: "y" - duration: 500 - to: 0 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot - property: "x" - duration: 500 - to: 0 - easing.type: "OutQuad" - } - NumberAnimation { - target: teapot_rotate2 - property: "angle" - duration: 500 - to: 0 - easing.type: "OutQuad" - } - } - } - } - ] - } - - Teacup { - id: teacup1 - position: Qt.vector3d(-2.3, -0.75, 0.0) - } - - Teacup { - id: teacup2 - position: Qt.vector3d(2.3, -0.75, 0.0) - transform: Rotation3D { - angle: 180 - axis: Qt.vector3d(0, 1, 0) - } - } - - Teaspoon { - x: -1.7 - y: -0.58 - saucerY: teacup1.spoonY - } - - Teaspoon { - x: 1.7 - y: -0.58 - saucerY: teacup2.spoonY - } - - Mesh { - id: teacup_mesh - source: "teacup.bez" - } - - Mesh { - id: teaspoon_mesh - source: "teaspoon.bez" - } - - Material { - id: china - ambientColor: "#c09680" - specularColor: "#3c3c3c" - shininess: 128 - } - - Material { - id: china_highlight - ambientColor: "#ffc000" - specularColor: "#3c3c00" - shininess: 128 - } - - Material { - id: metal - ambientColor: "#ffffff" - diffuseColor: "#969696" - specularColor: "#ffffff" - shininess: 128 - } - - Material { - id: metal_highlight - ambientColor: "#ffff60" - diffuseColor: "#969660" - specularColor: "#ffffff" - shininess: 128 - } -} diff --git a/demos/quick3d/tea_service/qml/teaservice.qmlproject b/demos/quick3d/tea_service/qml/teaservice.qmlproject deleted file mode 100644 index d4909f86..00000000 --- a/demos/quick3d/tea_service/qml/teaservice.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/demos/quick3d/tea_service/qml/teaspoon.bez b/demos/quick3d/tea_service/qml/teaspoon.bez deleted file mode 100644 index c304fbde..00000000 --- a/demos/quick3d/tea_service/qml/teaspoon.bez +++ /dev/null @@ -1,275 +0,0 @@ -16 -1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 -17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32 -33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48 -49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 -65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80 -81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96 -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112 -113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128 -129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144 -145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160 -161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176 -177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192 -193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208 -209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224 -225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240 -241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256 -256 --0.000107143,0.205357,0.0 -0.0,0.196429,-0.0178571 -0.0,0.196429,-0.0178571 -0.000107143,0.205357,0.0 --0.0535714,0.205357,0.0 --0.0222714,0.178571,-0.0534286 -0.0222714,0.178571,-0.0534286 -0.0535714,0.205357,0.0 --0.107143,0.0952429,-0.0178571 --0.0446429,0.0952429,-0.0892857 -0.0446429,0.0952429,-0.0892857 -0.107143,0.0952429,-0.0178571 --0.107143,0.0,-0.0178571 --0.0446429,0.0,-0.0892857 -0.0446429,0.0,-0.0892857 -0.107143,0.0,-0.0178571 -0.000107143,0.205357,0.0 -0.000135714,0.207589,0.00446429 -0.000157143,0.216518,0.00446429 -0.000125,0.214286,0.0 -0.0535714,0.205357,0.0 -0.0613964,0.212054,0.0133571 -0.0714286,0.220982,0.015625 -0.0625,0.214286,0.0 -0.107143,0.0952429,-0.0178571 -0.122768,0.0952429,0.0 -0.142857,0.0952429,0.00446429 -0.125,0.0952429,-0.0178571 -0.107143,0.0,-0.0178571 -0.122768,0.0,0.0 -0.142857,0.0,0.00446429 -0.125,0.0,-0.0178571 -0.000125,0.214286,0.0 -0.0,0.205357,-0.0178571 -0.0,0.205357,-0.0178571 --0.000125,0.214286,0.0 -0.0625,0.214286,0.0 -0.0267857,0.1875,-0.0625 --0.0267857,0.1875,-0.0625 --0.0625,0.214286,0.0 -0.125,0.0952429,-0.0178571 -0.0535714,0.0952429,-0.107143 --0.0535714,0.0952429,-0.107143 --0.125,0.0952429,-0.0178571 -0.125,0.0,-0.0178571 -0.0535714,0.0,-0.107143 --0.0535714,0.0,-0.107143 --0.125,0.0,-0.0178571 --0.000125,0.214286,0.0 --0.000157143,0.216518,0.00446429 --0.000135714,0.207589,0.00446429 --0.000107143,0.205357,0.0 --0.0625,0.214286,0.0 --0.0714286,0.220982,0.015625 --0.0613964,0.212054,0.0133571 --0.0535714,0.205357,0.0 --0.125,0.0952429,-0.0178571 --0.142857,0.0952429,0.00446429 --0.122768,0.0952429,0.0 --0.107143,0.0952429,-0.0178571 --0.125,0.0,-0.0178571 --0.142857,0.0,0.00446429 --0.122768,0.0,0.0 --0.107143,0.0,-0.0178571 --0.107143,0.0,-0.0178571 --0.0446429,0.0,-0.0892857 -0.0446429,0.0,-0.0892857 -0.107143,0.0,-0.0178571 --0.107143,-0.142857,-0.0178571 --0.0446429,-0.142857,-0.0892857 -0.0446429,-0.142857,-0.0892857 -0.107143,-0.142857,-0.0178571 --0.0133929,-0.160714,0.0386893 --0.00557857,-0.160714,0.0386893 -0.00557857,-0.160714,0.0386893 -0.0133929,-0.160714,0.0386893 --0.0133929,-0.25,0.0535714 --0.00557857,-0.25,0.0535714 -0.00557857,-0.25,0.0535714 -0.0133929,-0.25,0.0535714 -0.107143,0.0,-0.0178571 -0.122768,0.0,0.0 -0.142857,0.0,0.00446429 -0.125,0.0,-0.0178571 -0.107143,-0.142857,-0.0178571 -0.122768,-0.142857,0.0 -0.142857,-0.142857,0.00446429 -0.125,-0.142857,-0.0178571 -0.0133929,-0.160714,0.0386893 -0.0153464,-0.160714,0.0386893 -0.0178571,-0.160714,0.0314357 -0.015625,-0.160714,0.0297607 -0.0133929,-0.25,0.0535714 -0.0153464,-0.25,0.0535714 -0.0178571,-0.25,0.0463179 -0.015625,-0.25,0.0446429 -0.125,0.0,-0.0178571 -0.0535714,0.0,-0.107143 --0.0535714,0.0,-0.107143 --0.125,0.0,-0.0178571 -0.125,-0.142857,-0.0178571 -0.0535714,-0.142857,-0.107143 --0.0535714,-0.142857,-0.107143 --0.125,-0.142857,-0.0178571 -0.015625,-0.160714,0.0297607 -0.00669643,-0.160714,0.0230643 --0.00781071,-0.160714,0.0208321 --0.015625,-0.160714,0.0297607 -0.015625,-0.25,0.0446429 -0.00669643,-0.25,0.0379464 --0.00781071,-0.25,0.0357143 --0.015625,-0.25,0.0446429 --0.125,0.0,-0.0178571 --0.142857,0.0,0.00446429 --0.122768,0.0,0.0 --0.107143,0.0,-0.0178571 --0.125,-0.142857,-0.0178571 --0.142857,-0.142857,0.00446429 --0.122768,-0.142857,0.0 --0.107143,-0.142857,-0.0178571 --0.015625,-0.160714,0.0297607 --0.0175786,-0.160714,0.0319929 --0.0153464,-0.160714,0.0386893 --0.0133929,-0.160714,0.0386893 --0.015625,-0.25,0.0446429 --0.0175786,-0.25,0.046875 --0.0153464,-0.25,0.0535714 --0.0133929,-0.25,0.0535714 --0.0133929,-0.25,0.0535714 --0.00557857,-0.25,0.0535714 -0.00557857,-0.25,0.0535714 -0.0133929,-0.25,0.0535714 --0.0133929,-0.46425,0.0892857 --0.00557857,-0.46425,0.0892857 -0.00557857,-0.46425,0.0892857 -0.0133929,-0.46425,0.0892857 --0.0446429,-0.678571,0.0535714 --0.00892857,-0.678571,0.0625 -0.00892857,-0.678571,0.0625 -0.0446429,-0.678571,0.0535714 --0.0446429,-0.857143,0.0357143 --0.00892857,-0.857143,0.0446429 -0.00892857,-0.857143,0.0446429 -0.0446429,-0.857143,0.0357143 -0.0133929,-0.25,0.0535714 -0.0153464,-0.25,0.0535714 -0.0178571,-0.25,0.0463179 -0.015625,-0.25,0.0446429 -0.0133929,-0.46425,0.0892857 -0.0153464,-0.464286,0.0892857 -0.0178571,-0.46425,0.0820321 -0.015625,-0.46425,0.0803571 -0.0446429,-0.678571,0.0535714 -0.0535714,-0.678571,0.0513393 -0.0535714,-0.678571,0.0334821 -0.0446429,-0.678571,0.0357143 -0.0446429,-0.857143,0.0357143 -0.0535714,-0.857143,0.0334821 -0.0535714,-0.857143,0.015625 -0.0446429,-0.857143,0.0178571 -0.015625,-0.25,0.0446429 -0.00669643,-0.25,0.0379464 --0.00781071,-0.25,0.0357143 --0.015625,-0.25,0.0446429 -0.015625,-0.46425,0.0803571 -0.00669643,-0.464286,0.0736607 --0.00781071,-0.46425,0.0714286 --0.015625,-0.46425,0.0803571 -0.0446429,-0.678571,0.0357143 -0.00892857,-0.678571,0.0446429 --0.00892857,-0.678571,0.0446429 --0.0446429,-0.678571,0.0357143 -0.0446429,-0.857143,0.0178571 -0.00892857,-0.857143,0.0267857 --0.00892857,-0.857143,0.0267857 --0.0446429,-0.857143,0.0178571 --0.015625,-0.25,0.0446429 --0.0175786,-0.25,0.046875 --0.0153464,-0.25,0.0535714 --0.0133929,-0.25,0.0535714 --0.015625,-0.46425,0.0803571 --0.0175786,-0.464286,0.0825893 --0.0153464,-0.464286,0.0892857 --0.0133929,-0.46425,0.0892857 --0.0446429,-0.678571,0.0357143 --0.0535714,-0.678571,0.0334821 --0.0535714,-0.678571,0.0513393 --0.0446429,-0.678571,0.0535714 --0.0446429,-0.857143,0.0178571 --0.0535714,-0.857143,0.015625 --0.0535714,-0.857143,0.0334821 --0.0446429,-0.857143,0.0357143 --0.0446429,-0.857143,0.0357143 --0.00892857,-0.857143,0.0446429 -0.00892857,-0.857143,0.0446429 -0.0446429,-0.857143,0.0357143 --0.0446429,-0.928571,0.0285714 --0.00892857,-0.928571,0.0375 -0.00892857,-0.928571,0.0375 -0.0446429,-0.928571,0.0285714 --0.0539286,-0.999643,0.0178571 -0.000357143,-0.999643,0.0178571 -0.0,-0.999643,0.0178571 -0.0535714,-0.999643,0.0178571 --0.000357143,-1,0.0178571 -0.000357143,-1,0.0178571 -0.0,-1,0.0178571 -0.0,-1,0.0178571 -0.0446429,-0.857143,0.0357143 -0.0535714,-0.857143,0.0334821 -0.0535714,-0.857143,0.015625 -0.0446429,-0.857143,0.0178571 -0.0446429,-0.928571,0.0285714 -0.0535714,-0.928571,0.0263393 -0.0535714,-0.928571,0.00848214 -0.0446429,-0.928571,0.0107143 -0.0535714,-0.999643,0.0178571 -0.0669643,-0.999643,0.0178571 -0.0673214,-0.999643,0.0 -0.0539286,-0.999643,0.0 -0.0,-1,0.0178571 -0.0,-1,0.0178571 -0.000357143,-1,0.0 -0.000357143,-1,0.0 -0.0446429,-0.857143,0.0178571 -0.00892857,-0.857143,0.0267857 --0.00892857,-0.857143,0.0267857 --0.0446429,-0.857143,0.0178571 -0.0446429,-0.928571,0.0107143 -0.00892857,-0.928571,0.0196429 --0.00892857,-0.928571,0.0196429 --0.0446429,-0.928571,0.0107143 -0.0539286,-0.999643,0.0 -0.000357143,-0.999643,0.0 --0.000357143,-0.999643,0.0 --0.0539286,-0.999643,0.0 -0.000357143,-1,0.0 -0.000357143,-1,0.0 --0.000357143,-1,0.0 --0.000357143,-1,0.0 --0.0446429,-0.857143,0.0178571 --0.0535714,-0.857143,0.015625 --0.0535714,-0.857143,0.0334821 --0.0446429,-0.857143,0.0357143 --0.0446429,-0.928571,0.0107143 --0.0535714,-0.928571,0.00848214 --0.0535714,-0.928571,0.0263393 --0.0446429,-0.928571,0.0285714 --0.0539286,-0.999643,0.0 --0.0673214,-0.999643,0.0 --0.0675,-0.999643,0.0178571 --0.0539286,-0.999643,0.0178571 --0.000357143,-1,0.0 --0.000357143,-1,0.0 --0.000535714,-1,0.0178571 --0.000357143,-1,0.0178571 -# reverse-patches diff --git a/demos/quick3d/tea_service/qtquick3d.ico b/demos/quick3d/tea_service/qtquick3d.ico Binary files differdeleted file mode 100644 index c695ac72..00000000 --- a/demos/quick3d/tea_service/qtquick3d.ico +++ /dev/null diff --git a/demos/quick3d/tea_service/qtquick3d.png b/demos/quick3d/tea_service/qtquick3d.png Binary files differdeleted file mode 100644 index 8351083e..00000000 --- a/demos/quick3d/tea_service/qtquick3d.png +++ /dev/null diff --git a/demos/quick3d/tea_service/tea_service.desktop b/demos/quick3d/tea_service/tea_service.desktop deleted file mode 100644 index d45e0812..00000000 --- a/demos/quick3d/tea_service/tea_service.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Tea Service -Icon=/usr/share/icons/hicolor/80x80/apps/qtquick3d.png -Exec=/usr/bin/invoker --type=e -s /usr/bin/tea_service -fullscreen -OnlyShowIn=X-MeeGo; -X-MeeGo-Logical-Id=qtn_comm_appname_tea_service diff --git a/demos/quick3d/tea_service/tea_service.pro b/demos/quick3d/tea_service/tea_service.pro deleted file mode 100644 index af610655..00000000 --- a/demos/quick3d/tea_service/tea_service.pro +++ /dev/null @@ -1,16 +0,0 @@ -TEMPLATE = app -TARGET = tea_service -CONFIG += qt warn_on - -INSTALL_DIRS = qml -CONFIG += qt3d_deploy_qml qt3dquick_deploy_pkg -include(../../../pkg.pri) -qtcAddDeployment() - -SOURCES += main.cpp - -OTHER_FILES += \ - tea_service.rc \ - tea_service.desktop - -RC_FILE = tea_service.rc diff --git a/demos/quick3d/tea_service/tea_service.rc b/demos/quick3d/tea_service/tea_service.rc deleted file mode 100644 index 1b6228c9..00000000 --- a/demos/quick3d/tea_service/tea_service.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "qtquick3d.ico" |