summaryrefslogtreecommitdiffstats
path: root/tests/qmlvolume/qml/qmlvolume/main.qml
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-02 16:15:08 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-03 09:12:28 +0300
commitd85e665b114692fcac7c8e16217c7148907584b0 (patch)
tree10e9a67137ce2730bb357bfebd5518dcd9fc8c0a /tests/qmlvolume/qml/qmlvolume/main.qml
parent57726e6752eacbbfee906479be9e1c49d456fb6f (diff)
QML support for volume items
Change-Id: I4061bfd4d288aabaea76847c9f692e71ecf5f94c Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests/qmlvolume/qml/qmlvolume/main.qml')
-rw-r--r--tests/qmlvolume/qml/qmlvolume/main.qml159
1 files changed, 159 insertions, 0 deletions
diff --git a/tests/qmlvolume/qml/qmlvolume/main.qml b/tests/qmlvolume/qml/qmlvolume/main.qml
new file mode 100644
index 00000000..7af94b21
--- /dev/null
+++ b/tests/qmlvolume/qml/qmlvolume/main.qml
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+import QtQuick 2.1
+import QtQuick.Layouts 1.0
+import QtQuick.Controls 1.0
+import QtDataVisualization 1.2
+import "."
+
+Item {
+ id: mainView
+ width: 1280
+ height: 1024
+
+ Item {
+ id: dataView
+ anchors.bottom: parent.bottom
+ width: parent.width
+ height: parent.height - buttonLayout.height
+
+ Surface3D {
+ id: surfaceGraph
+
+ width: dataView.width
+ height: dataView.height
+ orthoProjection: true
+ measureFps: true
+
+ onCurrentFpsChanged: {
+ if (fps > 10)
+ fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps)
+ else
+ fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps * 10.0) / 10.0
+ }
+
+ Surface3DSeries {
+ id: surfaceSeries
+ drawMode: Surface3DSeries.DrawSurface;
+ flatShadingEnabled: false;
+ meshSmooth: true
+ itemLabelFormat: "@xLabel, @zLabel: @yLabel"
+ itemLabelVisible: false
+
+ onItemLabelChanged: {
+ if (surfaceSeries.selectedPoint === surfaceSeries.invalidSelectionPosition)
+ selectionText.text = "No selection"
+ else
+ selectionText.text = surfaceSeries.itemLabel
+ }
+ }
+
+ Component.onCompleted: {
+ mainView.createVolume();
+ }
+ }
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 50
+ anchors.left: parent.left
+ anchors.top: parent.top
+ color: surfaceGraph.theme.backgroundColor
+
+ ColumnLayout {
+ anchors.fill: parent
+ RowLayout {
+ id: sliderLayout
+ anchors.top: parent.top
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ Layout.minimumHeight: 150
+ spacing: 0
+
+ Rectangle {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ Layout.minimumWidth: fpsText.implicitWidth + 10
+ Layout.maximumWidth: fpsText.implicitWidth + 10
+ Layout.minimumHeight: 50
+ Layout.maximumHeight: 50
+ Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
+
+ border.color: "gray"
+ border.width: 1
+ radius: 4
+
+ Text {
+ id: fpsText
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ }
+ }
+ }
+
+ RowLayout {
+ id: buttonLayout
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ Layout.minimumHeight: 50
+ anchors.bottom: parent.bottom
+ spacing: 0
+
+ NewButton {
+ id: sliceButton
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ text: "Slice"
+
+ onClicked: {
+ if (volumeItem.sliceIndexZ == -1)
+ volumeItem.sliceIndexZ = 128
+ else
+ volumeItem.sliceIndexZ = -1
+ }
+ }
+ NewButton {
+ id: exitButton
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ text: "Quit"
+
+ onClicked: Qt.quit(0);
+ }
+ }
+ }
+
+ }
+
+ Custom3DVolume {
+ id: volumeItem
+ alphaMultiplier: 0.3
+ preserveOpacity: true
+ useHighDefShader: false
+ }
+
+ function createVolume() {
+ surfaceGraph.addCustomItem(volumeItem)
+ dataSource.fillVolume(volumeItem)
+ }
+}