From 88cd10aa7b3559b092cf5575b0a17d002dc100ae Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 13 Feb 2014 09:59:52 +0200 Subject: Fix examples installation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Had to add one folder to the examples structure so installation works correctly. Change-Id: Ic92dfe9997413a6243abcf5eeba12744ba9e938c Reviewed-by: Tomi Korpipää --- .../qmlscatter/doc/images/qmlscatter-example.png | Bin 0 -> 98086 bytes .../doc/images/qmlscatter-newproject.png | Bin 0 -> 37045 bytes .../qmlscatter/doc/src/qmlscatter.qdoc | 190 ++++ examples/datavisualization/qmlscatter/main.cpp | 56 + .../qmlscatter/qml/qmlscatter/Data.qml | 1099 ++++++++++++++++++++ .../qmlscatter/qml/qmlscatter/NewButton.qml | 52 + .../qmlscatter/qml/qmlscatter/main.qml | 229 ++++ .../qmlscatter/qmlscatter.desktop | 11 + .../datavisualization/qmlscatter/qmlscatter.pro | 20 + .../datavisualization/qmlscatter/qmlscatter.qrc | 7 + .../datavisualization/qmlscatter/qmlscatter64.png | Bin 0 -> 3400 bytes .../qtquick2applicationviewer.cpp | 81 ++ .../qtquick2applicationviewer.h | 33 + .../qtquick2applicationviewer.pri | 180 ++++ 14 files changed, 1958 insertions(+) create mode 100644 examples/datavisualization/qmlscatter/doc/images/qmlscatter-example.png create mode 100644 examples/datavisualization/qmlscatter/doc/images/qmlscatter-newproject.png create mode 100644 examples/datavisualization/qmlscatter/doc/src/qmlscatter.qdoc create mode 100644 examples/datavisualization/qmlscatter/main.cpp create mode 100644 examples/datavisualization/qmlscatter/qml/qmlscatter/Data.qml create mode 100644 examples/datavisualization/qmlscatter/qml/qmlscatter/NewButton.qml create mode 100644 examples/datavisualization/qmlscatter/qml/qmlscatter/main.qml create mode 100644 examples/datavisualization/qmlscatter/qmlscatter.desktop create mode 100644 examples/datavisualization/qmlscatter/qmlscatter.pro create mode 100644 examples/datavisualization/qmlscatter/qmlscatter.qrc create mode 100644 examples/datavisualization/qmlscatter/qmlscatter64.png create mode 100644 examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.cpp create mode 100644 examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.h create mode 100644 examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.pri (limited to 'examples/datavisualization/qmlscatter') diff --git a/examples/datavisualization/qmlscatter/doc/images/qmlscatter-example.png b/examples/datavisualization/qmlscatter/doc/images/qmlscatter-example.png new file mode 100644 index 00000000..65ec4816 Binary files /dev/null and b/examples/datavisualization/qmlscatter/doc/images/qmlscatter-example.png differ diff --git a/examples/datavisualization/qmlscatter/doc/images/qmlscatter-newproject.png b/examples/datavisualization/qmlscatter/doc/images/qmlscatter-newproject.png new file mode 100644 index 00000000..7c81cae8 Binary files /dev/null and b/examples/datavisualization/qmlscatter/doc/images/qmlscatter-newproject.png differ diff --git a/examples/datavisualization/qmlscatter/doc/src/qmlscatter.qdoc b/examples/datavisualization/qmlscatter/doc/src/qmlscatter.qdoc new file mode 100644 index 00000000..fe86d740 --- /dev/null +++ b/examples/datavisualization/qmlscatter/doc/src/qmlscatter.qdoc @@ -0,0 +1,190 @@ +/**************************************************************************** +** +** 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 +** +****************************************************************************/ + +/*! + \example qmlscatter + \title Qt Quick 2 Scatter Example + \ingroup qtdatavisualization_examples + \brief Using Scatter3D in a QML application. + + The Qt Quick 2 scatter example shows how to make a simple scatter graph visualization using + Scatter3D and Qt Quick 2. + + For instructions about how to interact with the graph, see \l{Qt Data Visualization Interacting with Data}{this page}. + + \image qmlscatter-example.png + + \section1 Creating the application + + The application main is created by creating a new Qt Quick Application project in QtCreator. + The dialog shown here is from QtCreator 3.0.0, and it may look a bit different in other + versions: + + \image qmlscatter-newproject.png + + We'll modify the generated \c main.cpp a bit, as we want to add our \c main.qml file as a + resource. We do it by replacing + + \code viewer.setMainQmlFile(QStringLiteral("qml/qmlscatter/main.qml")); \endcode + + with + + \snippet ../examples/qmlscatter/main.cpp 0 + + This will make application deployment easier. + + We'll enable anti-aliasing for our application in environments that support it: + + \snippet ../examples/qmlscatter/main.cpp 2 + + We'll also change the application to be shown maximized by replacing + + \code viewer.showExpanded(); \endcode + + with + + \snippet ../examples/qmlscatter/main.cpp 1 + + We won't look into that any closer, as we'll change nothing in the generated + \c qtquick2applicationviewer files. + + Next we'll create new qml files for data (\c Data.qml) and a QtQuick.Controls button + we want to modify a bit (\c NewButton.qml), and add them to the resource file, in addition to + main.qml: + + \code + + + qml/qmlscatter/Data.qml + qml/qmlscatter/main.qml + qml/qmlscatter/NewButton.qml + + + \endcode + + Now the base for our application is done, and we can start setting up the graph. + + \section1 Setting up the graph + + Let's start modifying the generated \c {main.qml}. We can remove all previous content from it, + as it has nothing we need. + + First we'll import all the QML modules we need: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 0 + + The last \c import just imports all the qml files in the same directory as our \c {main.qml}, + because that's where \c NewButton.qml and \c Data.qml are. + + Then we create our main \c Item and call it \c mainView: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 1 + + \note The Qt Creator application wizard will set a \c Rectangle item as the main item, which + is opaque white by default. This doesn't work for us, because the graphs are rendered behind the other + QML elements. We change the main item type to \c Item, which is invisible. This way the graph is + not covered by the main item. + + Then we'll add another \c Item inside it, and call it \c dataView. This will be the item to hold + the Scatter3D graph. We'll anchor it to the parent bottom: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 9 + + Next we're ready to add the Scatter3D graph itself. We'll add it inside the \c dataView and + name it \c {scatterGraph}. Let's make it fill the \c {dataView}: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 2 + + Now the graph is ready for use, but has no data. It also has the default axes and visual + properties. + + Let's modify some visual properties first by adding the following inside \c {scatterGraph}: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 3 + + We added a customized theme and changed the shadow quality. + We're happy with the other visual properties, so we won't change them. + + The custom theme is based on a predefined theme, but we change the font in it: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 13 + + Then it's time to start feeding the graph some data. + + \section1 Adding data to the graph + + Let's create a \c Data item inside the \c mainView and name it \c seriesData: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 4 + + The \c seriesData item contains the data models for all three series we use in this example. + + This is the component that holds our data in \c {Data.qml}. It has an \c Item as the main + component. + + In the main component we'll add the data itself in a \c ListModel and name it + \c {dataModel}: + + \snippet ../examples/qmlscatter/qml/qmlscatter/Data.qml 0 + \dots + + We'll add two more of these for the other two series, and name them \c dataModelTwo and + \c {dataModelThree}. + + Then we need to expose the data models to be usable from \c {main.qml}. We do this by defining + them as aliases in the main data component: + + \snippet ../examples/qmlscatter/qml/qmlscatter/Data.qml 1 + + Now we can use the data from \c Data.qml with \c scatterGraph in \c {main.qml}. First we'll add + a Scatter3DSeries and call it \c {scatterSeries}: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 5 + + Then we'll set up selection label format for the series: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 10 + + And finally the data for series one in a ItemModelScatterDataProxy. We set the data itself as + \c itemModel for the proxy: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 11 + + We'll add the other two series in the same way, but modify some series-specific details a bit: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 12 + \dots + + Then we'll modify the properties of the default axes in \c scatterGraph a bit: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 6 + + After that we'll just add a few buttons to the \c mainView to control the graph. We'll only + show one as an example: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 7 + + Then we'll modify \c dataView to make room for the buttons at the top: + + \snippet ../examples/qmlscatter/qml/qmlscatter/main.qml 8 + \dots + + And we're done! + + \section1 Example contents +*/ diff --git a/examples/datavisualization/qmlscatter/main.cpp b/examples/datavisualization/qmlscatter/main.cpp new file mode 100644 index 00000000..2215ca40 --- /dev/null +++ b/examples/datavisualization/qmlscatter/main.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** 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 +** +****************************************************************************/ + +#include "qtquick2applicationviewer.h" +#include + +#include +#include + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + QtQuick2ApplicationViewer viewer; + + // Enable antialiasing + //! [2] + viewer.setFormat(QtDataVisualization::qDefaultSurfaceFormat()); + //! [2] + + // The following are needed to make examples run without having to install the module + // in desktop environments. +#ifdef Q_OS_WIN + QString extraImportPath(QStringLiteral("%1/../../../../%2")); +#else + QString extraImportPath(QStringLiteral("%1/../../../%2")); +#endif + viewer.addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath(), + QString::fromLatin1("qml"))); + + viewer.setTitle(QStringLiteral("QML scatter example")); + //! [0] + viewer.setSource(QUrl("qrc:/qml/qmlscatter/main.qml")); + //! [0] + viewer.setResizeMode(QQuickView::SizeRootObjectToView); + //! [1] + viewer.showMaximized(); + //! [1] + + return app.exec(); +} diff --git a/examples/datavisualization/qmlscatter/qml/qmlscatter/Data.qml b/examples/datavisualization/qmlscatter/qml/qmlscatter/Data.qml new file mode 100644 index 00000000..23c4e5d5 --- /dev/null +++ b/examples/datavisualization/qmlscatter/qml/qmlscatter/Data.qml @@ -0,0 +1,1099 @@ +/**************************************************************************** +** +** 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 + +Item { + //! [1] + property alias model: dataModel + property alias modelTwo: dataModelTwo + property alias modelThree: dataModelThree + //! [1] + + //! [0] + ListModel { + id: dataModel + ListElement{ xPos: -10.0; yPos: 5.0; zPos: -5.0 } + //! [0] + ListElement{ xPos: -9.0; yPos: 3.0; zPos: -4.5 } + ListElement{ xPos: -8.5; yPos: 4.1; zPos: -4.0 } + ListElement{ xPos: -8.0; yPos: 4.75; zPos: -3.9 } + ListElement{ xPos: -9.5; yPos: 4.9; zPos: -4.2 } + ListElement{ xPos: -9.9; yPos: 3.42; zPos: -3.5 } + ListElement{ xPos: -7.8; yPos: 3.1; zPos: -4.9 } + ListElement{ xPos: -7.3; yPos: 2.91; zPos: -4.1 } + ListElement{ xPos: -7.1 ; yPos: 3.68 ; zPos: -4.52 } + ListElement{ xPos: -8.8 ; yPos: 2.96 ; zPos: -3.6 } + ListElement{ xPos: -6.94 ; yPos: 2.4 ; zPos: -2.92 } + ListElement{ xPos: -9.02 ; yPos: 4.74 ; zPos: -4.18 } + ListElement{ xPos: -9.54 ; yPos: 3.1 ; zPos: -3.8 } + ListElement{ xPos: -6.86 ; yPos: 3.66 ; zPos: -3.58 } + ListElement{ xPos: -8.16 ; yPos: 1.82 ; zPos: -4.64 } + ListElement{ xPos: -7.4 ; yPos: 3.18 ; zPos: -4.22 } + ListElement{ xPos: -7.9 ; yPos: 3.06 ; zPos: -4.3 } + ListElement{ xPos: -8.98 ; yPos: 2.64 ; zPos: -4.44 } + ListElement{ xPos: -6.36 ; yPos: 3.96 ; zPos: -4.38 } + ListElement{ xPos: -7.18 ; yPos: 3.32 ; zPos: -4.04 } + ListElement{ xPos: -7.9 ; yPos: 3.4 ; zPos: -2.78 } + ListElement{ xPos: -7.4 ; yPos: 3.12 ; zPos: -3.1 } + ListElement{ xPos: -7.54 ; yPos: 2.8 ; zPos: -3.68 } + } + + ListModel { + id: dataModelTwo + ListElement{ xPos: 2.25 ; yPos: 1.36 ; zPos: -1.3 } + ListElement{ xPos: -2 ; yPos: -0.08 ; zPos: 1 } + ListElement{ xPos: 2.65 ; yPos: -1.2 ; zPos: 2.7 } + ListElement{ xPos: -2.55 ; yPos: 3.48 ; zPos: -0.45 } + ListElement{ xPos: -3.85 ; yPos: 0.2 ; zPos: 0.5 } + ListElement{ xPos: 2.85 ; yPos: 1.32 ; zPos: 1.05 } + ListElement{ xPos: -0.4 ; yPos: -2.36 ; zPos: -1.6 } + ListElement{ xPos: 1.5 ; yPos: 0.36 ; zPos: -0.55 } + ListElement{ xPos: 0.25 ; yPos: 0.12 ; zPos: -0.75 } + ListElement{ xPos: -2.45 ; yPos: -0.72 ; zPos: -1.1 } + ListElement{ xPos: 4.1 ; yPos: 1.92 ; zPos: -0.95 } + ListElement{ xPos: 2.05 ; yPos: 0.64 ; zPos: -0.1 } + ListElement{ xPos: 0.25 ; yPos: 0.8 ; zPos: 3.05 } + ListElement{ xPos: 1.5 ; yPos: 0.24 ; zPos: 2.25 } + ListElement{ xPos: 1.15 ; yPos: -0.4 ; zPos: 0.8 } + ListElement{ xPos: -0.05 ; yPos: 0.12 ; zPos: 0.25 } + ListElement{ xPos: 0.9 ; yPos: -0.48 ; zPos: -3.2 } + ListElement{ xPos: 3.55 ; yPos: -1.04 ; zPos: -0.95 } + ListElement{ xPos: -2.4 ; yPos: -0.96 ; zPos: -0.65 } + ListElement{ xPos: 4.25 ; yPos: 0.16 ; zPos: 2.05 } + ListElement{ xPos: -0.6 ; yPos: 1 ; zPos: -0.2 } + ListElement{ xPos: 0 ; yPos: -0.84 ; zPos: -0.95 } + ListElement{ xPos: -4.2 ; yPos: 1.44 ; zPos: 0.85 } + ListElement{ xPos: -1.5 ; yPos: -1.2 ; zPos: -1.5 } + ListElement{ xPos: -3.35 ; yPos: -1.96 ; zPos: 1.8 } + ListElement{ xPos: -2.75 ; yPos: -0.96 ; zPos: -1.2 } + ListElement{ xPos: -2.45 ; yPos: 0.28 ; zPos: -4.55 } + ListElement{ xPos: 2.7 ; yPos: -1.4 ; zPos: -0.65 } + ListElement{ xPos: 2.7 ; yPos: 2.2 ; zPos: -2.4 } + ListElement{ xPos: -0.8 ; yPos: -2.04 ; zPos: 3.75 } + ListElement{ xPos: -1 ; yPos: -1.84 ; zPos: 2.35 } + ListElement{ xPos: -3.25 ; yPos: -1.6 ; zPos: -4.4 } + ListElement{ xPos: -0.35 ; yPos: -0.56 ; zPos: -1.75 } + ListElement{ xPos: -0.8 ; yPos: -0.28 ; zPos: -0.05 } + ListElement{ xPos: 4.75 ; yPos: -1.48 ; zPos: -2.45 } + ListElement{ xPos: 4.35 ; yPos: 1.4 ; zPos: 0.8 } + ListElement{ xPos: -3.2 ; yPos: 2 ; zPos: 0.5 } + ListElement{ xPos: 2 ; yPos: 1.92 ; zPos: 0.55 } + ListElement{ xPos: -0.45 ; yPos: 0.68 ; zPos: -0.8 } + ListElement{ xPos: -2.7 ; yPos: 2 ; zPos: -2.4 } + ListElement{ xPos: -1.65 ; yPos: 1.32 ; zPos: -2.05 } + ListElement{ xPos: -1.6 ; yPos: 1.8 ; zPos: -3.65 } + ListElement{ xPos: -1.2 ; yPos: -0.72 ; zPos: 0.85 } + ListElement{ xPos: 1.4 ; yPos: 1.08 ; zPos: 2.1 } + ListElement{ xPos: -3.9 ; yPos: -1.16 ; zPos: -0.85 } + ListElement{ xPos: 3.15 ; yPos: 0.12 ; zPos: -0.95 } + ListElement{ xPos: -1.35 ; yPos: -2.64 ; zPos: -0.5 } + ListElement{ xPos: -4.15 ; yPos: 1.28 ; zPos: -4.4 } + ListElement{ xPos: -2 ; yPos: 2.48 ; zPos: -0.15 } + ListElement{ xPos: -3.4 ; yPos: 0.6 ; zPos: 0 } + ListElement{ xPos: -1.5 ; yPos: -0.96 ; zPos: 2.35 } + ListElement{ xPos: -0.75 ; yPos: 1.16 ; zPos: -0.75 } + ListElement{ xPos: -0.85 ; yPos: 0.64 ; zPos: -1.75 } + ListElement{ xPos: 0.85 ; yPos: 0.48 ; zPos: 2.9 } + ListElement{ xPos: 4.05 ; yPos: 3.24 ; zPos: -0.1 } + ListElement{ xPos: 0.65 ; yPos: 0.84 ; zPos: 0.3 } + ListElement{ xPos: -2.1 ; yPos: 0.92 ; zPos: -2.75 } + ListElement{ xPos: -0.65 ; yPos: 0.16 ; zPos: 1.6 } + ListElement{ xPos: -1.8 ; yPos: -1.48 ; zPos: -2.15 } + ListElement{ xPos: -1.6 ; yPos: 2.96 ; zPos: 1.85 } + ListElement{ xPos: -0.75 ; yPos: 0.28 ; zPos: -0.75 } + ListElement{ xPos: 2.2 ; yPos: 1.16 ; zPos: 2.65 } + ListElement{ xPos: 2.6 ; yPos: 2.92 ; zPos: -0.2 } + ListElement{ xPos: -1.65 ; yPos: 3.28 ; zPos: 2.5 } + ListElement{ xPos: -0.5 ; yPos: 2.52 ; zPos: -1.15 } + ListElement{ xPos: -1.85 ; yPos: 0.52 ; zPos: -2 } + ListElement{ xPos: 0.15 ; yPos: -2.36 ; zPos: -0.5 } + ListElement{ xPos: -3.9 ; yPos: 0.28 ; zPos: -0.25 } + ListElement{ xPos: 0.1 ; yPos: -3.88 ; zPos: -0.7 } + ListElement{ xPos: -1 ; yPos: -1.96 ; zPos: 0.95 } + ListElement{ xPos: -0.3 ; yPos: -3.52 ; zPos: -1.45 } + ListElement{ xPos: 3.2 ; yPos: -2.56 ; zPos: 2.5 } + ListElement{ xPos: 0 ; yPos: -2.44 ; zPos: 1.35 } + ListElement{ xPos: 1.45 ; yPos: -1.96 ; zPos: 0.1 } + ListElement{ xPos: 3.55 ; yPos: -2.16 ; zPos: 1.75 } + ListElement{ xPos: 2.8 ; yPos: -0.72 ; zPos: -0.3 } + ListElement{ xPos: -1.65 ; yPos: -0.6 ; zPos: 0.25 } + ListElement{ xPos: -4.35 ; yPos: -1.32 ; zPos: -2.3 } + ListElement{ xPos: 2.75 ; yPos: -1.88 ; zPos: 1.7 } + ListElement{ xPos: 2.75 ; yPos: -0.6 ; zPos: 2.45 } + ListElement{ xPos: 0.15 ; yPos: -0.88 ; zPos: -0.2 } + ListElement{ xPos: 0.15 ; yPos: 0.04 ; zPos: -0.1 } + ListElement{ xPos: -1.2 ; yPos: -2.92 ; zPos: -3 } + ListElement{ xPos: -0.7 ; yPos: 0.16 ; zPos: 3.5 } + ListElement{ xPos: -1.8 ; yPos: -2.4 ; zPos: 0.2 } + ListElement{ xPos: 1.25 ; yPos: 2.64 ; zPos: 1.65 } + ListElement{ xPos: -0.65 ; yPos: 1.32 ; zPos: -0.55 } + ListElement{ xPos: 3.85 ; yPos: 2.32 ; zPos: -1 } + ListElement{ xPos: 1.65 ; yPos: -2.28 ; zPos: 0.95 } + ListElement{ xPos: -2.45 ; yPos: -2.96 ; zPos: 3.45 } + ListElement{ xPos: -1.75 ; yPos: 0.36 ; zPos: 1.6 } + ListElement{ xPos: 1.1 ; yPos: -0.84 ; zPos: 0.35 } + ListElement{ xPos: -1.55 ; yPos: 1.6 ; zPos: -3.1 } + ListElement{ xPos: 0.4 ; yPos: -1.36 ; zPos: -1.55 } + ListElement{ xPos: -3.95 ; yPos: 0.2 ; zPos: 3.7 } + ListElement{ xPos: -1.8 ; yPos: -0.24 ; zPos: 2.2 } + ListElement{ xPos: -0.45 ; yPos: 1.64 ; zPos: 1.35 } + ListElement{ xPos: -0.6 ; yPos: -0.72 ; zPos: 2.5 } + ListElement{ xPos: -1.2 ; yPos: -3.04 ; zPos: -1.55 } + ListElement{ xPos: -0.95 ; yPos: 1.48 ; zPos: 0.95 } + ListElement{ xPos: 1.7 ; yPos: -1.36 ; zPos: 2.15 } + ListElement{ xPos: -3.9 ; yPos: -0.32 ; zPos: -2.45 } + ListElement{ xPos: 2.95 ; yPos: 3.12 ; zPos: -2.4 } + ListElement{ xPos: 3.55 ; yPos: -1.48 ; zPos: 0.15 } + ListElement{ xPos: -1.4 ; yPos: 3.24 ; zPos: 0.7 } + ListElement{ xPos: -3.3 ; yPos: -0.8 ; zPos: 0 } + ListElement{ xPos: 1.15 ; yPos: 0.36 ; zPos: -2.7 } + ListElement{ xPos: 0.4 ; yPos: 0.12 ; zPos: 1.35 } + ListElement{ xPos: 1.9 ; yPos: -3.32 ; zPos: -0.75 } + ListElement{ xPos: 0.4 ; yPos: -0.2 ; zPos: -2.4 } + ListElement{ xPos: 0.55 ; yPos: 1.56 ; zPos: 2.25 } + ListElement{ xPos: 4.35 ; yPos: -0.96 ; zPos: -0.7 } + ListElement{ xPos: 3.35 ; yPos: -1.04 ; zPos: -0.85 } + ListElement{ xPos: 1.7 ; yPos: -0.28 ; zPos: -0.25 } + ListElement{ xPos: -3.05 ; yPos: -0.44 ; zPos: 1.3 } + ListElement{ xPos: -3.95 ; yPos: -2.72 ; zPos: -3.8 } + ListElement{ xPos: 2.1 ; yPos: 1.32 ; zPos: 1.15 } + ListElement{ xPos: 1.4 ; yPos: -0.44 ; zPos: -2.85 } + ListElement{ xPos: -2.1 ; yPos: 0.04 ; zPos: 2 } + ListElement{ xPos: 2.45 ; yPos: -2.44 ; zPos: -2.85 } + ListElement{ xPos: 4.35 ; yPos: 0.24 ; zPos: 1.1 } + ListElement{ xPos: 1.8 ; yPos: 1.8 ; zPos: -0.7 } + ListElement{ xPos: 1.8 ; yPos: 2.04 ; zPos: -0.95 } + ListElement{ xPos: 1.65 ; yPos: -2.48 ; zPos: 0.35 } + ListElement{ xPos: -3.3 ; yPos: 0.28 ; zPos: -1.6 } + ListElement{ xPos: 1.85 ; yPos: 1 ; zPos: 2.25 } + ListElement{ xPos: -2 ; yPos: -0.88 ; zPos: -2.6 } + ListElement{ xPos: -0.1 ; yPos: 0.28 ; zPos: -1.75 } + ListElement{ xPos: -2.5 ; yPos: -2.76 ; zPos: -0.2 } + ListElement{ xPos: 0.3 ; yPos: -1.64 ; zPos: -0.75 } + ListElement{ xPos: 2.3 ; yPos: -1.28 ; zPos: -2.7 } + ListElement{ xPos: -1.7 ; yPos: -1.48 ; zPos: -2.6 } + ListElement{ xPos: 0.5 ; yPos: 0.24 ; zPos: -2.2 } + ListElement{ xPos: 0.45 ; yPos: -1.88 ; zPos: -0.95 } + ListElement{ xPos: -1.2 ; yPos: 0.96 ; zPos: 2.35 } + ListElement{ xPos: -0.55 ; yPos: -0.36 ; zPos: -1.8 } + ListElement{ xPos: 2.7 ; yPos: -0.56 ; zPos: -0.4 } + ListElement{ xPos: 1.1 ; yPos: 2.76 ; zPos: -2.35 } + ListElement{ xPos: -1.2 ; yPos: -2.16 ; zPos: 3.1 } + ListElement{ xPos: -0.05 ; yPos: 1.76 ; zPos: 1 } + ListElement{ xPos: 1.45 ; yPos: -0.72 ; zPos: 0.7 } + ListElement{ xPos: 0.2 ; yPos: -3.2 ; zPos: -0.25 } + ListElement{ xPos: -0.8 ; yPos: 1.08 ; zPos: -0.1 } + ListElement{ xPos: -2.45 ; yPos: 0.56 ; zPos: -0.55 } + ListElement{ xPos: 2 ; yPos: 1.12 ; zPos: 2 } + ListElement{ xPos: -1.05 ; yPos: -2.16 ; zPos: -1.8 } + ListElement{ xPos: 1.2 ; yPos: -2.12 ; zPos: -1.55 } + ListElement{ xPos: -4 ; yPos: -0.76 ; zPos: 0.2 } + ListElement{ xPos: -0.15 ; yPos: -0.2 ; zPos: -2 } + ListElement{ xPos: -2.95 ; yPos: 1.36 ; zPos: -3.65 } + ListElement{ xPos: 2.7 ; yPos: 1.16 ; zPos: 2.05 } + ListElement{ xPos: 0.95 ; yPos: -1.52 ; zPos: -1.05 } + ListElement{ xPos: -1.8 ; yPos: 2.72 ; zPos: -0.55 } + ListElement{ xPos: 0.45 ; yPos: 2.88 ; zPos: -4.4 } + ListElement{ xPos: 1.35 ; yPos: 1.08 ; zPos: -0.8 } + ListElement{ xPos: -2.7 ; yPos: -1.36 ; zPos: -2.65 } + ListElement{ xPos: 0.35 ; yPos: 2.32 ; zPos: -1.6 } + ListElement{ xPos: -0.45 ; yPos: 1.6 ; zPos: 0.1 } + ListElement{ xPos: 3.75 ; yPos: 1.12 ; zPos: -3.8 } + ListElement{ xPos: 0.5 ; yPos: 2.6 ; zPos: 0.5 } + ListElement{ xPos: -0.75 ; yPos: -3.52 ; zPos: -3.2 } + ListElement{ xPos: 0.25 ; yPos: -1.32 ; zPos: 2.25 } + ListElement{ xPos: -2.8 ; yPos: -1.6 ; zPos: -2.45 } + ListElement{ xPos: 0.15 ; yPos: -0.56 ; zPos: 3.9 } + ListElement{ xPos: 2.15 ; yPos: -1.68 ; zPos: -1.7 } + ListElement{ xPos: -4.2 ; yPos: -1.92 ; zPos: 2.35 } + ListElement{ xPos: 1.95 ; yPos: -1.32 ; zPos: 0.3 } + ListElement{ xPos: 0.5 ; yPos: 0.64 ; zPos: 0.75 } + ListElement{ xPos: 0.85 ; yPos: -0.84 ; zPos: -0.5 } + ListElement{ xPos: -2.15 ; yPos: -1.64 ; zPos: -2.3 } + ListElement{ xPos: -0.85 ; yPos: -2.84 ; zPos: -0.3 } + ListElement{ xPos: -3.1 ; yPos: -0.32 ; zPos: -0.85 } + ListElement{ xPos: 3.45 ; yPos: 0 ; zPos: 0.8 } + ListElement{ xPos: 1.4 ; yPos: 0.2 ; zPos: 0.3 } + ListElement{ xPos: 0.45 ; yPos: 1.76 ; zPos: -0.15 } + ListElement{ xPos: 0.85 ; yPos: 3.16 ; zPos: -2 } + ListElement{ xPos: 2.15 ; yPos: 0.72 ; zPos: -0.95 } + ListElement{ xPos: -2.4 ; yPos: 0.6 ; zPos: -0.5 } + ListElement{ xPos: 1.45 ; yPos: -0.4 ; zPos: -1.95 } + ListElement{ xPos: 0.6 ; yPos: -1.84 ; zPos: 1.8 } + ListElement{ xPos: 3.4 ; yPos: -0.2 ; zPos: -0.55 } + ListElement{ xPos: 0.2 ; yPos: -0.84 ; zPos: 4.6 } + ListElement{ xPos: -0.25 ; yPos: -2.4 ; zPos: 2.1 } + ListElement{ xPos: -1.15 ; yPos: -3.16 ; zPos: -3.05 } + ListElement{ xPos: 1.45 ; yPos: 0.96 ; zPos: -0.7 } + ListElement{ xPos: 0.35 ; yPos: 0.52 ; zPos: -1 } + ListElement{ xPos: 2.6 ; yPos: 0.28 ; zPos: -0.85 } + ListElement{ xPos: -1.25 ; yPos: 0.76 ; zPos: -1.6 } + ListElement{ xPos: -0.65 ; yPos: -2.16 ; zPos: 3 } + ListElement{ xPos: -0.25 ; yPos: -2.36 ; zPos: -1.8 } + ListElement{ xPos: 0.35 ; yPos: -0.8 ; zPos: 1.85 } + ListElement{ xPos: 0.05 ; yPos: 0.6 ; zPos: 0.85 } + ListElement{ xPos: -2.5 ; yPos: 2.28 ; zPos: -2.05 } + ListElement{ xPos: 1.65 ; yPos: 1.2 ; zPos: 2.1 } + ListElement{ xPos: -3 ; yPos: -0.24 ; zPos: 0.7 } + ListElement{ xPos: -2.1 ; yPos: -0.84 ; zPos: -0.2 } + ListElement{ xPos: 0.45 ; yPos: 0.96 ; zPos: 2.5 } + ListElement{ xPos: -2.4 ; yPos: 1.28 ; zPos: 2.75 } + ListElement{ xPos: -1.7 ; yPos: -3.2 ; zPos: -2.3 } + ListElement{ xPos: 0.95 ; yPos: -0.08 ; zPos: 0.3 } + ListElement{ xPos: 1.4 ; yPos: 0.88 ; zPos: 0.45 } + ListElement{ xPos: 2.1 ; yPos: 1.08 ; zPos: 0.2 } + ListElement{ xPos: -2.1 ; yPos: -0.2 ; zPos: -0.6 } + ListElement{ xPos: 0.5 ; yPos: 1.24 ; zPos: -0.45 } + ListElement{ xPos: 2.55 ; yPos: -0.56 ; zPos: -2.65 } + ListElement{ xPos: -4.5 ; yPos: -0.48 ; zPos: -1.25 } + ListElement{ xPos: 3.45 ; yPos: -0.44 ; zPos: 2.2 } + ListElement{ xPos: -0.25 ; yPos: 0.64 ; zPos: 1.65 } + ListElement{ xPos: 1.25 ; yPos: -0.6 ; zPos: -0.35 } + ListElement{ xPos: 1.95 ; yPos: -1.56 ; zPos: -4.1 } + ListElement{ xPos: 2.75 ; yPos: -1 ; zPos: 3.3 } + ListElement{ xPos: 3.05 ; yPos: 1.04 ; zPos: -0.9 } + ListElement{ xPos: -2.95 ; yPos: 1.4 ; zPos: -2.25 } + ListElement{ xPos: 1.3 ; yPos: 0.36 ; zPos: -2.9 } + ListElement{ xPos: 0.4 ; yPos: -2.48 ; zPos: 3.25 } + ListElement{ xPos: -1.15 ; yPos: 0.36 ; zPos: 0.45 } + ListElement{ xPos: -2.25 ; yPos: 0.04 ; zPos: 0.65 } + ListElement{ xPos: -1.85 ; yPos: -0.96 ; zPos: 4.25 } + ListElement{ xPos: 1.5 ; yPos: 0.04 ; zPos: -3.85 } + ListElement{ xPos: 0.05 ; yPos: 0.68 ; zPos: -2.45 } + ListElement{ xPos: -0.1 ; yPos: -0.48 ; zPos: 1.9 } + ListElement{ xPos: 2.1 ; yPos: -1.52 ; zPos: -4 } + ListElement{ xPos: 3.4 ; yPos: 0 ; zPos: -2.05 } + ListElement{ xPos: 0.7 ; yPos: 2.68 ; zPos: -0.85 } + ListElement{ xPos: 1.6 ; yPos: 1.68 ; zPos: -0.8 } + ListElement{ xPos: 2.1 ; yPos: -2.44 ; zPos: 1.2 } + ListElement{ xPos: -0.15 ; yPos: -1.88 ; zPos: -0.35 } + ListElement{ xPos: -0.35 ; yPos: 1.76 ; zPos: 1.6 } + ListElement{ xPos: -2.15 ; yPos: 0.08 ; zPos: 0.75 } + ListElement{ xPos: -0.15 ; yPos: -3.36 ; zPos: 0.35 } + ListElement{ xPos: 2.7 ; yPos: -2.84 ; zPos: 0.35 } + ListElement{ xPos: -1.35 ; yPos: 0 ; zPos: -0.5 } + ListElement{ xPos: -0.35 ; yPos: -2.56 ; zPos: -0.9 } + ListElement{ xPos: -2.75 ; yPos: -3.56 ; zPos: 1.55 } + ListElement{ xPos: -2.5 ; yPos: -0.68 ; zPos: 2.7 } + ListElement{ xPos: 1.35 ; yPos: 0.6 ; zPos: -2.2 } + ListElement{ xPos: -1.3 ; yPos: -0.24 ; zPos: -1.65 } + ListElement{ xPos: -1.4 ; yPos: -1.44 ; zPos: 4.45 } + ListElement{ xPos: -1.8 ; yPos: 3.64 ; zPos: 2.05 } + ListElement{ xPos: -0.65 ; yPos: 0.08 ; zPos: 3.9 } + ListElement{ xPos: 2.25 ; yPos: 2.96 ; zPos: -2.35 } + ListElement{ xPos: 1.3 ; yPos: 1.64 ; zPos: -0.05 } + ListElement{ xPos: 1.75 ; yPos: 2.24 ; zPos: -2.85 } + ListElement{ xPos: -0.05 ; yPos: -1.56 ; zPos: -0.05 } + ListElement{ xPos: -3.85 ; yPos: -0.8 ; zPos: -0.3 } + ListElement{ xPos: 0.95 ; yPos: 0.32 ; zPos: -2.5 } + ListElement{ xPos: -2.4 ; yPos: 0.4 ; zPos: -3.55 } + ListElement{ xPos: 3.7 ; yPos: 2.36 ; zPos: 3.6 } + ListElement{ xPos: 0.55 ; yPos: 0.88 ; zPos: 3.15 } + ListElement{ xPos: -1 ; yPos: -1.36 ; zPos: -2.1 } + ListElement{ xPos: 2.05 ; yPos: 0.44 ; zPos: -0.8 } + ListElement{ xPos: -4.75 ; yPos: 1.8 ; zPos: -1.7 } + ListElement{ xPos: 0.15 ; yPos: 2.64 ; zPos: -2.2 } + ListElement{ xPos: -2.05 ; yPos: -2.56 ; zPos: 1.15 } + ListElement{ xPos: -3.7 ; yPos: 2.12 ; zPos: 1.3 } + ListElement{ xPos: 1.05 ; yPos: 0 ; zPos: 4 } + ListElement{ xPos: -0.7 ; yPos: -0.88 ; zPos: 1.35 } + ListElement{ xPos: 0.95 ; yPos: -1.84 ; zPos: 0.1 } + ListElement{ xPos: 0.75 ; yPos: 1.16 ; zPos: 4.25 } + ListElement{ xPos: -1.3 ; yPos: 0.72 ; zPos: 0.65 } + ListElement{ xPos: 3 ; yPos: -0.08 ; zPos: -1.75 } + ListElement{ xPos: 2.85 ; yPos: -0.68 ; zPos: 0.65 } + ListElement{ xPos: -0.4 ; yPos: 3.04 ; zPos: -2.35 } + ListElement{ xPos: 3.05 ; yPos: -0.6 ; zPos: -0.6 } + ListElement{ xPos: -0.85 ; yPos: -0.44 ; zPos: 0.35 } + ListElement{ xPos: 0 ; yPos: -1.92 ; zPos: 0 } + ListElement{ xPos: -1.25 ; yPos: -1.44 ; zPos: 1.9 } + ListElement{ xPos: -1.6 ; yPos: 0.04 ; zPos: -0.7 } + ListElement{ xPos: 1.45 ; yPos: -1 ; zPos: -3.4 } + ListElement{ xPos: -2.8 ; yPos: -1.24 ; zPos: -3 } + ListElement{ xPos: 0.2 ; yPos: -0.68 ; zPos: -3.7 } + ListElement{ xPos: 3.35 ; yPos: 0.68 ; zPos: -1.9 } + ListElement{ xPos: -2.3 ; yPos: 1.08 ; zPos: -1 } + ListElement{ xPos: 1.5 ; yPos: 1.8 ; zPos: -1.2 } + ListElement{ xPos: 1.55 ; yPos: 3.64 ; zPos: 1.35 } + ListElement{ xPos: 1.15 ; yPos: -1.36 ; zPos: 0.75 } + ListElement{ xPos: -1.95 ; yPos: 0.08 ; zPos: -0.85 } + ListElement{ xPos: -2.25 ; yPos: -0.52 ; zPos: 1.05 } + ListElement{ xPos: -2.6 ; yPos: -1.32 ; zPos: 1.05 } + ListElement{ xPos: -0.4 ; yPos: -1.52 ; zPos: 2.45 } + ListElement{ xPos: -0.05 ; yPos: 0.64 ; zPos: -2.85 } + ListElement{ xPos: 4.45 ; yPos: -0.24 ; zPos: -0.15 } + ListElement{ xPos: 3.45 ; yPos: 1.72 ; zPos: -1.1 } + ListElement{ xPos: 3.3 ; yPos: -1.72 ; zPos: -0.25 } + ListElement{ xPos: 1.7 ; yPos: 2.76 ; zPos: 2 } + ListElement{ xPos: 2.1 ; yPos: -2.88 ; zPos: -1.75 } + ListElement{ xPos: -3.7 ; yPos: -0.04 ; zPos: 0.25 } + ListElement{ xPos: -0.45 ; yPos: -3 ; zPos: -2.95 } + ListElement{ xPos: 3.1 ; yPos: -2.32 ; zPos: 0.1 } + ListElement{ xPos: 0.7 ; yPos: -2.88 ; zPos: -3.45 } + ListElement{ xPos: 2.9 ; yPos: 0.4 ; zPos: -0.65 } + ListElement{ xPos: -1.8 ; yPos: -2.48 ; zPos: -3.5 } + ListElement{ xPos: 1.65 ; yPos: 3.16 ; zPos: 2.15 } + ListElement{ xPos: -1.25 ; yPos: -0.76 ; zPos: 2.15 } + ListElement{ xPos: 3.55 ; yPos: 0.28 ; zPos: 2.4 } + ListElement{ xPos: 0.25 ; yPos: 0.52 ; zPos: 2.3 } + ListElement{ xPos: -1.7 ; yPos: -1.36 ; zPos: -2.5 } + ListElement{ xPos: 3.8 ; yPos: 1.04 ; zPos: 0.45 } + ListElement{ xPos: 2.45 ; yPos: -0.72 ; zPos: -4.05 } + ListElement{ xPos: -0.85 ; yPos: 0.16 ; zPos: -0.55 } + ListElement{ xPos: 0.65 ; yPos: 0.52 ; zPos: 3.3 } + ListElement{ xPos: 0.85 ; yPos: -0.08 ; zPos: 0.6 } + ListElement{ xPos: -0.1 ; yPos: 1.12 ; zPos: -3.15 } + ListElement{ xPos: -2.95 ; yPos: 0.24 ; zPos: 0.8 } + ListElement{ xPos: 0.2 ; yPos: -0.6 ; zPos: -0.45 } + ListElement{ xPos: 0.15 ; yPos: 2.52 ; zPos: 1.5 } + ListElement{ xPos: 0.65 ; yPos: -1.4 ; zPos: -1.5 } + ListElement{ xPos: 4.75 ; yPos: 1.76 ; zPos: 1.15 } + ListElement{ xPos: -1.75 ; yPos: -1.44 ; zPos: -3.6 } + ListElement{ xPos: 0.85 ; yPos: 0.04 ; zPos: -0.3 } + ListElement{ xPos: -0.55 ; yPos: -0.28 ; zPos: -1.85 } + ListElement{ xPos: -4.05 ; yPos: 0.52 ; zPos: -2.35 } + ListElement{ xPos: -0.35 ; yPos: -0.96 ; zPos: 0.8 } + ListElement{ xPos: -1.8 ; yPos: -0.04 ; zPos: 0.05 } + ListElement{ xPos: -2 ; yPos: 0.12 ; zPos: -2.5 } + ListElement{ xPos: -1.85 ; yPos: -1.04 ; zPos: -1.2 } + ListElement{ xPos: -1 ; yPos: -3.44 ; zPos: -1 } + ListElement{ xPos: 2.25 ; yPos: 0.16 ; zPos: -0.05 } + ListElement{ xPos: -1.3 ; yPos: 0.24 ; zPos: -1.5 } + ListElement{ xPos: -0.05 ; yPos: -0.48 ; zPos: 1.7 } + ListElement{ xPos: -2.5 ; yPos: 0.28 ; zPos: -2.1 } + ListElement{ xPos: 3.9 ; yPos: -0.44 ; zPos: -0.85 } + ListElement{ xPos: -0.3 ; yPos: -1.96 ; zPos: 1.3 } + ListElement{ xPos: 1.35 ; yPos: 2.92 ; zPos: -1.15 } + ListElement{ xPos: -2.2 ; yPos: -2.2 ; zPos: -0.45 } + ListElement{ xPos: -0.2 ; yPos: -0.12 ; zPos: 0.15 } + ListElement{ xPos: 0.7 ; yPos: 1.4 ; zPos: -3 } + ListElement{ xPos: -0.3 ; yPos: 3.16 ; zPos: 2.65 } + ListElement{ xPos: -1.1 ; yPos: -1.44 ; zPos: 0.45 } + ListElement{ xPos: 0.25 ; yPos: -1.04 ; zPos: 4.3 } + ListElement{ xPos: -2.2 ; yPos: -2.48 ; zPos: 0.4 } + ListElement{ xPos: 0.95 ; yPos: -3.4 ; zPos: -1.2 } + ListElement{ xPos: 2.75 ; yPos: -1.6 ; zPos: -1.95 } + ListElement{ xPos: 0.75 ; yPos: -1.84 ; zPos: -0.15 } + ListElement{ xPos: -0.75 ; yPos: -1.84 ; zPos: 0.35 } + ListElement{ xPos: -2.85 ; yPos: -2.12 ; zPos: -0.95 } + ListElement{ xPos: -0.8 ; yPos: -2.84 ; zPos: -0.15 } + ListElement{ xPos: -1.95 ; yPos: -0.44 ; zPos: 2.1 } + ListElement{ xPos: -1.05 ; yPos: -2.48 ; zPos: -1.25 } + ListElement{ xPos: -2.6 ; yPos: -1.48 ; zPos: 0.8 } + ListElement{ xPos: 2.5 ; yPos: -1.08 ; zPos: 1.9 } + ListElement{ xPos: 0.45 ; yPos: 2.52 ; zPos: 0.45 } + ListElement{ xPos: 1.55 ; yPos: -0.16 ; zPos: 0.25 } + ListElement{ xPos: -2.9 ; yPos: 0.36 ; zPos: 0.35 } + ListElement{ xPos: 2.95 ; yPos: -1.56 ; zPos: -2.7 } + ListElement{ xPos: 3.4 ; yPos: -1.76 ; zPos: 3.05 } + ListElement{ xPos: 1.75 ; yPos: -2.84 ; zPos: 0.5 } + ListElement{ xPos: -0.95 ; yPos: 0.64 ; zPos: 1.1 } + ListElement{ xPos: 2 ; yPos: 2.04 ; zPos: 0.1 } + ListElement{ xPos: -0.15 ; yPos: -0.08 ; zPos: -0.9 } + ListElement{ xPos: 2.2 ; yPos: -1.2 ; zPos: 2.8 } + ListElement{ xPos: -0.8 ; yPos: 2.68 ; zPos: -0.3 } + ListElement{ xPos: 3.4 ; yPos: 0.84 ; zPos: -2.65 } + ListElement{ xPos: -0.25 ; yPos: -0.24 ; zPos: 0.45 } + ListElement{ xPos: 2.7 ; yPos: 1.64 ; zPos: -1.95 } + ListElement{ xPos: 1.35 ; yPos: -2.96 ; zPos: 0.65 } + ListElement{ xPos: -1.45 ; yPos: -0.2 ; zPos: 0.8 } + ListElement{ xPos: 1.45 ; yPos: 1.64 ; zPos: -3.45 } + ListElement{ xPos: -1.1 ; yPos: 3.08 ; zPos: 1.1 } + ListElement{ xPos: 0.8 ; yPos: 1.88 ; zPos: -2.1 } + ListElement{ xPos: 1.15 ; yPos: 3.04 ; zPos: -0.75 } + ListElement{ xPos: -0.45 ; yPos: 1.36 ; zPos: -0.15 } + ListElement{ xPos: -2.8 ; yPos: -1.24 ; zPos: 2.55 } + ListElement{ xPos: 4.4 ; yPos: 2.04 ; zPos: 1.25 } + ListElement{ xPos: -0.95 ; yPos: 1.24 ; zPos: 3.65 } + ListElement{ xPos: 3.45 ; yPos: 1.32 ; zPos: 2.5 } + ListElement{ xPos: -3 ; yPos: 1.12 ; zPos: -1.2 } + ListElement{ xPos: -2.45 ; yPos: 0.68 ; zPos: 4.35 } + ListElement{ xPos: 0.55 ; yPos: -0.12 ; zPos: -3.95 } + ListElement{ xPos: -0.35 ; yPos: 3.08 ; zPos: -0.3 } + ListElement{ xPos: 1.35 ; yPos: -2.92 ; zPos: -3.3 } + ListElement{ xPos: 0.5 ; yPos: -0.2 ; zPos: 0.95 } + ListElement{ xPos: 1.2 ; yPos: -0.24 ; zPos: -0.75 } + ListElement{ xPos: -1.2 ; yPos: 2.16 ; zPos: 3.35 } + ListElement{ xPos: -3.35 ; yPos: 2.36 ; zPos: 3.45 } + ListElement{ xPos: 0.95 ; yPos: -0.88 ; zPos: 1.25 } + ListElement{ xPos: 0.1 ; yPos: 1.24 ; zPos: 0 } + ListElement{ xPos: 1.8 ; yPos: 1.56 ; zPos: -1.05 } + ListElement{ xPos: -1.35 ; yPos: 3.8 ; zPos: -1.45 } + ListElement{ xPos: 1.45 ; yPos: -2.64 ; zPos: 0.5 } + ListElement{ xPos: 2.05 ; yPos: 1.16 ; zPos: 1.4 } + ListElement{ xPos: 2.9 ; yPos: -2.4 ; zPos: 0.15 } + ListElement{ xPos: -1.1 ; yPos: 0.76 ; zPos: -1.65 } + ListElement{ xPos: -2.5 ; yPos: -2.4 ; zPos: 1.05 } + ListElement{ xPos: 3.55 ; yPos: -1.8 ; zPos: -2.55 } + ListElement{ xPos: -0.8 ; yPos: 1.24 ; zPos: -3.75 } + ListElement{ xPos: -1.35 ; yPos: -2.48 ; zPos: 2.85 } + ListElement{ xPos: -2.1 ; yPos: 1.48 ; zPos: -0.15 } + ListElement{ xPos: -0.45 ; yPos: 2.68 ; zPos: 2.85 } + ListElement{ xPos: 0.8 ; yPos: 1.4 ; zPos: -3.35 } + ListElement{ xPos: -2.2 ; yPos: -2.24 ; zPos: 0.35 } + ListElement{ xPos: 1.4 ; yPos: -2.32 ; zPos: 0.55 } + ListElement{ xPos: 3.65 ; yPos: 1.12 ; zPos: -4.5 } + ListElement{ xPos: 0.1 ; yPos: -0.68 ; zPos: 1.85 } + ListElement{ xPos: -1.95 ; yPos: -0.56 ; zPos: -2.05 } + ListElement{ xPos: 1.85 ; yPos: 1.32 ; zPos: -4.4 } + ListElement{ xPos: -0.6 ; yPos: 0.64 ; zPos: -0.3 } + ListElement{ xPos: -1.55 ; yPos: 1.52 ; zPos: -3.75 } + ListElement{ xPos: 1.85 ; yPos: 0.48 ; zPos: 0.65 } + ListElement{ xPos: 3.35 ; yPos: 2.52 ; zPos: 1.9 } + ListElement{ xPos: 0.4 ; yPos: 1.4 ; zPos: -1.3 } + ListElement{ xPos: -2.7 ; yPos: 0.84 ; zPos: 1.6 } + ListElement{ xPos: -0.5 ; yPos: 1 ; zPos: 0.4 } + ListElement{ xPos: 2.25 ; yPos: -1 ; zPos: 1.25 } + ListElement{ xPos: 1.7 ; yPos: 2.4 ; zPos: -0.95 } + ListElement{ xPos: -3.55 ; yPos: 1.04 ; zPos: 3.95 } + ListElement{ xPos: 0.9 ; yPos: 1.28 ; zPos: 2.05 } + ListElement{ xPos: -3.15 ; yPos: 1.96 ; zPos: -0.3 } + ListElement{ xPos: 1.35 ; yPos: -0.92 ; zPos: -1 } + ListElement{ xPos: -3.1 ; yPos: -3.08 ; zPos: 0.9 } + ListElement{ xPos: 1.25 ; yPos: -2.44 ; zPos: 2.25 } + ListElement{ xPos: -3.8 ; yPos: 0.76 ; zPos: -1.05 } + ListElement{ xPos: -1.05 ; yPos: -3.8 ; zPos: -0.8 } + ListElement{ xPos: -4 ; yPos: 1.24 ; zPos: -2.6 } + ListElement{ xPos: 2.45 ; yPos: -1.84 ; zPos: 0.35 } + ListElement{ xPos: -1.5 ; yPos: 2.16 ; zPos: 4.3 } + ListElement{ xPos: 2.1 ; yPos: -1.8 ; zPos: -0.95 } + ListElement{ xPos: -1.8 ; yPos: -0.2 ; zPos: 0.2 } + ListElement{ xPos: 0.75 ; yPos: 1.04 ; zPos: -1.3 } + ListElement{ xPos: 2.85 ; yPos: 1.6 ; zPos: -2.05 } + ListElement{ xPos: -2 ; yPos: -0.2 ; zPos: -2.15 } + ListElement{ xPos: 1.75 ; yPos: 2.28 ; zPos: 0.75 } + ListElement{ xPos: 1.95 ; yPos: -0.68 ; zPos: -2.3 } + ListElement{ xPos: -0.8 ; yPos: 1.08 ; zPos: 1.65 } + ListElement{ xPos: -1.85 ; yPos: 1.8 ; zPos: -0.75 } + ListElement{ xPos: -3.05 ; yPos: 2.44 ; zPos: 0.35 } + ListElement{ xPos: -0.4 ; yPos: -3 ; zPos: -2.85 } + ListElement{ xPos: -0.95 ; yPos: 0.64 ; zPos: 2.15 } + ListElement{ xPos: -1.35 ; yPos: -0.2 ; zPos: -0.8 } + ListElement{ xPos: 2.1 ; yPos: -0.04 ; zPos: 0.65 } + ListElement{ xPos: 2.6 ; yPos: 0.2 ; zPos: 2.75 } + ListElement{ xPos: 1.65 ; yPos: -0.16 ; zPos: 1.65 } + ListElement{ xPos: -1.85 ; yPos: 0.68 ; zPos: 1.95 } + ListElement{ xPos: -3.05 ; yPos: -2.28 ; zPos: 0.1 } + ListElement{ xPos: 3.4 ; yPos: -1.88 ; zPos: 3 } + ListElement{ xPos: -0.75 ; yPos: 0.36 ; zPos: 1.5 } + ListElement{ xPos: 2.9 ; yPos: -1 ; zPos: -1.85 } + ListElement{ xPos: 0.4 ; yPos: 1.08 ; zPos: 0.8 } + ListElement{ xPos: -1.05 ; yPos: 1.04 ; zPos: 2.15 } + ListElement{ xPos: 2.6 ; yPos: -2.08 ; zPos: -0.1 } + ListElement{ xPos: 0 ; yPos: -2.84 ; zPos: -0.95 } + ListElement{ xPos: 0.4 ; yPos: 1.88 ; zPos: 2.05 } + ListElement{ xPos: -3.1 ; yPos: -2.76 ; zPos: -2.75 } + ListElement{ xPos: -2.65 ; yPos: 3.52 ; zPos: -1.2 } + ListElement{ xPos: -4.3 ; yPos: -0.28 ; zPos: 3 } + ListElement{ xPos: -2.8 ; yPos: -2.56 ; zPos: -2.85 } + ListElement{ xPos: -0.15 ; yPos: 2.72 ; zPos: -2.8 } + ListElement{ xPos: -0.95 ; yPos: -0.6 ; zPos: 1.05 } + ListElement{ xPos: 1.9 ; yPos: 2.56 ; zPos: 1.25 } + ListElement{ xPos: -0.85 ; yPos: 0.24 ; zPos: 0.05 } + ListElement{ xPos: 2.4 ; yPos: 2.56 ; zPos: -1.2 } + ListElement{ xPos: 2.35 ; yPos: -1.08 ; zPos: 2.7 } + ListElement{ xPos: -2.1 ; yPos: -0.76 ; zPos: 2.8 } + ListElement{ xPos: 1.4 ; yPos: 1 ; zPos: 2.35 } + ListElement{ xPos: -0.9 ; yPos: 1.72 ; zPos: 4.1 } + ListElement{ xPos: 3.7 ; yPos: -1.4 ; zPos: 2.05 } + ListElement{ xPos: -0.25 ; yPos: 0.76 ; zPos: -1.4 } + ListElement{ xPos: -1.6 ; yPos: 0.32 ; zPos: 0.05 } + ListElement{ xPos: 2.5 ; yPos: -3.08 ; zPos: 0.85 } + ListElement{ xPos: 0.05 ; yPos: -1.96 ; zPos: 1.55 } + ListElement{ xPos: -3.7 ; yPos: 0.84 ; zPos: -0.25 } + ListElement{ xPos: 2.35 ; yPos: 0.6 ; zPos: -1.5 } + ListElement{ xPos: 1.1 ; yPos: 2.64 ; zPos: -1.45 } + ListElement{ xPos: 2.55 ; yPos: -1.56 ; zPos: 2.05 } + ListElement{ xPos: -2.15 ; yPos: 3.56 ; zPos: 3.25 } + ListElement{ xPos: -0.55 ; yPos: -1.24 ; zPos: 2.65 } + ListElement{ xPos: -0.3 ; yPos: 1.32 ; zPos: 0.85 } + ListElement{ xPos: -1.9 ; yPos: 1.24 ; zPos: 1.15 } + ListElement{ xPos: 0.35 ; yPos: -2.44 ; zPos: -1.35 } + ListElement{ xPos: 2.9 ; yPos: -1.08 ; zPos: -4.3 } + ListElement{ xPos: 1.8 ; yPos: -0.44 ; zPos: 1.25 } + ListElement{ xPos: -0.6 ; yPos: -1.08 ; zPos: -0.6 } + ListElement{ xPos: -0.3 ; yPos: -0.88 ; zPos: -1.45 } + ListElement{ xPos: -1 ; yPos: 2.12 ; zPos: 2.3 } + ListElement{ xPos: 3.15 ; yPos: 0.52 ; zPos: -2.8 } + ListElement{ xPos: 0.45 ; yPos: 2.48 ; zPos: -1.3 } + ListElement{ xPos: 0.5 ; yPos: -0.84 ; zPos: 0.7 } + ListElement{ xPos: -0.6 ; yPos: -0.44 ; zPos: -1.35 } + ListElement{ xPos: -1.7 ; yPos: -0.12 ; zPos: -2.55 } + ListElement{ xPos: -0.5 ; yPos: 0.52 ; zPos: 1.4 } + ListElement{ xPos: 4 ; yPos: -1.68 ; zPos: -0.1 } + ListElement{ xPos: 1.4 ; yPos: -1.64 ; zPos: 1.35 } + ListElement{ xPos: 0.05 ; yPos: 0.28 ; zPos: -2.2 } + ListElement{ xPos: 1.55 ; yPos: -1.2 ; zPos: 0.45 } + ListElement{ xPos: 3.1 ; yPos: 3.64 ; zPos: 1.45 } + ListElement{ xPos: -1.55 ; yPos: 2.16 ; zPos: 0.15 } + ListElement{ xPos: 3.9 ; yPos: -2.56 ; zPos: -1.25 } + ListElement{ xPos: 4.15 ; yPos: 0.64 ; zPos: 2.65 } + ListElement{ xPos: -2.8 ; yPos: 0.56 ; zPos: -1.35 } + ListElement{ xPos: 1.3 ; yPos: 1.28 ; zPos: 0.8 } + ListElement{ xPos: -2.3 ; yPos: -3.08 ; zPos: 1.2 } + ListElement{ xPos: 0.5 ; yPos: -0.36 ; zPos: -2.4 } + ListElement{ xPos: 0.6 ; yPos: 0.52 ; zPos: 2.75 } + ListElement{ xPos: 3.9 ; yPos: -0.52 ; zPos: -4.25 } + ListElement{ xPos: -0.5 ; yPos: 1.28 ; zPos: -0.05 } + ListElement{ xPos: -0.25 ; yPos: -3.84 ; zPos: 3.15 } + ListElement{ xPos: -0.9 ; yPos: -1.72 ; zPos: -3.15 } + ListElement{ xPos: 0.85 ; yPos: 0.84 ; zPos: -1.7 } + ListElement{ xPos: -3.35 ; yPos: 0.72 ; zPos: 2.15 } + ListElement{ xPos: -1.6 ; yPos: 0.6 ; zPos: 1.65 } + ListElement{ xPos: -3.6 ; yPos: 0.8 ; zPos: 2.6 } + ListElement{ xPos: -0.7 ; yPos: 1.96 ; zPos: -0.9 } + ListElement{ xPos: -2.4 ; yPos: 1.32 ; zPos: -2.75 } + ListElement{ xPos: -1.75 ; yPos: 0.72 ; zPos: -0.85 } + ListElement{ xPos: -2.7 ; yPos: 0.6 ; zPos: -2.5 } + ListElement{ xPos: -2.2 ; yPos: -3.4 ; zPos: -1.85 } + ListElement{ xPos: 0.85 ; yPos: 2.2 ; zPos: -3.75 } + ListElement{ xPos: -3.85 ; yPos: 2.44 ; zPos: 4.3 } + ListElement{ xPos: -3.65 ; yPos: 0.52 ; zPos: 0.2 } + ListElement{ xPos: -4.35 ; yPos: -0.52 ; zPos: 1.5 } + ListElement{ xPos: 1.45 ; yPos: -0.08 ; zPos: -0.4 } + ListElement{ xPos: 1.85 ; yPos: -0.76 ; zPos: -4.6 } + ListElement{ xPos: 0.95 ; yPos: 0.52 ; zPos: -1 } + ListElement{ xPos: -2.5 ; yPos: -0.88 ; zPos: -0.3 } + ListElement{ xPos: -2.9 ; yPos: 1.68 ; zPos: -1.15 } + ListElement{ xPos: -3.2 ; yPos: 0.2 ; zPos: 1.1 } + ListElement{ xPos: 0.9 ; yPos: -0.2 ; zPos: 0.7 } + ListElement{ xPos: 3.6 ; yPos: 1.08 ; zPos: -2.15 } + ListElement{ xPos: -0.8 ; yPos: 1.72 ; zPos: 2.85 } + ListElement{ xPos: 0.3 ; yPos: 1.76 ; zPos: 0.9 } + ListElement{ xPos: -1.3 ; yPos: -0.56 ; zPos: -2.3 } + ListElement{ xPos: -2.8 ; yPos: 0.4 ; zPos: 4.2 } + ListElement{ xPos: 1 ; yPos: -0.32 ; zPos: 0.35 } + ListElement{ xPos: -0.6 ; yPos: -0.24 ; zPos: 4.05 } + ListElement{ xPos: -2 ; yPos: -1.84 ; zPos: -2.2 } + ListElement{ xPos: -1.95 ; yPos: -0.8 ; zPos: 1.85 } + ListElement{ xPos: -0.05 ; yPos: -0.16 ; zPos: 3.85 } + ListElement{ xPos: 0.15 ; yPos: -2.64 ; zPos: 1.7 } + ListElement{ xPos: -3.85 ; yPos: 1.4 ; zPos: 0.1 } + ListElement{ xPos: 0.25 ; yPos: 1 ; zPos: -2.45 } + ListElement{ xPos: -4.1 ; yPos: 0 ; zPos: -0.1 } + ListElement{ xPos: -1.4 ; yPos: -0.32 ; zPos: -0.8 } + ListElement{ xPos: -1.9 ; yPos: -1.84 ; zPos: -3 } + ListElement{ xPos: 0.35 ; yPos: 1.32 ; zPos: -3.95 } + ListElement{ xPos: -2.6 ; yPos: -1.04 ; zPos: 4.25 } + ListElement{ xPos: -3.1 ; yPos: -0.96 ; zPos: -1.65 } + ListElement{ xPos: -0.55 ; yPos: -1.16 ; zPos: 4.05 } + ListElement{ xPos: -3.1 ; yPos: -1 ; zPos: -0.5 } + ListElement{ xPos: 2.25 ; yPos: 1.24 ; zPos: 3.4 } + ListElement{ xPos: -1.2 ; yPos: -1.24 ; zPos: -4.05 } + ListElement{ xPos: 3.05 ; yPos: 1.92 ; zPos: 1 } + ListElement{ xPos: 0.55 ; yPos: -2.76 ; zPos: -3.25 } + ListElement{ xPos: -2.05 ; yPos: 1.6 ; zPos: 0.6 } + ListElement{ xPos: -0.45 ; yPos: 0.12 ; zPos: -0.15 } + ListElement{ xPos: 2.1 ; yPos: 2.96 ; zPos: 1.1 } + ListElement{ xPos: 0.05 ; yPos: -2.08 ; zPos: -0.7 } + ListElement{ xPos: -3.15 ; yPos: 1.08 ; zPos: -0.1 } + ListElement{ xPos: -1.95 ; yPos: 0.44 ; zPos: 0.6 } + ListElement{ xPos: 0.15 ; yPos: -0.32 ; zPos: 2.85 } + ListElement{ xPos: 0.55 ; yPos: 1 ; zPos: 0.55 } + ListElement{ xPos: -2.05 ; yPos: 1.84 ; zPos: -1 } + ListElement{ xPos: -0.25 ; yPos: 0.36 ; zPos: 1.2 } + ListElement{ xPos: 4.6 ; yPos: -0.2 ; zPos: 0.6 } + ListElement{ xPos: -1.95 ; yPos: -0.8 ; zPos: 0.05 } + ListElement{ xPos: -0.35 ; yPos: -1.04 ; zPos: 0.8 } + ListElement{ xPos: 0.7 ; yPos: 3.04 ; zPos: -3.55 } + ListElement{ xPos: -0.15 ; yPos: 1.12 ; zPos: -2.5 } + ListElement{ xPos: -0.5 ; yPos: -1.68 ; zPos: 1.5 } + ListElement{ xPos: 1 ; yPos: -0.44 ; zPos: -1.5 } + ListElement{ xPos: 4.05 ; yPos: -1.32 ; zPos: 2.85 } + ListElement{ xPos: 1.6 ; yPos: -1.56 ; zPos: 2.15 } + ListElement{ xPos: 0.3 ; yPos: -1.16 ; zPos: 1.25 } + ListElement{ xPos: -2.65 ; yPos: -1.28 ; zPos: 0.45 } + ListElement{ xPos: 0 ; yPos: 1.52 ; zPos: -1.35 } + ListElement{ xPos: 1.3 ; yPos: 1.68 ; zPos: -2.75 } + ListElement{ xPos: 1.25 ; yPos: 0.4 ; zPos: 0.3 } + ListElement{ xPos: -0.95 ; yPos: 3.68 ; zPos: 1.75 } + ListElement{ xPos: -3.55 ; yPos: 0.48 ; zPos: 1.15 } + ListElement{ xPos: -1.7 ; yPos: -2.64 ; zPos: -3.3 } + ListElement{ xPos: -2.2 ; yPos: -2.4 ; zPos: 1.05 } + ListElement{ xPos: 0.1 ; yPos: 0.44 ; zPos: -1.05 } + ListElement{ xPos: 2.05 ; yPos: 0.4 ; zPos: 0.8 } + ListElement{ xPos: 0.4 ; yPos: 0.04 ; zPos: 4.2 } + ListElement{ xPos: -1.25 ; yPos: 0.76 ; zPos: 0.45 } + ListElement{ xPos: 1.6 ; yPos: 2.04 ; zPos: -2.95 } + ListElement{ xPos: -2.05 ; yPos: -0.44 ; zPos: 1.35 } + ListElement{ xPos: -3.25 ; yPos: 0.44 ; zPos: 2.15 } + ListElement{ xPos: -1.75 ; yPos: 0.04 ; zPos: 2.35 } + ListElement{ xPos: -4.15 ; yPos: 0.68 ; zPos: 0.8 } + ListElement{ xPos: -1.6 ; yPos: 1.12 ; zPos: 0.55 } + ListElement{ xPos: -0.15 ; yPos: 3.4 ; zPos: 3.05 } + ListElement{ xPos: -0.2 ; yPos: 0.04 ; zPos: -1.45 } + ListElement{ xPos: 2.9 ; yPos: -0.36 ; zPos: 1.45 } + ListElement{ xPos: -1.4 ; yPos: 1.56 ; zPos: 1 } + ListElement{ xPos: 3.4 ; yPos: -1.2 ; zPos: -4.2 } + ListElement{ xPos: -1.1 ; yPos: 0.6 ; zPos: 1.55 } + ListElement{ xPos: -0.35 ; yPos: 1.52 ; zPos: -0.35 } + ListElement{ xPos: 0.3 ; yPos: 0.96 ; zPos: 1.8 } + ListElement{ xPos: 2.5 ; yPos: -1.84 ; zPos: 1.65 } + ListElement{ xPos: -0.6 ; yPos: 2.24 ; zPos: -2.9 } + ListElement{ xPos: -0.25 ; yPos: -2.32 ; zPos: -0.7 } + ListElement{ xPos: 3.35 ; yPos: -2.24 ; zPos: 1.5 } + ListElement{ xPos: 1.6 ; yPos: 1.96 ; zPos: 3.9 } + ListElement{ xPos: 1.8 ; yPos: 0.68 ; zPos: -1.55 } + ListElement{ xPos: 2.7 ; yPos: 1.76 ; zPos: -2.9 } + ListElement{ xPos: -2.35 ; yPos: -0.6 ; zPos: -3.9 } + ListElement{ xPos: -1.85 ; yPos: 1.96 ; zPos: -1.2 } + ListElement{ xPos: -4.05 ; yPos: 1.12 ; zPos: -2.75 } + ListElement{ xPos: -2.85 ; yPos: -1.36 ; zPos: 0.65 } + ListElement{ xPos: -1.75 ; yPos: 2.12 ; zPos: -1.35 } + ListElement{ xPos: -2.95 ; yPos: -0.08 ; zPos: 3.65 } + ListElement{ xPos: -2.4 ; yPos: 2 ; zPos: 4.5 } + ListElement{ xPos: -0.05 ; yPos: 0.04 ; zPos: 0.35 } + ListElement{ xPos: -3.2 ; yPos: 0.16 ; zPos: 1.1 } + ListElement{ xPos: 3 ; yPos: 2.32 ; zPos: 1.3 } + ListElement{ xPos: 4.9 ; yPos: -1.88 ; zPos: 0.45 } + ListElement{ xPos: -2.35 ; yPos: -1.44 ; zPos: -0.7 } + ListElement{ xPos: 2.4 ; yPos: -0.6 ; zPos: 0.1 } + ListElement{ xPos: 1 ; yPos: 1.6 ; zPos: 1 } + ListElement{ xPos: 1.3 ; yPos: -0.4 ; zPos: -0.4 } + ListElement{ xPos: -0.9 ; yPos: -2.72 ; zPos: -3.6 } + ListElement{ xPos: 1.2 ; yPos: -0.44 ; zPos: 2.1 } + ListElement{ xPos: 0.65 ; yPos: 3 ; zPos: -1.55 } + ListElement{ xPos: -1.55 ; yPos: -2.64 ; zPos: 0.55 } + ListElement{ xPos: 1.9 ; yPos: -0.32 ; zPos: -2.1 } + ListElement{ xPos: 1.35 ; yPos: -2.84 ; zPos: -0.4 } + ListElement{ xPos: 0.25 ; yPos: -2.68 ; zPos: -0.2 } + ListElement{ xPos: -2.05 ; yPos: -1.6 ; zPos: -3.05 } + ListElement{ xPos: 1.65 ; yPos: -0.44 ; zPos: -0.75 } + ListElement{ xPos: -1.25 ; yPos: 0.96 ; zPos: -4.15 } + ListElement{ xPos: -4.2 ; yPos: -0.56 ; zPos: 1.45 } + ListElement{ xPos: 0.95 ; yPos: -2.4 ; zPos: -1.6 } + ListElement{ xPos: -0.05 ; yPos: 0.88 ; zPos: 3.15 } + ListElement{ xPos: -1.65 ; yPos: -0.88 ; zPos: -3.85 } + ListElement{ xPos: 0.35 ; yPos: 0.2 ; zPos: 4.25 } + ListElement{ xPos: 0.8 ; yPos: 0.84 ; zPos: 3.1 } + ListElement{ xPos: 1.85 ; yPos: -2.16 ; zPos: -2.2 } + ListElement{ xPos: -2.05 ; yPos: 0.16 ; zPos: -0.4 } + ListElement{ xPos: 0.85 ; yPos: 1.84 ; zPos: -1.45 } + ListElement{ xPos: 1.6 ; yPos: 1.56 ; zPos: -1.45 } + ListElement{ xPos: 1.25 ; yPos: -0.84 ; zPos: -2.95 } + ListElement{ xPos: -1.9 ; yPos: 2.32 ; zPos: -1.8 } + ListElement{ xPos: -0.6 ; yPos: 2.4 ; zPos: -3.65 } + ListElement{ xPos: 4.45 ; yPos: 0.52 ; zPos: 3 } + ListElement{ xPos: 2.7 ; yPos: 0.28 ; zPos: -1.8 } + ListElement{ xPos: 0.35 ; yPos: -2.56 ; zPos: 3.9 } + ListElement{ xPos: -0.95 ; yPos: -1.28 ; zPos: 1.6 } + ListElement{ xPos: 0.4 ; yPos: -0.2 ; zPos: -2.15 } + ListElement{ xPos: -0.05 ; yPos: -1.08 ; zPos: -4.1 } + ListElement{ xPos: 3.1 ; yPos: -1.2 ; zPos: -3.85 } + ListElement{ xPos: 0.75 ; yPos: 0.12 ; zPos: -3.1 } + ListElement{ xPos: -1.65 ; yPos: -1.16 ; zPos: -1.65 } + ListElement{ xPos: -1.65 ; yPos: 3.84 ; zPos: 4.65 } + ListElement{ xPos: 2.8 ; yPos: -2.6 ; zPos: -1.65 } + ListElement{ xPos: 1.2 ; yPos: -2.76 ; zPos: -2.2 } + ListElement{ xPos: 0.4 ; yPos: 3.04 ; zPos: 3.45 } + ListElement{ xPos: -3.6 ; yPos: 1.04 ; zPos: -0.6 } + ListElement{ xPos: 2.25 ; yPos: 1.64 ; zPos: 2.9 } + ListElement{ xPos: -3.05 ; yPos: -0.76 ; zPos: -2.3 } + ListElement{ xPos: -2.85 ; yPos: 2.12 ; zPos: -0.65 } + ListElement{ xPos: -0.1 ; yPos: 0.08 ; zPos: -1.6 } + ListElement{ xPos: -1.55 ; yPos: -1.36 ; zPos: 2.2 } + ListElement{ xPos: -0.4 ; yPos: 1.56 ; zPos: -0.3 } + ListElement{ xPos: 0.3 ; yPos: -2.36 ; zPos: 1.35 } + ListElement{ xPos: 0.2 ; yPos: -0.6 ; zPos: 1.6 } + ListElement{ xPos: -0.65 ; yPos: 1.96 ; zPos: -3.1 } + ListElement{ xPos: 0.6 ; yPos: -1.04 ; zPos: 2.5 } + ListElement{ xPos: -2 ; yPos: -1.08 ; zPos: -0.85 } + ListElement{ xPos: 1.45 ; yPos: -2.56 ; zPos: -2.6 } + ListElement{ xPos: -2.45 ; yPos: 0.04 ; zPos: -2.85 } + ListElement{ xPos: -0.05 ; yPos: -1.24 ; zPos: -1.25 } + ListElement{ xPos: -2.95 ; yPos: -1.8 ; zPos: -2.05 } + ListElement{ xPos: 4.3 ; yPos: -0.96 ; zPos: 3.5 } + ListElement{ xPos: 2.15 ; yPos: -1.6 ; zPos: -0.8 } + ListElement{ xPos: -1.2 ; yPos: -1 ; zPos: 1.75 } + ListElement{ xPos: -1.5 ; yPos: -1.28 ; zPos: -0.25 } + ListElement{ xPos: 2.5 ; yPos: -2.6 ; zPos: -0.3 } + ListElement{ xPos: -1.6 ; yPos: -0.36 ; zPos: 3.15 } + ListElement{ xPos: -0.1 ; yPos: -0.64 ; zPos: -3.6 } + ListElement{ xPos: -1.9 ; yPos: 1.88 ; zPos: 2.1 } + ListElement{ xPos: -2.85 ; yPos: -2.28 ; zPos: -1.55 } + ListElement{ xPos: -1.3 ; yPos: -0.48 ; zPos: -2.2 } + ListElement{ xPos: 0.5 ; yPos: 0.28 ; zPos: 0.65 } + ListElement{ xPos: -1.1 ; yPos: 0.24 ; zPos: -2.25 } + ListElement{ xPos: 1.75 ; yPos: -1.4 ; zPos: 0.3 } + ListElement{ xPos: 1.5 ; yPos: -1.32 ; zPos: -2.8 } + ListElement{ xPos: -0.95 ; yPos: 2.08 ; zPos: -0.3 } + ListElement{ xPos: 2.75 ; yPos: 0.24 ; zPos: 0.75 } + ListElement{ xPos: 0.75 ; yPos: 0.56 ; zPos: -1.5 } + ListElement{ xPos: 1.1 ; yPos: -3.76 ; zPos: 0 } + ListElement{ xPos: 0.3 ; yPos: -1.2 ; zPos: 2.6 } + ListElement{ xPos: -0.25 ; yPos: 2.68 ; zPos: -3 } + ListElement{ xPos: 1.8 ; yPos: -0.76 ; zPos: 4.4 } + ListElement{ xPos: 0 ; yPos: 0 ; zPos: -1.9 } + ListElement{ xPos: -1.6 ; yPos: -0.12 ; zPos: -2.4 } + ListElement{ xPos: -1.25 ; yPos: 2.36 ; zPos: -2.9 } + ListElement{ xPos: 2.65 ; yPos: 0.04 ; zPos: 0.1 } + ListElement{ xPos: -3.35 ; yPos: 0.08 ; zPos: -1.3 } + ListElement{ xPos: 3.35 ; yPos: 0.04 ; zPos: 2.8 } + ListElement{ xPos: 4.45 ; yPos: 1.24 ; zPos: -0.95 } + ListElement{ xPos: -0.1 ; yPos: -1.52 ; zPos: -4.6 } + ListElement{ xPos: 1.1 ; yPos: 1.72 ; zPos: -3.2 } + ListElement{ xPos: -0.45 ; yPos: 1.92 ; zPos: 1.2 } + ListElement{ xPos: -0.7 ; yPos: -0.16 ; zPos: 0.8 } + ListElement{ xPos: 2.3 ; yPos: 0.2 ; zPos: 2.75 } + ListElement{ xPos: 1.7 ; yPos: 2.08 ; zPos: -0.95 } + ListElement{ xPos: 2.1 ; yPos: 1.56 ; zPos: 1.2 } + ListElement{ xPos: 3.05 ; yPos: -1.56 ; zPos: -0.45 } + ListElement{ xPos: 0.1 ; yPos: -3.08 ; zPos: -1.3 } + ListElement{ xPos: 1.65 ; yPos: -0.32 ; zPos: -0.8 } + ListElement{ xPos: 2.05 ; yPos: -1.8 ; zPos: 1.8 } + ListElement{ xPos: -0.55 ; yPos: 1.52 ; zPos: -0.8 } + ListElement{ xPos: -2.05 ; yPos: 1.52 ; zPos: 2.3 } + ListElement{ xPos: -2.35 ; yPos: -3.28 ; zPos: 3.5 } + ListElement{ xPos: -2.25 ; yPos: 2.56 ; zPos: -1.9 } + ListElement{ xPos: 0.3 ; yPos: -3.28 ; zPos: 3.4 } + ListElement{ xPos: 0.95 ; yPos: -1.68 ; zPos: -1.8 } + ListElement{ xPos: 2 ; yPos: 2.2 ; zPos: -0.05 } + ListElement{ xPos: 3 ; yPos: 2.92 ; zPos: -2.1 } + ListElement{ xPos: 2.55 ; yPos: 3.12 ; zPos: 2.95 } + ListElement{ xPos: -0.5 ; yPos: -2.8 ; zPos: -0.3 } + ListElement{ xPos: 0.35 ; yPos: 0.64 ; zPos: 0.35 } + ListElement{ xPos: -1.15 ; yPos: -0.16 ; zPos: -0.45 } + ListElement{ xPos: -2.4 ; yPos: -0.88 ; zPos: -0.3 } + ListElement{ xPos: 1.55 ; yPos: -1.48 ; zPos: -0.5 } + ListElement{ xPos: -0.85 ; yPos: -2.08 ; zPos: -1.1 } + ListElement{ xPos: 0.5 ; yPos: -0.8 ; zPos: 1.35 } + ListElement{ xPos: -2.15 ; yPos: 1.04 ; zPos: -3.25 } + ListElement{ xPos: -0.65 ; yPos: -1.32 ; zPos: -3.1 } + ListElement{ xPos: 0.35 ; yPos: -0.84 ; zPos: -1.7 } + ListElement{ xPos: -2.1 ; yPos: 0.96 ; zPos: 2.5 } + ListElement{ xPos: 1 ; yPos: -0.6 ; zPos: -3.15 } + ListElement{ xPos: -1.35 ; yPos: 0.76 ; zPos: 3.45 } + ListElement{ xPos: -3.05 ; yPos: -1.2 ; zPos: 1.45 } + ListElement{ xPos: -1.6 ; yPos: 0.8 ; zPos: -1.9 } + ListElement{ xPos: 0.7 ; yPos: 1.68 ; zPos: 2.3 } + ListElement{ xPos: 0 ; yPos: -0.76 ; zPos: -0.95 } + ListElement{ xPos: -2.3 ; yPos: -0.16 ; zPos: -1.25 } + ListElement{ xPos: -0.55 ; yPos: -2.28 ; zPos: 1.5 } + ListElement{ xPos: 0 ; yPos: -0.24 ; zPos: 0.55 } + ListElement{ xPos: -0.4 ; yPos: -0.92 ; zPos: -0.7 } + ListElement{ xPos: -2.6 ; yPos: -1.64 ; zPos: -0.9 } + ListElement{ xPos: 0.25 ; yPos: -1.24 ; zPos: 0.9 } + ListElement{ xPos: 0.7 ; yPos: 2.88 ; zPos: 0.4 } + ListElement{ xPos: -0.6 ; yPos: -1.84 ; zPos: -2.4 } + ListElement{ xPos: 0.5 ; yPos: 2.8 ; zPos: 1.6 } + ListElement{ xPos: -3.2 ; yPos: 3.28 ; zPos: -3.45 } + ListElement{ xPos: -1.45 ; yPos: 2.52 ; zPos: 2.7 } + ListElement{ xPos: 1 ; yPos: -2.68 ; zPos: 3 } + ListElement{ xPos: -0.6 ; yPos: -2.56 ; zPos: 1.35 } + ListElement{ xPos: 1.95 ; yPos: -1.48 ; zPos: -3.85 } + ListElement{ xPos: 3.85 ; yPos: 0.08 ; zPos: -1.65 } + ListElement{ xPos: -1.1 ; yPos: -1.6 ; zPos: -1.05 } + ListElement{ xPos: 1.25 ; yPos: -0.04 ; zPos: 1.35 } + ListElement{ xPos: 2.9 ; yPos: 2.08 ; zPos: 0.2 } + ListElement{ xPos: 0.7 ; yPos: 2.52 ; zPos: 0.65 } + ListElement{ xPos: -1.85 ; yPos: -1.8 ; zPos: 1.05 } + ListElement{ xPos: 1.6 ; yPos: 1.12 ; zPos: -3.05 } + ListElement{ xPos: -2.8 ; yPos: 0.12 ; zPos: 0.5 } + ListElement{ xPos: -1.4 ; yPos: 1.64 ; zPos: -1.95 } + ListElement{ xPos: 2.35 ; yPos: 0.4 ; zPos: -0.95 } + ListElement{ xPos: 0.95 ; yPos: -0.28 ; zPos: -0.8 } + ListElement{ xPos: -1.5 ; yPos: -1.76 ; zPos: 2.5 } + ListElement{ xPos: -3.05 ; yPos: 2.44 ; zPos: -0.2 } + ListElement{ xPos: -0.6 ; yPos: 1.12 ; zPos: -0.5 } + ListElement{ xPos: -1.7 ; yPos: -0.72 ; zPos: -1.05 } + ListElement{ xPos: 0.45 ; yPos: 0.84 ; zPos: -0.1 } + ListElement{ xPos: -3.5 ; yPos: 0.36 ; zPos: 1.1 } + ListElement{ xPos: 0.2 ; yPos: -2.08 ; zPos: 0.25 } + ListElement{ xPos: -2.1 ; yPos: 0.72 ; zPos: 0.85 } + ListElement{ xPos: -2.45 ; yPos: -0.72 ; zPos: -0.8 } + ListElement{ xPos: 4.25 ; yPos: 1.84 ; zPos: -0.55 } + ListElement{ xPos: 0.1 ; yPos: -1.32 ; zPos: -1.45 } + ListElement{ xPos: -3.65 ; yPos: 0.36 ; zPos: 0.3 } + ListElement{ xPos: 0.9 ; yPos: 0.32 ; zPos: -3.6 } + ListElement{ xPos: -0.25 ; yPos: 1.84 ; zPos: 0 } + ListElement{ xPos: 3.5 ; yPos: 0.92 ; zPos: -2.1 } + ListElement{ xPos: 0.65 ; yPos: 2.36 ; zPos: 4 } + ListElement{ xPos: 0.55 ; yPos: -1.08 ; zPos: 0.2 } + ListElement{ xPos: 1 ; yPos: 0.04 ; zPos: -3.75 } + ListElement{ xPos: 0.05 ; yPos: 0.52 ; zPos: -3.8 } + ListElement{ xPos: 3.45 ; yPos: 0.56 ; zPos: 4.2 } + ListElement{ xPos: -0.25 ; yPos: 2.36 ; zPos: -3.55 } + ListElement{ xPos: 1.95 ; yPos: 1.28 ; zPos: 4.25 } + ListElement{ xPos: 1.8 ; yPos: 3.12 ; zPos: 0.65 } + ListElement{ xPos: -3.35 ; yPos: 0.8 ; zPos: -1 } + ListElement{ xPos: 2.4 ; yPos: -0.16 ; zPos: 1.25 } + ListElement{ xPos: 2.5 ; yPos: 0.96 ; zPos: 1.45 } + ListElement{ xPos: 0.8 ; yPos: -0.16 ; zPos: -0.55 } + ListElement{ xPos: -3.45 ; yPos: -0.08 ; zPos: 0.85 } + ListElement{ xPos: -3.4 ; yPos: 0.8 ; zPos: 1.35 } + ListElement{ xPos: -0.8 ; yPos: 0.24 ; zPos: -1.2 } + ListElement{ xPos: 3.6 ; yPos: 1.16 ; zPos: -0.1 } + ListElement{ xPos: -1.45 ; yPos: -3.08 ; zPos: -0.3 } + ListElement{ xPos: -3.65 ; yPos: -1.04 ; zPos: 0.15 } + ListElement{ xPos: 1.35 ; yPos: -0.76 ; zPos: 0.55 } + ListElement{ xPos: -2.75 ; yPos: -1 ; zPos: -1.55 } + ListElement{ xPos: 1.6 ; yPos: 2.04 ; zPos: 0.9 } + ListElement{ xPos: 3 ; yPos: -3.24 ; zPos: 0.1 } + ListElement{ xPos: -4.25 ; yPos: 0.56 ; zPos: -4.35 } + ListElement{ xPos: -2.6 ; yPos: -0.44 ; zPos: 0.5 } + ListElement{ xPos: 0.2 ; yPos: -0.64 ; zPos: -0.35 } + ListElement{ xPos: -3.2 ; yPos: -3.52 ; zPos: 1 } + ListElement{ xPos: -0.7 ; yPos: -1.84 ; zPos: -2.45 } + ListElement{ xPos: -4.1 ; yPos: 0.12 ; zPos: 3.85 } + ListElement{ xPos: -4.05 ; yPos: 0.04 ; zPos: -0.3 } + ListElement{ xPos: 2 ; yPos: 2.32 ; zPos: 1.2 } + ListElement{ xPos: -0.35 ; yPos: 1 ; zPos: -0.7 } + ListElement{ xPos: -0.9 ; yPos: 0.36 ; zPos: 1.55 } + ListElement{ xPos: -0.05 ; yPos: 2.4 ; zPos: -4.35 } + ListElement{ xPos: 1.5 ; yPos: -0.96 ; zPos: -3.4 } + ListElement{ xPos: -2.8 ; yPos: 2.08 ; zPos: -1.75 } + ListElement{ xPos: -0.2 ; yPos: 0.72 ; zPos: 0.9 } + ListElement{ xPos: -1.1 ; yPos: -1.68 ; zPos: 0.1 } + ListElement{ xPos: -1.2 ; yPos: -0.32 ; zPos: -0.85 } + ListElement{ xPos: 0.75 ; yPos: 0.56 ; zPos: 3.95 } + ListElement{ xPos: 1.15 ; yPos: 2.8 ; zPos: 0.65 } + ListElement{ xPos: -2.55 ; yPos: -2.56 ; zPos: 0.75 } + ListElement{ xPos: 0.95 ; yPos: 0.84 ; zPos: -0.85 } + ListElement{ xPos: -2.15 ; yPos: 0.24 ; zPos: -3.1 } + ListElement{ xPos: 0.35 ; yPos: -1.68 ; zPos: 0.45 } + ListElement{ xPos: -0.75 ; yPos: -2.4 ; zPos: -0.35 } + ListElement{ xPos: 0.2 ; yPos: 2.04 ; zPos: 0.1 } + ListElement{ xPos: -2.4 ; yPos: 0.68 ; zPos: 1.8 } + ListElement{ xPos: 1.9 ; yPos: 0.88 ; zPos: 1.45 } + ListElement{ xPos: 0.25 ; yPos: 1.92 ; zPos: -1.7 } + ListElement{ xPos: -0.95 ; yPos: -0.6 ; zPos: -2 } + ListElement{ xPos: 0.2 ; yPos: -2.44 ; zPos: 1.05 } + ListElement{ xPos: 0.3 ; yPos: -0.6 ; zPos: -3.35 } + ListElement{ xPos: 0.05 ; yPos: 0.52 ; zPos: -3.3 } + ListElement{ xPos: -0.05 ; yPos: -0.88 ; zPos: -0.8 } + ListElement{ xPos: 0.45 ; yPos: 2.84 ; zPos: -1.9 } + ListElement{ xPos: 2.85 ; yPos: -0.68 ; zPos: -2.45 } + ListElement{ xPos: -1.05 ; yPos: -1.92 ; zPos: 0.9 } + ListElement{ xPos: -2.75 ; yPos: -0.16 ; zPos: -1.55 } + ListElement{ xPos: 1.9 ; yPos: 1 ; zPos: 3.15 } + ListElement{ xPos: -2.25 ; yPos: 0.8 ; zPos: -4.35 } + ListElement{ xPos: 1.8 ; yPos: -0.72 ; zPos: -3.8 } + ListElement{ xPos: -3.25 ; yPos: -1.16 ; zPos: -1.85 } + ListElement{ xPos: -1.6 ; yPos: -2.32 ; zPos: -0.8 } + ListElement{ xPos: 3.1 ; yPos: 0.32 ; zPos: 2.15 } + ListElement{ xPos: -1.05 ; yPos: -0.56 ; zPos: -3.45 } + ListElement{ xPos: 0.75 ; yPos: -1.08 ; zPos: -0.25 } + ListElement{ xPos: -0.45 ; yPos: -2.24 ; zPos: 2.5 } + ListElement{ xPos: 0.2 ; yPos: 0.12 ; zPos: 0 } + ListElement{ xPos: -1 ; yPos: 1.56 ; zPos: -1.6 } + ListElement{ xPos: 1.3 ; yPos: -2.84 ; zPos: -0.25 } + ListElement{ xPos: 0.55 ; yPos: 1.36 ; zPos: 2.95 } + ListElement{ xPos: -1.9 ; yPos: -0.88 ; zPos: 0.05 } + ListElement{ xPos: -1.9 ; yPos: 0.56 ; zPos: -0.7 } + ListElement{ xPos: -1.25 ; yPos: -0.52 ; zPos: 2.35 } + ListElement{ xPos: 2.1 ; yPos: -0.72 ; zPos: -1.4 } + ListElement{ xPos: -0.9 ; yPos: -0.72 ; zPos: -2.05 } + ListElement{ xPos: 0.9 ; yPos: -0.96 ; zPos: -3 } + ListElement{ xPos: 2.7 ; yPos: -2.36 ; zPos: 1.25 } + ListElement{ xPos: 3.3 ; yPos: -1 ; zPos: -3.55 } + ListElement{ xPos: -0.75 ; yPos: -1.96 ; zPos: 2 } + ListElement{ xPos: -0.45 ; yPos: 0.52 ; zPos: -0.1 } + ListElement{ xPos: 0.8 ; yPos: 0 ; zPos: -3.3 } + ListElement{ xPos: -0.45 ; yPos: -0.44 ; zPos: -2.8 } + ListElement{ xPos: -3.2 ; yPos: 3.12 ; zPos: 0.5 } + ListElement{ xPos: -3.1 ; yPos: 2.84 ; zPos: -0.45 } + ListElement{ xPos: 0.2 ; yPos: -1.2 ; zPos: 0.9 } + ListElement{ xPos: -0.65 ; yPos: -1.4 ; zPos: -1.35 } + ListElement{ xPos: -0.45 ; yPos: 1.84 ; zPos: -0.95 } + ListElement{ xPos: -1.3 ; yPos: 0.8 ; zPos: -1 } + ListElement{ xPos: 2.35 ; yPos: -0.28 ; zPos: 1.55 } + ListElement{ xPos: 2 ; yPos: -2.4 ; zPos: 1.2 } + ListElement{ xPos: 1.2 ; yPos: -1.72 ; zPos: -0.4 } + ListElement{ xPos: -2 ; yPos: 3.04 ; zPos: 1.9 } + ListElement{ xPos: -1.85 ; yPos: -0.16 ; zPos: -2.9 } + ListElement{ xPos: -0.95 ; yPos: -2.76 ; zPos: 2.5 } + ListElement{ xPos: 2.55 ; yPos: -0.64 ; zPos: 3.25 } + ListElement{ xPos: -0.6 ; yPos: -0.72 ; zPos: -1.45 } + ListElement{ xPos: 0.8 ; yPos: 0.16 ; zPos: 2.2 } + ListElement{ xPos: 0.6 ; yPos: 0.04 ; zPos: 3.2 } + ListElement{ xPos: -3.75 ; yPos: -0.24 ; zPos: 0.2 } + ListElement{ xPos: 0.4 ; yPos: -0.32 ; zPos: 0.6 } + ListElement{ xPos: -2.1 ; yPos: -3.68 ; zPos: 0.2 } + ListElement{ xPos: 0.45 ; yPos: -2.44 ; zPos: 3 } + ListElement{ xPos: 0.5 ; yPos: -1.8 ; zPos: -1.9 } + ListElement{ xPos: 0 ; yPos: 1.8 ; zPos: -1.25 } + ListElement{ xPos: 2.6 ; yPos: 2.2 ; zPos: -4.25 } + ListElement{ xPos: 0.25 ; yPos: 2.28 ; zPos: -0.4 } + ListElement{ xPos: -0.3 ; yPos: -1.24 ; zPos: 0.7 } + ListElement{ xPos: 0.1 ; yPos: -3 ; zPos: 0.05 } + ListElement{ xPos: -1.2 ; yPos: -0.76 ; zPos: 2.65 } + ListElement{ xPos: 2.8 ; yPos: 0.44 ; zPos: 0.55 } + ListElement{ xPos: 2.6 ; yPos: -0.68 ; zPos: 0.2 } + ListElement{ xPos: 1.75 ; yPos: -0.16 ; zPos: -3.6 } + ListElement{ xPos: -0.55 ; yPos: -0.16 ; zPos: 2.3 } + ListElement{ xPos: 0.1 ; yPos: -1.72 ; zPos: -0.4 } + ListElement{ xPos: 3.6 ; yPos: -0.84 ; zPos: -0.2 } + ListElement{ xPos: -1.4 ; yPos: -1.48 ; zPos: -2.7 } + ListElement{ xPos: 1.1 ; yPos: -0.2 ; zPos: -2.75 } + ListElement{ xPos: -1.85 ; yPos: 1.76 ; zPos: -0.85 } + ListElement{ xPos: 0.05 ; yPos: -0.4 ; zPos: 1.05 } + ListElement{ xPos: -1.25 ; yPos: 0.52 ; zPos: -0.3 } + ListElement{ xPos: -0.85 ; yPos: -0.24 ; zPos: 1.9 } + ListElement{ xPos: -1.95 ; yPos: -0.08 ; zPos: -1.95 } + ListElement{ xPos: -2.7 ; yPos: -0.52 ; zPos: -0.35 } + ListElement{ xPos: 0.1 ; yPos: 0.16 ; zPos: 4.1 } + ListElement{ xPos: -0.6 ; yPos: -0.52 ; zPos: -1.2 } + ListElement{ xPos: -2.3 ; yPos: -0.4 ; zPos: -2.85 } + ListElement{ xPos: -0.35 ; yPos: -1.2 ; zPos: -1.85 } + ListElement{ xPos: 1.7 ; yPos: -0.2 ; zPos: 3.35 } + ListElement{ xPos: 2.75 ; yPos: -2.32 ; zPos: 3.15 } + ListElement{ xPos: 2.85 ; yPos: 0.44 ; zPos: 0.9 } + ListElement{ xPos: -2.1 ; yPos: 0.4 ; zPos: 1 } + ListElement{ xPos: 4.45 ; yPos: -0.4 ; zPos: -3.75 } + ListElement{ xPos: 0.7 ; yPos: -1.44 ; zPos: 0.85 } + ListElement{ xPos: -0.85 ; yPos: 1.76 ; zPos: 1.05 } + ListElement{ xPos: -0.4 ; yPos: -0.92 ; zPos: -2.4 } + ListElement{ xPos: -1 ; yPos: -0.28 ; zPos: -1.6 } + ListElement{ xPos: -0.75 ; yPos: 0.56 ; zPos: -0.75 } + ListElement{ xPos: 0.55 ; yPos: 1.72 ; zPos: -0.2 } + ListElement{ xPos: 2.75 ; yPos: -0.24 ; zPos: -0.5 } + ListElement{ xPos: -2.2 ; yPos: -1.04 ; zPos: -4.05 } + ListElement{ xPos: 3.35 ; yPos: -0.56 ; zPos: -2.9 } + ListElement{ xPos: 2.4 ; yPos: -0.32 ; zPos: -1.55 } + ListElement{ xPos: 0.85 ; yPos: -0.88 ; zPos: -2.1 } + ListElement{ xPos: 0.4 ; yPos: 0.24 ; zPos: -0.45 } + ListElement{ xPos: -4.1 ; yPos: -0.72 ; zPos: 0.35 } + ListElement{ xPos: -0.5 ; yPos: 0.04 ; zPos: -0.95 } + ListElement{ xPos: -2.8 ; yPos: 2.92 ; zPos: 0.95 } + ListElement{ xPos: -1.65 ; yPos: 0.96 ; zPos: 1.25 } + ListElement{ xPos: 1.45 ; yPos: 0.84 ; zPos: 0.25 } + ListElement{ xPos: 2.2 ; yPos: -1.76 ; zPos: 0 } + ListElement{ xPos: -0.75 ; yPos: 1.08 ; zPos: -2.1 } + ListElement{ xPos: -3.15 ; yPos: -0.16 ; zPos: -1.1 } + ListElement{ xPos: 2.55 ; yPos: -1.6 ; zPos: 1.1 } + ListElement{ xPos: 0.15 ; yPos: 1.84 ; zPos: 0.4 } + ListElement{ xPos: -1.5 ; yPos: 2.04 ; zPos: 3.2 } + ListElement{ xPos: -1.05 ; yPos: -0.84 ; zPos: -1.9 } + ListElement{ xPos: 0.1 ; yPos: -2.96 ; zPos: -0.2 } + ListElement{ xPos: 2.6 ; yPos: 0.68 ; zPos: -2.6 } + ListElement{ xPos: -0.4 ; yPos: -0.36 ; zPos: -1.05 } + ListElement{ xPos: 1.1 ; yPos: 0.04 ; zPos: -2.4 } + ListElement{ xPos: -2.3 ; yPos: 1.4 ; zPos: -0.1 } + ListElement{ xPos: 0.85 ; yPos: -1.2 ; zPos: 1.5 } + ListElement{ xPos: 0.1 ; yPos: 0.24 ; zPos: -2.75 } + ListElement{ xPos: 1.15 ; yPos: 1.32 ; zPos: -1.7 } + ListElement{ xPos: 0.35 ; yPos: -1.6 ; zPos: -2.75 } + ListElement{ xPos: 0.35 ; yPos: -1.36 ; zPos: 2.55 } + ListElement{ xPos: -1.65 ; yPos: -0.28 ; zPos: 2.75 } + ListElement{ xPos: -3.8 ; yPos: -3.28 ; zPos: 2.55 } + ListElement{ xPos: -2.6 ; yPos: 1.08 ; zPos: -0.45 } + ListElement{ xPos: 1.6 ; yPos: -2.2 ; zPos: 2.45 } + ListElement{ xPos: -0.75 ; yPos: 1.16 ; zPos: -1.9 } + ListElement{ xPos: -2.05 ; yPos: 3.04 ; zPos: 1.9 } + ListElement{ xPos: -0.6 ; yPos: 2.88 ; zPos: 1 } + ListElement{ xPos: 3.25 ; yPos: -2 ; zPos: -0.35 } + ListElement{ xPos: -0.7 ; yPos: 1.36 ; zPos: 1.85 } + ListElement{ xPos: 0.85 ; yPos: 1.08 ; zPos: 0.95 } + ListElement{ xPos: 1.15 ; yPos: 1.32 ; zPos: 3.4 } + ListElement{ xPos: 3.6 ; yPos: 0.44 ; zPos: -0.4 } + ListElement{ xPos: 0.9 ; yPos: 2.12 ; zPos: 1.95 } + ListElement{ xPos: -0.6 ; yPos: -0.24 ; zPos: 1.05 } + ListElement{ xPos: -1.6 ; yPos: 0.64 ; zPos: -1.3 } + ListElement{ xPos: -1.3 ; yPos: -0.6 ; zPos: -1.95 } + ListElement{ xPos: -0.1 ; yPos: 0.36 ; zPos: -1.25 } + ListElement{ xPos: 1 ; yPos: -1.48 ; zPos: 0.95 } + ListElement{ xPos: 1.2 ; yPos: -1.92 ; zPos: -0.9 } + ListElement{ xPos: 0.1 ; yPos: 2.2 ; zPos: -0.4 } + ListElement{ xPos: -2.85 ; yPos: 0.64 ; zPos: 0.55 } + ListElement{ xPos: -1.6 ; yPos: 2.56 ; zPos: -2.2 } + ListElement{ xPos: -3.2 ; yPos: -0.08 ; zPos: -0.65 } + ListElement{ xPos: 3.15 ; yPos: -0.76 ; zPos: 1.15 } + ListElement{ xPos: 1.2 ; yPos: 0.6 ; zPos: -2.6 } + ListElement{ xPos: 2.65 ; yPos: -3.52 ; zPos: 1.5 } + ListElement{ xPos: -1.85 ; yPos: -1.76 ; zPos: -1.7 } + ListElement{ xPos: -1.55 ; yPos: 1.2 ; zPos: 2.15 } + ListElement{ xPos: -0.55 ; yPos: 2.88 ; zPos: -2.85 } + ListElement{ xPos: -3.1 ; yPos: -0.28 ; zPos: -3.35 } + ListElement{ xPos: 2.45 ; yPos: 0.08 ; zPos: -2.2 } + ListElement{ xPos: -2.05 ; yPos: 0.88 ; zPos: -0.65 } + ListElement{ xPos: 1.1 ; yPos: -0.56 ; zPos: -3.65 } + ListElement{ xPos: -0.5 ; yPos: -0.68 ; zPos: 0.3 } + ListElement{ xPos: 0.4 ; yPos: 0.88 ; zPos: -1.65 } + ListElement{ xPos: 1.65 ; yPos: 0.16 ; zPos: 0.75 } + ListElement{ xPos: -0.2 ; yPos: 1.72 ; zPos: 0.6 } + ListElement{ xPos: 1.15 ; yPos: -0.48 ; zPos: 0.1 } + ListElement{ xPos: 0.05 ; yPos: 1.04 ; zPos: 2.15 } + ListElement{ xPos: 0.15 ; yPos: -0.64 ; zPos: -1.3 } + ListElement{ xPos: 1.7 ; yPos: -1.88 ; zPos: -2.85 } + ListElement{ xPos: 3.35 ; yPos: 1.28 ; zPos: -1.05 } + ListElement{ xPos: -3.7 ; yPos: -2.88 ; zPos: -1.05 } + ListElement{ xPos: -1.7 ; yPos: 3.08 ; zPos: 0.15 } + ListElement{ xPos: 3 ; yPos: -2.52 ; zPos: -2.45 } + ListElement{ xPos: -0.15 ; yPos: 0.16 ; zPos: -0.3 } + ListElement{ xPos: -2.15 ; yPos: -0.8 ; zPos: 1.25 } + ListElement{ xPos: -1.95 ; yPos: -0.84 ; zPos: -3.1 } + ListElement{ xPos: -0.2 ; yPos: -0.8 ; zPos: -3.55 } + ListElement{ xPos: 0.4 ; yPos: 0.32 ; zPos: -1.55 } + ListElement{ xPos: 1.9 ; yPos: -2.84 ; zPos: -0.55 } + ListElement{ xPos: 1.05 ; yPos: 1.32 ; zPos: 0.6 } + ListElement{ xPos: 2.4 ; yPos: 1 ; zPos: 2.35 } + ListElement{ xPos: -0.7 ; yPos: 0.28 ; zPos: -1.3 } + ListElement{ xPos: 0.85 ; yPos: 0.96 ; zPos: -2.7 } + ListElement{ xPos: -0.85 ; yPos: -0.88 ; zPos: 1.1 } + ListElement{ xPos: 1.5 ; yPos: 0.28 ; zPos: -3.1 } + ListElement{ xPos: 1.9 ; yPos: 0.28 ; zPos: -1.75 } + ListElement{ xPos: 0.2 ; yPos: -2.04 ; zPos: -0.85 } + ListElement{ xPos: -1.5 ; yPos: 2.04 ; zPos: -1.35 } + ListElement{ xPos: -0.7 ; yPos: 1.24 ; zPos: 1.95 } + ListElement{ xPos: 1.65 ; yPos: -1.04 ; zPos: -0.95 } + ListElement{ xPos: -2.35 ; yPos: -1.76 ; zPos: -0.2 } + ListElement{ xPos: 0.85 ; yPos: -2.92 ; zPos: 3.4 } + ListElement{ xPos: -0.7 ; yPos: 2.52 ; zPos: 1 } + ListElement{ xPos: -3.4 ; yPos: 0.6 ; zPos: 0.9 } + } + + ListModel { + id: dataModelThree + ListElement{ xPos: 8.0; yPos: -2.0; zPos: 4.0 } + ListElement{ xPos: 7.8; yPos: -2.2; zPos: 5.0 } + ListElement{ xPos: 7.6; yPos: -2.4; zPos: 4.5 } + ListElement{ xPos: 9.4; yPos: -2.6; zPos: 3.8 } + ListElement{ xPos: 7.2; yPos: -2.8; zPos: 4.8 } + ListElement{ xPos: 9.0; yPos: -2.3; zPos: 4.1 } + ListElement{ xPos: 6.9; yPos: -3.3; zPos: 4.9 } + ListElement{ xPos: 6.7; yPos: -3.5; zPos: 3.5 } + ListElement{ xPos: 6.5; yPos: -3.7; zPos: 3.3 } + ListElement{ xPos: 6.3; yPos: -3.4; zPos: 3.7 } + ListElement{ xPos: 7.9 ; yPos: -3.32 ; zPos: 2.48 } + ListElement{ xPos: 6.2 ; yPos: -4.04 ; zPos: 3.4 } + ListElement{ xPos: 9.06 ; yPos: -4.6 ; zPos: 4.08 } + ListElement{ xPos: 5.98 ; yPos: -2.26 ; zPos: 2.82 } + ListElement{ xPos: 5.46 ; yPos: -3.9 ; zPos: 3.2 } + ListElement{ xPos: 8.14 ; yPos: -3.34 ; zPos: 3.42 } + ListElement{ xPos: 6.84 ; yPos: -5.0 ; zPos: 2.36 } + ListElement{ xPos: 7.6 ; yPos: -3.82 ; zPos: 2.78 } + ListElement{ xPos: 7.1 ; yPos: -3.94 ; zPos: 2.7 } + ListElement{ xPos: 6.02 ; yPos: -4.36 ; zPos: 2.56 } + ListElement{ xPos: 8.64 ; yPos: -3.04 ; zPos: 2.62 } + ListElement{ xPos: 7.82 ; yPos: -3.68 ; zPos: 2.96 } + ListElement{ xPos: 7.1 ; yPos: -3.6 ; zPos: 4.22 } + ListElement{ xPos: 8.6 ; yPos: -3.88 ; zPos: 3.9 } + ListElement{ xPos: 8.46 ; yPos: -4.2 ; zPos: 3.32 } + ListElement{ xPos: 6.98 ; yPos: -3.94 ; zPos: 3.1 } + ListElement{ xPos: 7.36 ; yPos: -4.24 ; zPos: 1.72 } + ListElement{ xPos: 9.42 ; yPos: -4.52 ; zPos: 2.62 } + ListElement{ xPos: 6.04 ; yPos: -4.48 ; zPos: 2.74 } + ListElement{ xPos: 10.0 ; yPos: -3.92 ; zPos: 3.82 } + ListElement{ xPos: 6.76 ; yPos: -3.5 ; zPos: 2.92 } + ListElement{ xPos: 7 ; yPos: -4.42 ; zPos: 2.62 } + ListElement{ xPos: 5.32 ; yPos: -3.28 ; zPos: 3.34 } + ListElement{ xPos: 6.4 ; yPos: -4.6 ; zPos: 2.4 } + ListElement{ xPos: 5.66 ; yPos: -4.98 ; zPos: 3.72 } + } +} diff --git a/examples/datavisualization/qmlscatter/qml/qmlscatter/NewButton.qml b/examples/datavisualization/qmlscatter/qml/qmlscatter/NewButton.qml new file mode 100644 index 00000000..e4fb99d2 --- /dev/null +++ b/examples/datavisualization/qmlscatter/qml/qmlscatter/NewButton.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** 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.Controls 1.0 +import QtQuick.Controls.Styles 1.0 + +Item { + id: newbutton + + property alias text: buttonText.text + + signal clicked + + implicitWidth: buttonText.implicitWidth + 5 + implicitHeight: buttonText.implicitHeight + 10 + + Button { + id: buttonText + width: parent.width + height: parent.height + + style: ButtonStyle { + label: Component { + Text { + text: buttonText.text + clip: true + wrapMode: Text.WordWrap + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + anchors.fill: parent + } + } + } + onClicked: newbutton.clicked() + } +} diff --git a/examples/datavisualization/qmlscatter/qml/qmlscatter/main.qml b/examples/datavisualization/qmlscatter/qml/qmlscatter/main.qml new file mode 100644 index 00000000..beb4ccaa --- /dev/null +++ b/examples/datavisualization/qmlscatter/qml/qmlscatter/main.qml @@ -0,0 +1,229 @@ +/**************************************************************************** +** +** 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 +** +****************************************************************************/ + +//! [0] +import QtQuick 2.1 +import QtQuick.Layouts 1.0 +import QtDataVisualization 1.0 +import "." +//! [0] + +//! [1] +Item { + id: mainView + //! [1] + + //! [4] + Data { + id: seriesData + } + //! [4] + + //! [13] + Theme3D { + id: themeIsabelle + type: Theme3D.ThemeIsabelle + font.family: "Lucida Handwriting" + font.pointSize: 40 + } + //! [13] + + Theme3D { + id: themeArmyBlue + type: Theme3D.ThemeArmyBlue + } + + //! [8] + //! [9] + Item { + id: dataView + anchors.bottom: parent.bottom + //! [9] + width: parent.width + height: parent.height - buttonLayout.height + //! [8] + + //! [2] + Scatter3D { + id: scatterGraph + width: dataView.width + height: dataView.height + //! [2] + //! [3] + theme: themeIsabelle + shadowQuality: AbstractGraph3D.ShadowQualitySoftLow + //! [3] + //! [6] + axisX.segmentCount: 3 + axisX.subSegmentCount: 2 + axisX.labelFormat: "%.2f" + axisZ.segmentCount: 2 + axisZ.subSegmentCount: 2 + axisZ.labelFormat: "%.2f" + axisY.segmentCount: 2 + axisY.subSegmentCount: 2 + axisY.labelFormat: "%.2f" + //! [6] + //! [5] + Scatter3DSeries { + id: scatterSeries + //! [5] + //! [10] + itemLabelFormat: "Series 1: X:@xLabel Y:@yLabel Z:@zLabel" + //! [10] + + //! [11] + ItemModelScatterDataProxy { + itemModel: seriesData.model + xPosRole: "xPos" + yPosRole: "yPos" + zPosRole: "zPos" + } + //! [11] + } + + //! [12] + Scatter3DSeries { + id: scatterSeriesTwo + itemLabelFormat: "Series 2: X:@xLabel Y:@yLabel Z:@zLabel" + itemSize: 0.1 + mesh: Abstract3DSeries.MeshCube + //! [12] + + ItemModelScatterDataProxy { + itemModel: seriesData.modelTwo + xPosRole: "xPos" + yPosRole: "yPos" + zPosRole: "zPos" + } + } + Scatter3DSeries { + id: scatterSeriesThree + itemLabelFormat: "Series 3: X:@xLabel Y:@yLabel Z:@zLabel" + itemSize: 0.2 + mesh: Abstract3DSeries.MeshMinimal + + ItemModelScatterDataProxy { + itemModel: seriesData.modelThree + xPosRole: "xPos" + yPosRole: "yPos" + zPosRole: "zPos" + } + } + } + } + + RowLayout { + id: buttonLayout + Layout.minimumHeight: cameraToggle.height + width: parent.width + anchors.left: parent.left + spacing: 0 + //! [7] + NewButton { + id: shadowToggle + Layout.fillHeight: true + Layout.fillWidth: true + text: "Hide Shadows" + onClicked: { + if (scatterGraph.shadowQuality === AbstractGraph3D.ShadowQualityNone) { + scatterGraph.shadowQuality = AbstractGraph3D.ShadowQualitySoftLow; + text = "Hide Shadows"; + } else { + scatterGraph.shadowQuality = AbstractGraph3D.ShadowQualityNone; + text = "Show Shadows"; + } + } + } + //! [7] + + NewButton { + id: smoothToggle + Layout.fillHeight: true + Layout.fillWidth: true + text: "Use Smooth for Series One" + onClicked: { + if (scatterSeries.meshSmooth === false) { + text = "Use Flat for Series One"; + scatterSeries.meshSmooth = true; + } else { + text = "Use Smooth for Series One" + scatterSeries.meshSmooth = false; + } + } + } + + NewButton { + id: cameraToggle + Layout.fillHeight: true + Layout.fillWidth: true + text: "Change Camera Placement" + onClicked: { + if (scatterGraph.scene.activeCamera.cameraPreset === Camera3D.CameraPresetFront) { + scatterGraph.scene.activeCamera.cameraPreset = + Camera3D.CameraPresetIsometricRightHigh; + } else { + scatterGraph.scene.activeCamera.cameraPreset = Camera3D.CameraPresetFront; + } + } + } + + NewButton { + id: themeToggle + Layout.fillHeight: true + Layout.fillWidth: true + text: "Change Theme" + onClicked: { + if (scatterGraph.theme.type === Theme3D.ThemeArmyBlue) { + scatterGraph.theme = themeIsabelle + } else { + scatterGraph.theme = themeArmyBlue + } + if (scatterGraph.theme.backgroundEnabled === true) { + backgroundToggle.text = "Hide Background"; + } else { + backgroundToggle.text = "Show Background"; + } + } + } + + NewButton { + id: backgroundToggle + Layout.fillHeight: true + Layout.fillWidth: true + text: "Hide Background" + onClicked: { + if (scatterGraph.theme.backgroundEnabled === true) { + scatterGraph.theme.backgroundEnabled = false; + text = "Show Background"; + } else { + scatterGraph.theme.backgroundEnabled = true; + text = "Hide Background"; + } + } + } + + NewButton { + id: exitButton + Layout.fillHeight: true + Layout.fillWidth: true + text: "Quit" + onClicked: Qt.quit(0); + } + } +} diff --git a/examples/datavisualization/qmlscatter/qmlscatter.desktop b/examples/datavisualization/qmlscatter/qmlscatter.desktop new file mode 100644 index 00000000..0f9e5498 --- /dev/null +++ b/examples/datavisualization/qmlscatter/qmlscatter.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=qmlscatter +Exec=/opt/qmlscatter/bin/qmlscatter +Icon=qmlscatter64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/examples/datavisualization/qmlscatter/qmlscatter.pro b/examples/datavisualization/qmlscatter/qmlscatter.pro new file mode 100644 index 00000000..166b26a0 --- /dev/null +++ b/examples/datavisualization/qmlscatter/qmlscatter.pro @@ -0,0 +1,20 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + +# Add more folders to ship with the application, here +folder_01.source = qml/qmlscatter +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +include(qtquick2applicationviewer/qtquick2applicationviewer.pri) +qtcAddDeployment() + +RESOURCES += qmlscatter.qrc diff --git a/examples/datavisualization/qmlscatter/qmlscatter.qrc b/examples/datavisualization/qmlscatter/qmlscatter.qrc new file mode 100644 index 00000000..225d78b0 --- /dev/null +++ b/examples/datavisualization/qmlscatter/qmlscatter.qrc @@ -0,0 +1,7 @@ + + + qml/qmlscatter/Data.qml + qml/qmlscatter/main.qml + qml/qmlscatter/NewButton.qml + + diff --git a/examples/datavisualization/qmlscatter/qmlscatter64.png b/examples/datavisualization/qmlscatter/qmlscatter64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/examples/datavisualization/qmlscatter/qmlscatter64.png differ diff --git a/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.cpp new file mode 100644 index 00000000..10709d7a --- /dev/null +++ b/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.cpp @@ -0,0 +1,81 @@ +// checksum 0x4f6f version 0x90005 +/* + This file was generated by the Qt Quick 2 Application wizard of Qt Creator. + QtQuick2ApplicationViewer is a convenience class containing mobile device specific + code such as screen orientation handling. Also QML paths and debugging are + handled here. + It is recommended not to modify this file, since newer versions of Qt Creator + may offer an updated version of it. +*/ + +#include "qtquick2applicationviewer.h" + +#include +#include +#include + +class QtQuick2ApplicationViewerPrivate +{ + QString mainQmlFile; + friend class QtQuick2ApplicationViewer; + static QString adjustPath(const QString &path); +}; + +QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path) +{ +#if defined(Q_OS_MAC) + if (!QDir::isAbsolutePath(path)) + return QString::fromLatin1("%1/../Resources/%2") + .arg(QCoreApplication::applicationDirPath(), path); +#elif defined(Q_OS_BLACKBERRY) + if (!QDir::isAbsolutePath(path)) + return QString::fromLatin1("app/native/%1").arg(path); +#elif !defined(Q_OS_ANDROID) + QString pathInInstallDir = + QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path); + if (QFileInfo(pathInInstallDir).exists()) + return pathInInstallDir; + pathInInstallDir = + QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path); + if (QFileInfo(pathInInstallDir).exists()) + return pathInInstallDir; +#endif + return path; +} + +QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent) + : QQuickView(parent) + , d(new QtQuick2ApplicationViewerPrivate()) +{ + connect(engine(), SIGNAL(quit()), SLOT(close())); + setResizeMode(QQuickView::SizeRootObjectToView); +} + +QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer() +{ + delete d; +} + +void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file) +{ + d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file); +#ifdef Q_OS_ANDROID + setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile)); +#else + setSource(QUrl::fromLocalFile(d->mainQmlFile)); +#endif +} + +void QtQuick2ApplicationViewer::addImportPath(const QString &path) +{ + engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path)); +} + +void QtQuick2ApplicationViewer::showExpanded() +{ +#if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX) + showFullScreen(); +#else + show(); +#endif +} diff --git a/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.h b/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.h new file mode 100644 index 00000000..cf66f140 --- /dev/null +++ b/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.h @@ -0,0 +1,33 @@ +// checksum 0xfde6 version 0x90005 +/* + This file was generated by the Qt Quick 2 Application wizard of Qt Creator. + QtQuick2ApplicationViewer is a convenience class containing mobile device specific + code such as screen orientation handling. Also QML paths and debugging are + handled here. + It is recommended not to modify this file, since newer versions of Qt Creator + may offer an updated version of it. +*/ + +#ifndef QTQUICK2APPLICATIONVIEWER_H +#define QTQUICK2APPLICATIONVIEWER_H + +#include + +class QtQuick2ApplicationViewer : public QQuickView +{ + Q_OBJECT + +public: + explicit QtQuick2ApplicationViewer(QWindow *parent = 0); + virtual ~QtQuick2ApplicationViewer(); + + void setMainQmlFile(const QString &file); + void addImportPath(const QString &path); + + void showExpanded(); + +private: + class QtQuick2ApplicationViewerPrivate *d; +}; + +#endif // QTQUICK2APPLICATIONVIEWER_H diff --git a/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.pri b/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.pri new file mode 100644 index 00000000..e5f7990f --- /dev/null +++ b/examples/datavisualization/qmlscatter/qtquick2applicationviewer/qtquick2applicationviewer.pri @@ -0,0 +1,180 @@ +# checksum 0x7b0d version 0x90005 +# This file was generated by the Qt Quick 2 Application wizard of Qt Creator. +# The code below adds the QtQuick2ApplicationViewer to the project and handles +# the activation of QML debugging. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +QT += qml quick + +SOURCES += $$PWD/qtquick2applicationviewer.cpp +HEADERS += $$PWD/qtquick2applicationviewer.h +INCLUDEPATH += $$PWD +# This file was generated by an application wizard of Qt Creator. +# The code below handles deployment to Android and Maemo, aswell as copying +# of the application data to shadow build directories on desktop. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +defineTest(qtcAddDeployment) { +for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + greaterThan(QT_MAJOR_VERSION, 4) { + itemsources = $${item}.files + } else { + itemsources = $${item}.sources + } + $$itemsources = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath= $$eval($${deploymentfolder}.target) + export($$itemsources) + export($$itempath) + DEPLOYMENT += $$item +} + +MAINPROFILEPWD = $$PWD + +android-no-sdk { + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = /data/user/qt/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + target.path = /data/user/qt + + export(target.path) + INSTALLS += target +} else:android { + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = /assets/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + x86 { + target.path = /libs/x86 + } else: armeabi-v7a { + target.path = /libs/armeabi-v7a + } else { + target.path = /libs/armeabi + } + + export(target.path) + INSTALLS += target +} else:win32 { + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, /, \\) + sourcePathSegments = $$split(source, \\) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments) + target = $$replace(target, /, \\) + target ~= s,\\\\\\.?\\\\,\\, + !isEqual(source,$$target) { + !isEmpty(copyCommand):copyCommand += && + isEqual(QMAKE_DIR_SEP, \\) { + copyCommand += $(COPY_DIR) \"$$source\" \"$$target\" + } else { + source = $$replace(source, \\\\, /) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + target = $$replace(target, \\\\, /) + copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\" + } + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } +} else:unix { + maemo5 { + desktopfile.files = $${TARGET}.desktop + desktopfile.path = /usr/share/applications/hildon + icon.files = $${TARGET}64.png + icon.path = /usr/share/icons/hicolor/64x64/apps + } else:!isEmpty(MEEGO_VERSION_MAJOR) { + desktopfile.files = $${TARGET}_harmattan.desktop + desktopfile.path = /usr/share/applications + icon.files = $${TARGET}80.png + icon.path = /usr/share/icons/hicolor/80x80/apps + } else { # Assumed to be a Desktop Unix + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, \\\\, /) + macx { + target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target) + } else { + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + } + target = $$replace(target, \\\\, /) + sourcePathSegments = $$split(source, /) + targetFullPath = $$target/$$last(sourcePathSegments) + targetFullPath ~= s,/\\.?/,/, + !isEqual(source,$$targetFullPath) { + !isEmpty(copyCommand):copyCommand += && + copyCommand += $(MKDIR) \"$$target\" + copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\" + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } + } + !isEmpty(target.path) { + installPrefix = $${target.path} + } else { + installPrefix = /opt/$${TARGET} + } + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + !isEmpty(desktopfile.path) { + export(icon.files) + export(icon.path) + export(desktopfile.files) + export(desktopfile.path) + INSTALLS += icon desktopfile + } + + isEmpty(target.path) { + target.path = $${installPrefix}/bin + export(target.path) + } + INSTALLS += target +} + +export (ICON) +export (INSTALLS) +export (DEPLOYMENT) +export (LIBS) +export (QMAKE_EXTRA_TARGETS) +} -- cgit v1.2.3