diff options
Diffstat (limited to 'basicsuite/enterprise-qtdatavis3d/main.qml')
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/main.qml | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/basicsuite/enterprise-qtdatavis3d/main.qml b/basicsuite/enterprise-qtdatavis3d/main.qml new file mode 100644 index 0000000..417ade0 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/main.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** 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.0 +import "." + +import QtQuick.Enterprise.Controls 1.1 +import QtQuick.Enterprise.Controls.Styles 1.1 + +Item { + id: mainview + + function toPixels(percentage) { + return percentage * Math.min(mainview.width, mainview.height); + } + + Item { + id: surfaceView + width: mainview.width - buttonLayout.width + height: mainview.height + anchors.right: mainview.right; + + ColorGradient { + id: layerOneGradient + ColorGradientStop { position: 0.0; color: "black" } + ColorGradientStop { position: 0.31; color: "tan" } + ColorGradientStop { position: 0.32; color: "green" } + ColorGradientStop { position: 0.40; color: "darkslategray" } + ColorGradientStop { position: 1.0; color: "white" } + } + + ColorGradient { + id: layerTwoGradient + ColorGradientStop { position: 0.315; color: "blue" } + ColorGradientStop { position: 0.33; color: "white" } + } + + ColorGradient { + id: layerThreeGradient + ColorGradientStop { position: 0.0; color: "red" } + ColorGradientStop { position: 0.15; color: "black" } + } + + Surface3D { + id: surfaceLayers + width: surfaceView.width + height: surfaceView.height + theme: Theme3D { + type: Theme3D.ThemeEbony + font.pointSize: 35 + colorStyle: Theme3D.ColorStyleRangeGradient + } + shadowQuality: AbstractGraph3D.ShadowQualityNone + selectionMode: AbstractGraph3D.SelectionRow | AbstractGraph3D.SelectionSlice + scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeft + axisY.min: 20 + axisY.max: 200 + axisX.segmentCount: 5 + axisX.subSegmentCount: 2 + axisX.labelFormat: "%i" + axisZ.segmentCount: 5 + axisZ.subSegmentCount: 2 + axisZ.labelFormat: "%i" + axisY.segmentCount: 5 + axisY.subSegmentCount: 2 + axisY.labelFormat: "%i" + + Surface3DSeries { + id: layerOneSeries + baseGradient: layerOneGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_1.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerOneToggle.checked // bind to checkbox state + } + + Surface3DSeries { + id: layerTwoSeries + baseGradient: layerTwoGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_2.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerTwoToggle.checked // bind to checkbox state + } + + Surface3DSeries { + id: layerThreeSeries + baseGradient: layerThreeGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_3.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerThreeToggle.checked // bind to checkbox state + } + } + } + + ColumnLayout { + id: buttonLayout + anchors.top: parent.top + anchors.left: parent.left + anchors.bottom: parent.bottom + spacing: 0 + + GroupBox { + //title: "Layer Selection" + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: layerOneToggle + text: "Ground\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + + ToggleButton { + id: layerTwoToggle + text: "Sea\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + + ToggleButton { + id: layerThreeToggle + text: "Tectonic\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + } + } + + GroupBox { + //title: "Layer Style" + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: layerOneGrid + text: "Ground\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerOneSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerOneSeries.drawMode = Surface3DSeries.DrawSurface + } + } + + ToggleButton { + id: layerTwoGrid + text: "Sea\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerTwoSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerTwoSeries.drawMode = Surface3DSeries.DrawSurface + } + } + + ToggleButton { + id: layerThreeGrid + text: "Tectonic\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerThreeSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerThreeSeries.drawMode = Surface3DSeries.DrawSurface + } + } + } + } + + GroupBox { + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: sliceButton + text: "Slice\n All\n Layers" + width: toPixels(0.12) + height: width + onClicked: { + if (surfaceLayers.selectionMode & AbstractGraph3D.SelectionMultiSeries) { + surfaceLayers.selectionMode = AbstractGraph3D.SelectionRow + | AbstractGraph3D.SelectionSlice + text = "Slice\n All\n Layers" + } else { + surfaceLayers.selectionMode = AbstractGraph3D.SelectionRow + | AbstractGraph3D.SelectionSlice + | AbstractGraph3D.SelectionMultiSeries + text = "Slice\n One\n Layer" + } + } + } + } + } + } +} |