summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorRobert Brock <robert.brock@kdab.com>2016-05-09 09:27:23 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-05-15 13:44:34 +0000
commite0c32ec2552c13975b191ced99176a15c51c8193 (patch)
tree8e13ba6ea284db545dcaa9a9a68eaec82d869178 /examples
parent0d12f150dbf90063f45f9a4a6c05d00f3b5dad01 (diff)
Moved custom-mesh-cpp example to manual test
Part of an examples cleanup Change-Id: I80d7a41ade520c9253cb7e6d93ea40cef816d531 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/qt3d/custom-mesh-cpp/custom-mesh-cpp.pro8
-rw-r--r--examples/qt3d/custom-mesh-cpp/main.cpp253
-rw-r--r--examples/qt3d/qt3d.pro1
3 files changed, 0 insertions, 262 deletions
diff --git a/examples/qt3d/custom-mesh-cpp/custom-mesh-cpp.pro b/examples/qt3d/custom-mesh-cpp/custom-mesh-cpp.pro
deleted file mode 100644
index abbb3b771..000000000
--- a/examples/qt3d/custom-mesh-cpp/custom-mesh-cpp.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-!include( ../examples.pri ) {
- error( "Couldn't find the examples.pri file!" )
-}
-
-QT += 3dcore 3drender 3dinput 3dextras
-
-SOURCES += \
- main.cpp
diff --git a/examples/qt3d/custom-mesh-cpp/main.cpp b/examples/qt3d/custom-mesh-cpp/main.cpp
deleted file mode 100644
index 1544f3d01..000000000
--- a/examples/qt3d/custom-mesh-cpp/main.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt3D module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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$
-**
-****************************************************************************/
-
-#include <QGuiApplication>
-
-#include <Qt3DCore/QEntity>
-#include <Qt3DRender/QCamera>
-#include <Qt3DRender/QCameraLens>
-#include <Qt3DCore/QTransform>
-#include <Qt3DCore/QAspectEngine>
-
-#include <Qt3DInput/QInputAspect>
-
-#include <Qt3DRender/QRenderStateSet>
-#include <Qt3DRender/QRenderAspect>
-#include <Qt3DExtras/QForwardRenderer>
-#include <Qt3DExtras/QPerVertexColorMaterial>
-
-#include <Qt3DRender/QGeometryRenderer>
-#include <Qt3DRender/QGeometry>
-#include <Qt3DRender/QAttribute>
-#include <Qt3DRender/QBuffer>
-
-#include <QPropertyAnimation>
-#include <Qt3DExtras/qt3dwindow.h>
-#include <Qt3DExtras/qorbitcameracontroller.h>
-
-int main(int argc, char* argv[])
-{
- QGuiApplication app(argc, argv);
- Qt3DExtras::Qt3DWindow view;
- view.defaultFramegraph()->setClearColor(QColor::fromRgbF(0.0, 0.5, 1.0, 1.0));
-
- // Root entity
- Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity();
-
- // Camera
- Qt3DRender::QCamera *cameraEntity = view.camera();
-
- cameraEntity->lens()->setPerspectiveProjection(45.0f, 16.0f/9.0f, 0.1f, 1000.0f);
- cameraEntity->setPosition(QVector3D(0, 0, 40.0f));
- cameraEntity->setUpVector(QVector3D(0, 1, 0));
- cameraEntity->setViewCenter(QVector3D(0, 0, 0));
-
- // For camera controls
- Qt3DExtras::QOrbitCameraController *camController = new Qt3DExtras::QOrbitCameraController(rootEntity);
- camController->setCamera(cameraEntity);
-
- // Material
- Qt3DRender::QMaterial *material = new Qt3DExtras::QPerVertexColorMaterial(rootEntity);
-
- // Torus
- Qt3DCore::QEntity *customMeshEntity = new Qt3DCore::QEntity(rootEntity);
-
- // Transform
- Qt3DCore::QTransform *transform = new Qt3DCore::QTransform;
- transform->setScale(8.0f);
-
- // Custom Mesh (TetraHedron)
- Qt3DRender::QGeometryRenderer *customMeshRenderer = new Qt3DRender::QGeometryRenderer;
- Qt3DRender::QGeometry *customGeometry = new Qt3DRender::QGeometry(customMeshRenderer);
-
- Qt3DRender::QBuffer *vertexDataBuffer = new Qt3DRender::QBuffer(Qt3DRender::QBuffer::VertexBuffer, customGeometry);
- Qt3DRender::QBuffer *indexDataBuffer = new Qt3DRender::QBuffer(Qt3DRender::QBuffer::IndexBuffer, customGeometry);
-
- // vec3 for position
- // vec3 for colors
- // vec3 for normals
-
- /* 2
- /|\
- / | \
- / /3\ \
- 0/___\ 1
- */
-
- // 4 distinct vertices
- QByteArray vertexBufferData;
- vertexBufferData.resize(4 * (3 + 3 + 3) * sizeof(float));
-
- // Vertices
- QVector3D v0(-1.0f, 0.0f, -1.0f);
- QVector3D v1(1.0f, 0.0f, -1.0f);
- QVector3D v2(0.0f, 1.0f, 0.0f);
- QVector3D v3(0.0f, 0.0f, 1.0f);
-
- // Faces Normals
- QVector3D n023 = QVector3D::normal(v0, v2, v3);
- QVector3D n012 = QVector3D::normal(v0, v1, v2);
- QVector3D n310 = QVector3D::normal(v3, v1, v0);
- QVector3D n132 = QVector3D::normal(v1, v3, v2);
-
- // Vector Normals
- QVector3D n0 = QVector3D(n023 + n012 + n310).normalized();
- QVector3D n1 = QVector3D(n132 + n012 + n310).normalized();
- QVector3D n2 = QVector3D(n132 + n012 + n023).normalized();
- QVector3D n3 = QVector3D(n132 + n310 + n023).normalized();
-
- // Colors
- QVector3D red(1.0f, 0.0f, 0.0f);
- QVector3D green(0.0f, 1.0f, 0.0f);
- QVector3D blue(0.0f, 0.0f, 1.0f);
- QVector3D white(1.0f, 1.0f, 1.0f);
-
- QVector<QVector3D> vertices = QVector<QVector3D>()
- << v0 << n0 << red
- << v1 << n1 << blue
- << v2 << n2 << green
- << v3 << n3 << white;
-
- float *rawVertexArray = reinterpret_cast<float *>(vertexBufferData.data());
- int idx = 0;
-
- Q_FOREACH (const QVector3D &v, vertices) {
- rawVertexArray[idx++] = v.x();
- rawVertexArray[idx++] = v.y();
- rawVertexArray[idx++] = v.z();
- }
-
- // Indices (12)
- QByteArray indexBufferData;
- indexBufferData.resize(4 * 3 * sizeof(ushort));
- ushort *rawIndexArray = reinterpret_cast<ushort *>(indexBufferData.data());
-
- // Front
- rawIndexArray[0] = 0;
- rawIndexArray[1] = 1;
- rawIndexArray[2] = 2;
- // Bottom
- rawIndexArray[3] = 3;
- rawIndexArray[4] = 1;
- rawIndexArray[5] = 0;
- // Left
- rawIndexArray[6] = 0;
- rawIndexArray[7] = 2;
- rawIndexArray[8] = 3;
- // Right
- rawIndexArray[9] = 1;
- rawIndexArray[10] = 3;
- rawIndexArray[11] = 2;
-
- vertexDataBuffer->setData(vertexBufferData);
- indexDataBuffer->setData(indexBufferData);
-
- // Attributes
- Qt3DRender::QAttribute *positionAttribute = new Qt3DRender::QAttribute();
- positionAttribute->setAttributeType(Qt3DRender::QAttribute::VertexAttribute);
- positionAttribute->setBuffer(vertexDataBuffer);
- positionAttribute->setDataType(Qt3DRender::QAttribute::Float);
- positionAttribute->setDataSize(3);
- positionAttribute->setByteOffset(0);
- positionAttribute->setByteStride(9 * sizeof(float));
- positionAttribute->setCount(4);
- positionAttribute->setName(Qt3DRender::QAttribute::defaultPositionAttributeName());
-
- Qt3DRender::QAttribute *normalAttribute = new Qt3DRender::QAttribute();
- normalAttribute->setAttributeType(Qt3DRender::QAttribute::VertexAttribute);
- normalAttribute->setBuffer(vertexDataBuffer);
- normalAttribute->setDataType(Qt3DRender::QAttribute::Float);
- normalAttribute->setDataSize(3);
- normalAttribute->setByteOffset(3 * sizeof(float));
- normalAttribute->setByteStride(9 * sizeof(float));
- normalAttribute->setCount(4);
- normalAttribute->setName(Qt3DRender::QAttribute::defaultNormalAttributeName());
-
- Qt3DRender::QAttribute *colorAttribute = new Qt3DRender::QAttribute();
- colorAttribute->setAttributeType(Qt3DRender::QAttribute::VertexAttribute);
- colorAttribute->setBuffer(vertexDataBuffer);
- colorAttribute->setDataType(Qt3DRender::QAttribute::Float);
- colorAttribute->setDataSize(3);
- colorAttribute->setByteOffset(6 * sizeof(float));
- colorAttribute->setByteStride(9 * sizeof(float));
- colorAttribute->setCount(4);
- colorAttribute->setName(Qt3DRender::QAttribute::defaultColorAttributeName());
-
- Qt3DRender::QAttribute *indexAttribute = new Qt3DRender::QAttribute();
- indexAttribute->setAttributeType(Qt3DRender::QAttribute::IndexAttribute);
- indexAttribute->setBuffer(indexDataBuffer);
- indexAttribute->setDataType(Qt3DRender::QAttribute::UnsignedShort);
- indexAttribute->setDataSize(1);
- indexAttribute->setByteOffset(0);
- indexAttribute->setByteStride(0);
- indexAttribute->setCount(12);
-
- customGeometry->addAttribute(positionAttribute);
- customGeometry->addAttribute(normalAttribute);
- customGeometry->addAttribute(colorAttribute);
- customGeometry->addAttribute(indexAttribute);
-
- customMeshRenderer->setInstanceCount(1);
- customMeshRenderer->setIndexOffset(0);
- customMeshRenderer->setFirstInstance(0);
- customMeshRenderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Triangles);
- customMeshRenderer->setGeometry(customGeometry);
- // 4 faces of 3 points
- customMeshRenderer->setVertexCount(12);
-
- customMeshEntity->addComponent(customMeshRenderer);
- customMeshEntity->addComponent(transform);
- customMeshEntity->addComponent(material);
-
- view.setRootEntity(rootEntity);
- view.show();
-
- return app.exec();
-}
diff --git a/examples/qt3d/qt3d.pro b/examples/qt3d/qt3d.pro
index 6c1ee4668..b37f31b67 100644
--- a/examples/qt3d/qt3d.pro
+++ b/examples/qt3d/qt3d.pro
@@ -30,7 +30,6 @@ SUBDIRS += \
transparency-qml-scene3d \
scene3d-loader \
mouseinput-qml \
- custom-mesh-cpp \
custom-mesh-qml \
instanced-arrays-qml \
picking-qml \