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ää --- .../datavisualization/custominput/custominput.pro | 12 + .../datavisualization/custominput/custominput.qrc | 5 + .../custominput/custominputhandler.cpp | 54 + .../custominput/custominputhandler.h | 36 + .../datavisualization/custominput/data/data.txt | 1060 ++++++++++++++++++++ .../custominput/doc/images/custominput-example.png | Bin 0 -> 62422 bytes .../custominput/doc/src/custominput.qdoc | 70 ++ examples/datavisualization/custominput/main.cpp | 84 ++ .../custominput/scatterdatamodifier.cpp | 172 ++++ .../custominput/scatterdatamodifier.h | 60 ++ 10 files changed, 1553 insertions(+) create mode 100644 examples/datavisualization/custominput/custominput.pro create mode 100644 examples/datavisualization/custominput/custominput.qrc create mode 100644 examples/datavisualization/custominput/custominputhandler.cpp create mode 100644 examples/datavisualization/custominput/custominputhandler.h create mode 100644 examples/datavisualization/custominput/data/data.txt create mode 100644 examples/datavisualization/custominput/doc/images/custominput-example.png create mode 100644 examples/datavisualization/custominput/doc/src/custominput.qdoc create mode 100644 examples/datavisualization/custominput/main.cpp create mode 100644 examples/datavisualization/custominput/scatterdatamodifier.cpp create mode 100644 examples/datavisualization/custominput/scatterdatamodifier.h (limited to 'examples/datavisualization/custominput') diff --git a/examples/datavisualization/custominput/custominput.pro b/examples/datavisualization/custominput/custominput.pro new file mode 100644 index 00000000..303cfc83 --- /dev/null +++ b/examples/datavisualization/custominput/custominput.pro @@ -0,0 +1,12 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + +SOURCES += main.cpp scatterdatamodifier.cpp \ + custominputhandler.cpp +HEADERS += scatterdatamodifier.h \ + custominputhandler.h + +QT += widgets + +RESOURCES += custominput.qrc diff --git a/examples/datavisualization/custominput/custominput.qrc b/examples/datavisualization/custominput/custominput.qrc new file mode 100644 index 00000000..8ced2b91 --- /dev/null +++ b/examples/datavisualization/custominput/custominput.qrc @@ -0,0 +1,5 @@ + + + data/data.txt + + diff --git a/examples/datavisualization/custominput/custominputhandler.cpp b/examples/datavisualization/custominput/custominputhandler.cpp new file mode 100644 index 00000000..a5734e16 --- /dev/null +++ b/examples/datavisualization/custominput/custominputhandler.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** 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 "custominputhandler.h" + +#include + +CustomInputHandler::CustomInputHandler(QObject *parent) : + QAbstract3DInputHandler(parent) +{ +} + +//! [0] +void CustomInputHandler::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos) +{ + Q_UNUSED(event) + setInputPosition(mousePos); +} +//! [0] + +//! [1] +void CustomInputHandler::wheelEvent(QWheelEvent *event) +{ + // Adjust zoom level based on what zoom range we're in. + int zoomLevel = scene()->activeCamera()->zoomLevel(); + if (zoomLevel > 100) + zoomLevel += event->angleDelta().y() / 12; + else if (zoomLevel > 50) + zoomLevel += event->angleDelta().y() / 60; + else + zoomLevel += event->angleDelta().y() / 120; + if (zoomLevel > 500) + zoomLevel = 500; + else if (zoomLevel < 10) + zoomLevel = 10; + + scene()->activeCamera()->setZoomLevel(zoomLevel); +} +//! [1] diff --git a/examples/datavisualization/custominput/custominputhandler.h b/examples/datavisualization/custominput/custominputhandler.h new file mode 100644 index 00000000..60c88ef7 --- /dev/null +++ b/examples/datavisualization/custominput/custominputhandler.h @@ -0,0 +1,36 @@ +/**************************************************************************** +** +** 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 +** +****************************************************************************/ + +#ifndef CUSTOMINPUTHANDLER_H +#define CUSTOMINPUTHANDLER_H + +#include + +using namespace QtDataVisualization; + +class CustomInputHandler : public QAbstract3DInputHandler +{ + Q_OBJECT +public: + explicit CustomInputHandler(QObject *parent = 0); + + virtual void mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos); + virtual void wheelEvent(QWheelEvent *event); +}; + +#endif diff --git a/examples/datavisualization/custominput/data/data.txt b/examples/datavisualization/custominput/data/data.txt new file mode 100644 index 00000000..d0689b1f --- /dev/null +++ b/examples/datavisualization/custominput/data/data.txt @@ -0,0 +1,1060 @@ +# Each line contains 3 floating point values +# for x, y and z values in the scatter chart +-10.0084,5.01799,-5.04425, +-9.06229,3.07132,-4.54268, +-8.55132,4.19424,-4.03318, +-8.03806,4.75162,-3.99583, +-9.50337,4.90684,-4.21947, +-9.93819,3.42724,-3.58955, +-7.84971,3.15272,-4.90367, +-7.30477,2.91062,-4.11078, +-7.11201,3.68863,-4.52683, +-8.83267,2.96504,-3.61108, +-6.94874,2.49808,-2.92883, +-9.02606,4.7496,-4.18193, +-9.5434,3.15534,-3.83789, +-6.8679,3.66922,-3.58288, +-8.16487,1.82227,-4.64523, +-7.42165,3.18192,-4.22791, +-7.99257,3.06559,-4.33262, +-8.98851,2.64924,-4.44595, +-6.36774,3.96697,-4.38998, +-7.18413,3.32417,-4.04636, +-7.91649,3.46826,-2.78126, +-7.49495,3.12306,-3.14539, +-7.5445,2.85744,-3.68421, +2.25354,1.36828,-1.32025, +-2.35524,-0.081203,1.23267, +2.6517,-1.20549,2.73606, +-2.55382,3.48814,-0.454971, +-3.85468,0.263955,0.578276, +2.85275,1.32315,1.0565, +-0.404099,-2.36811,-1.60324, +1.58908,0.363782,-0.554303, +0.251507,0.124637,-0.752568, +-2.45626,-0.722719,-1.11764, +4.15342,1.92247,-0.954975, +2.05845,0.643191,-0.121564, +0.253468,0.814651,3.05732, +1.51724,0.244303,2.25864, +1.15,-0.487518,0.815931, +-0.0538979,0.124927,0.251571, +0.941523,-0.483498,-3.2731, +3.55074,-1.04714,-0.954301, +-2.43125,-0.964099,-0.658537, +4.25459,0.163296,2.05563, +-0.612031,1.03234,-0.227175, +7.8338,-0.847922,-0.959189, +-4.20076,1.44907,0.853836, +-1.59466,-1.27511,-1.5686, +-3.3567,-1.96864,1.83224, +-2.75169,-0.964221,-1.26465, +-2.45624,0.287046,-4.55032, +2.73649,-1.48789,-0.653082, +2.73284,2.2912,-2.4933, +-0.854321,-2.04288,3.7516, +-1.35708,-1.84915,2.35985, +-3.25001,-1.64456,-4.45419, +-0.356834,-0.569139,-1.75308, +-0.813569,-0.287899,-0.0535036, +4.75975,-1.48817,-2.45957, +4.35294,1.46154,0.814214, +-3.22467,2.76903,0.510435, +2.49494,1.9286,0.552287, +-0.456521,0.688277,-0.82788, +-2.72568,2.80278,-2.45782, +-1.65023,1.32005,-2.05754, +-1.63551,1.88519,-3.65544, +-1.20008,-0.723785,0.853563, +1.45448,1.08701,2.17385, +-3.9042,-1.16916,-0.85395, +3.15645,0.123932,-0.950988, +-1.35924,-2.64015,-0.54254, +-4.15753,1.28294,-4.47502, +-2.7885,2.48535,-0.159651, +-3.44364,0.627232,6.11881, +-1.55639,-0.967484,2.35497, +-0.752853,1.16736,-0.757871, +-0.859974,0.640213,-1.75453, +0.85744,0.480175,2.97204, +4.0571,3.24083,-0.183622, +0.658087,0.841418,0.357839, +-2.13027,0.920836,-2.758, +-0.65825,0.164257,1.69478, +-1.88335,-1.4811,-2.15408, +-1.67331,2.96982,1.85521, +-0.750937,0.282914,-0.758707, +2.29891,1.16949,2.65927, +2.69132,2.92632,-0.206126, +-1.65771,3.28846,2.50201, +-0.568799,2.5289,-1.15875, +-1.85383,0.528953,-2.32418, +0.159422,-2.36165,-0.569393, +-3.96506,0.282374,-0.254519, +0.150933,-3.88058,-0.759422, +-1.17917,-1.96176,0.95589, +-0.340817,-3.52333,-1.45715, +3.21784,-2.56593,2.55468, +0.609650,-2.44153,1.35813, +1.4594,-1.96511,0.170228, +3.55017,-2.16882,1.75539, +2.89487,-0.727481,-0.39588, +-1.65151,-0.603877,0.250508, +-4.35232,-1.32155,-2.31877, +2.75852,-1.88931,1.77874, +2.75452,-0.64123,2.45546, +0.151914,-0.888395,-0.260935, +0.150593,0.0461652,-0.158206, +-1.22087,-2.92034,-3.78604, +-0.761622,0.161856,3.5586, +-1.88456,-2.48094,0.287091, +1.25293,2.64374,1.6532, +-0.657609,1.32547,-0.557301, +3.85995,2.32568,-1.38265, +1.65572,-2.28977,0.957488, +-2.45312,-2.96071,3.45147, +-1.75259,0.365259,1.60113, +1.14045,-0.844805,0.359343, +-1.55951,1.65687,-3.10398, +0.441652,-1.36623,-1.55494, +-3.95762,0.288753,3.7791, +-1.80101,-0.241499,2.29693, +-0.456931,1.64399,1.35559, +-0.691421,-0.723378,2.51839, +-1.20658,-3.04063,-1.552, +-0.958574,1.48688,0.950152, +1.76319,-1.36072,2.15866, +-3.91301,-0.328932,-2.45524, +2.9553,3.12703,-2.43321, +3.55939,-1.48028,0.152252, +-1.41545,3.247,0.779314, +-3.34482,-0.894538,2.09302, +1.15338,0.362332,-2.7924, +0.468852,0.120872,1.35593, +1.98778,-3.32292,-0.758591, +0.420718,-0.225014,-2.44806, +0.550207,1.56432,2.25317, +4.35156,-0.966178,-0.791032, +3.35179,-1.04981,-0.854089, +1.70857,-0.281369,-0.254686, +-3.05855,-0.443693,1.30251, +-3.9509,-2.72179,-3.83489, +2.19632,1.32915,1.15345, +1.42782,-0.449435,-2.85005, +-2.19053,0.049866,2.87493, +2.45196,-2.44705,-2.85302, +4.35263,0.245956,1.12886, +1.8167,1.85407,-0.714159, +1.88577,2.04227,-0.959396, +1.6522,-2.48289,0.355373, +-3.39965,0.286834,-1.68171, +1.85639,1.47419,2.25749, +-2.5216,-0.88573,-2.69594, +-0.143043,0.28453,-1.75898, +-2.52745,-2.76741,-0.257011, +0.381448,-1.64793,-0.756889, +2.30469,-1.28844,-2.79271, +-1.72491,-1.48634,-2.61686, +0.503342,0.248352,-2.27162, +0.457491,-1.88183,-0.951124, +-1.23123,0.963519,2.3569, +-0.55709,-0.364372,-1.82528, +2.73963,-0.567024,-0.496936, +1.17979,2.76252,-2.35641, +-1.20723,-2.1692,3.14368, +-0.0504301,1.76714,1.64265, +1.45714,-0.725448,0.739217, +0.246123,-3.27811,-0.251218, +-0.894632,1.08758,-0.17184, +-2.45217,0.565077,-0.557015, +2.51301,1.1271,2.25057, +-1.05099,-2.1688,-1.88996, +1.26945,-2.1225,-1.55031, +-4.30129,-0.760298,0.259868, +-0.157336,-0.237532,-2.69483, +-2.95778,1.36212,-3.65524, +2.74003,1.16234,2.05928, +0.955294,-1.52182,-1.05684, +-1.87004,2.72729,-0.550608, +0.459439,2.88101,-4.4135, +1.35069,1.08445,-0.808625, +-2.70034,-1.36291,-2.65126, +0.353099,2.32354,-1.61885, +-0.453359,1.67524,0.122888, +3.7506,1.12855,-3.86338, +0.548626,2.63101,0.552261, +-0.753935,-3.52241,-3.21122, +0.258935,-1.32453,2.25745, +-2.8797,-1.60832,-2.45626, +0.151838,-0.565264,3.98539, +2.1508,-1.68734,-1.75076, +-4.23947,-1.92531,2.35438, +1.95273,-1.32736,0.313398, +0.533647,0.646686,0.75712, +0.856619,-0.843249,-0.577773, +-2.15649,-1.64285,-2.31055, +-0.851309,-2.84717,-0.324933, +-3.17772,-0.324817,-0.858394, +3.45303,5.29449,0.818094, +1.42912,0.238088,0.385617, +0.459586,1.7661,-0.153761, +0.855577,3.16845,-2.19548, +2.15181,0.729021,-0.955922, +-2.40113,0.665756,-0.521366, +1.45469,-0.462177,-1.95869, +0.629115,-1.84769,1.86755, +3.47576,-0.209875,-0.555502, +0.295075,-0.840772,4.68895, +-0.253301,-2.49078,2.11749, +-1.15923,-3.163,-3.05671, +1.45484,0.963654,-0.734942, +0.354307,0.520772,-1.32278, +2.65725,0.284589,-0.856856, +-1.2596,0.765493,-1.66469, +-0.656057,-2.16906,3.72144, +-0.251559,-2.36406,-1.89709, +0.35608,-0.80463,1.85674, +0.0508692,0.615674,0.856785, +-2.50726,2.28743,-2.05697, +1.65272,1.29604,2.11481, +-3.2878,-0.244516,0.799732, +-2.18989,-0.847222,-0.264559, +0.452832,0.960993,2.53691, +-2.43913,1.28957,2.75427, +-1.72889,-3.29414,-2.31426, +0.952615,-0.0844651,0.346607, +1.41175,0.889643,0.450356, +2.13145,1.08697,0.223055, +-2.16002,-0.225505,-0.602641, +0.54028,1.24765,-0.456129, +2.55086,-0.56734,-2.65051, +-4.53921,-0.483588,-1.25013, +3.45413,-0.44258,2.29687, +-0.257456,0.64624,1.65041, +1.25559,-0.65493,-0.358872, +1.9599,-1.56965,-4.17044, +2.75996,-1.98665,3.31794, +3.05837,1.04847,-0.975536, +-2.95407,1.40294,-2.25825, +1.38718,0.360709,-2.98211, +0.481728,-2.48564,3.25864, +-1.15089,0.363522,0.458662, +-2.25551,0.0421839,0.650008, +-1.85862,-0.969237,4.25313, +1.55797,0.0465051,-3.85709, +0.0555338,0.682957,-2.45556, +-0.186868,-0.482811,1.96957, +2.197,-1.5248,-4.20912, +3.40636,6.26268,-2.05757, +0.780426,2.68048,-0.852693, +1.65184,1.68951,-0.892089, +2.11929,-2.44406,1.21168, +-0.153348,-1.88112,-0.357374, +-0.359393,1.76654,1.63063, +-2.15954,0.0819277,0.757621, +-0.159898,-3.36316,0.359582, +2.74125,-2.84148,0.355785, +-1.3558,0.27827,-0.588162, +-0.354346,-2.56747,-0.984403, +-2.75082,-3.56807,1.5599, +-2.54708,-0.686147,2.75649, +1.35138,0.692978,-2.24969, +-1.39826,-0.246682,-1.65876, +-1.46629,-1.44446,4.45293, +-1.89442,3.64549,2.05732, +-0.658093,0.0815129,3.95269, +2.25603,2.96329,-2.35993, +1.36323,1.64488,-0.0538547, +1.75659,2.24227,-2.8522, +-0.0566584,-1.56465,-0.0503143, +-3.8532,-0.822258,-0.345406, +0.951328,0.329296,-2.52211, +-2.48659,0.410856,-3.55401, +3.72676,2.36324,3.65589, +0.559972,0.884984,3.15283, +-1.37624,-1.36007,-2.16578, +2.05543,0.4472,-0.82911, +-4.75258,1.8779,-1.75376, +0.15648,2.64039,-2.21467, +-2.0593,-2.56775,1.15037, +-3.70217,2.12375,1.3652, +1.05566,6.8299,4.02985, +-0.766882,-0.88359,1.35525, +0.951335,-1.84689,0.178337, +0.751608,1.1691,4.25273, +-1.36367,0.728904,0.655858, +3.17581,-0.0844758,-1.75811, +2.85546,-0.683618,0.653701, +-0.471118,3.04176,-2.35393, +3.0574,-0.601996,-0.611932, +-0.854024,-0.44532,0.355575, +0.504700,-1.92888,6.4818, +-1.25515,-1.44466,1.90429, +-1.67201,0.0461708,-0.796655, +1.45345,-1.66159,-3.48143, +-2.84514,-1.24586,-3.47945, +0.287402,-0.688276,-3.75664, +3.35908,0.687828,-1.94406, +-2.39167,1.08322,-1.73508, +1.52152,1.86032,-1.25351, +1.55931,3.64414,1.35944, +1.15954,-1.36058,0.758814, +-1.95325,0.0851092,-0.854106, +-2.25254,-0.523024,1.05486, +-2.68036,-1.32901,1.05877, +-0.485956,-1.52164,2.45303, +-0.0546215,0.640683,-2.85953, +4.45295,-0.246051,-0.159626, +3.4523,1.7215,-1.10587, +3.35142,-1.72053,-0.252105, +1.74251,2.76108,2.51524, +2.15054,-2.88101,-1.7527, +-3.70517,-0.0470951,0.258921, +-0.45593,-3.47184,-2.95345, +3.15988,-2.32107,0.105299, +0.751449,-2.88762,-3.45245, +2.9794,0.493172,-0.654683, +-1.87713,-2.48632,-3.534, +1.65266,3.16008,2.1579, +-1.25239,-0.763119,2.15776, +3.5572,0.282681,2.44174, +0.251145,0.520256,2.3184, +-1.78596,-1.36913,-2.50818, +3.82122,1.04473,0.456159, +2.45979,-0.722759,-4.05123, +-0.855594,0.163792,-0.553702, +0.656895,0.529982,3.35129, +0.857952,-0.0885677,0.695128, +-0.143269,1.12972,-3.155, +-2.95923,0.241767,0.832165, +0.253329,-0.622952,-0.459799, +0.151499,2.5297,1.53059, +0.655464,-1.49902,-1.51071, +4.7585,1.76425,1.15164, +-1.75063,-1.44645,-3.65525, +0.850392,0.0417223,-0.340588, +-0.557015,-0.282305,-1.85291, +-4.05639,0.522959,-2.3507, +-0.358137,-0.967852,0.807832, +-1.82056,-0.0483894,0.0541359, +-2.16623,0.129809,-2.52513, +-1.85591,-1.04417,-1.28501, +-1.79647,-3.44045,-1.73399, +2.25342,0.161308,-0.0517495, +-1.37877,0.243596,-1.52931, +-0.059299,-0.480825,1.7137, +-2.54357,0.286685,-2.11495, +3.92334,-0.442936,-0.852895, +-0.390023,-1.96437,1.38718, +1.35263,2.92968,-1.1545, +-2.25892,-2.27429,-0.451533, +-0.2215,-0.126727,0.155541, +0.715932,1.47509,-3.52895, +-0.382939,3.16461,2.65165, +-1.14437,-1.44682,0.456601, +0.251892,-1.0431,4.31548, +-2.23281,-2.48698,0.46995, +0.954231,-3.4323,-1.20233, +2.75569,-1.66383,-1.95486, +0.750644,-1.84163,-0.159206, +-0.757387,-1.84192,0.354209, +-2.85509,-2.12151,-0.954754, +-0.888427,-2.8403,-0.157387, +-1.95265,-0.445753,2.17956, +-1.05845,-2.48694,-1.25315, +-2.66497,-1.48251,0.873192, +2.50491,-1.0833,1.99667, +0.453931,2.52158,0.456875, +1.55859,-0.161924,0.256619, +-2.92585,0.368018,0.35908, +2.95509,-1.56248,-2.74469, +3.46082,-1.76026,3.05835, +1.75644,-2.84241,0.507631, +-0.959006,0.649579,1.10824, +2.63856,2.0417,0.187281, +-0.150004,-0.0838836,-0.949314, +2.26402,-1.28916,2.85284, +-0.821239,2.68795,-0.317185, +3.47124,0.840813,-2.65322, +-0.253209,-0.244177,0.457348, +2.76181,1.64033,-1.95329, +1.35105,-2.96027,0.659952, +-1.45423,-0.24358,0.832696, +1.45109,1.64958,-3.45448, +-1.15659,3.08225,1.11445, +0.806359,1.88298,-2.13001, +1.15538,3.04545,-0.759437, +-0.450074,1.36121,-0.155042, +-2.80924,-1.24207,2.55513, +4.48859,2.04394,1.25324, +-0.958741,1.24575,3.65169, +3.45143,1.3276,2.5144, +-3.25232,1.12514,-1.21425, +-2.45327,0.681109,4.35764, +0.55395,-0.128353,-3.95705, +-0.352458,3.08882,-0.340631, +1.35213,-2.92251,-3.31166, +0.52621,-0.279201,0.959619, +1.2243,-0.240093,-0.75247, +-1.29854,2.16477,3.3507, +-3.35677,2.36713,3.4585, +0.957717,-0.885793,1.25827, +0.150983,1.24269,5.39106, +1.84986,1.56932,-1.05811, +-1.35563,3.82103,-1.45287, +1.4544,-2.6453,0.58082, +2.05908,1.16496,1.44075, +2.9507,-2.4957,0.153512, +-1.10289,0.763085,-1.65351, +-2.50708,-2.467,1.05892, +3.55284,-1.8509,-2.55732, +-0.848034,1.24305,-3.7516, +-1.35051,-2.48178,2.85326, +-2.18554,1.48771,-0.155205, +-0.459278,2.68404,2.85727, +0.854722,1.47322,-3.35951, +-2.23505,-2.24254,0.353203, +1.42395,-2.32169,0.558188, +3.65106,1.12201,-4.58409, +0.11,-0.68782,1.85804, +-1.9551,-0.560204,-2.0577, +1.85964,1.32737,-4.40673, +-0.616311,0.649737,-0.30189, +-1.55375,1.52043,-3.75629, +1.85417,0.486964,0.654806, +3.35638,2.52599,1.94343, +0.491389,1.40427,-1.31935, +-2.72939,0.844341,1.62621, +-0.525985,1.31415,0.484015, +2.25998,-1.719,1.25143, +1.79268,2.46378,-0.951188, +-3.55105,1.04122,3.9501, +0.954251,1.28296,2.05486, +-3.15267,1.96498,-0.361707, +1.35358,-0.921098,-1.71743, +-3.16896,-3.08548,0.903411, +1.25127,-2.44903,2.25616, +-3.88899,0.761334,-1.05751, +-1.05163,-3.89783,-0.883668, +-4.189,1.24176,-2.63816, +2.45671,-1.84859,0.352808, +-1.59618,2.16255,4.33699, +2.10913,-1.88673,-0.952497, +-1.85571,-0.287392,0.277176, +0.751967,1.04568,-1.35427, +2.85792,1.60982,-2.05454, +-2.13152,-0.260207,-2.15124, +1.75432,2.28936,0.756254, +1.95711,-0.681098,-2.38037, +-0.826273,1.08361,1.6515, +-1.85118,1.89481,-0.756754, +-3.0571,2.44795,0.355341, +-0.455122,-3.58071,-2.85209, +-0.95805,0.641282,2.15189, +-1.35515,-0.234803,-0.825819, +2.12472,-0.0444431,0.651227, +2.67573,0.223987,2.75712, +1.65871,-0.163059,1.6513, +-1.85429,0.68862,1.9576, +-3.05186,-2.2804,0.100919, +3.41813,-1.88775,3.67075, +-0.753778,0.36467,1.55333, +2.97628,-1.36502,-1.85135, +0.477128,1.08862,0.858931, +-1.0531,1.0488,2.15218, +2.66911,-2.08876,-0.182397, +5.117,-2.84097,-0.953684, +0.468302,1.88616,2.05369, +-3.16099,-2.76085,-2.75679, +-2.6593,3.52373,-1.24072, +-4.37957,-0.286903,3.63863, +-2.85958,-2.56921,-2.85723, +-0.159735,2.72758,-2.80575, +-0.951849,-0.607465,1.05633, +1.93077,2.56422,1.25446, +-0.859754,0.248106,0.0584456, +2.4023,2.56659,-1.2588, +2.35295,-1.08729,2.7851, +-2.1537,-0.765032,2.83652, +1.40185,1.29804,2.3588, +-0.991566,1.72049,4.17146, +3.76736,-1.48837,2.05329, +-0.251896,0.765367,-1.4087, +-1.6228,0.328693,0.0528287, +2.56735,-3.08103,0.853144, +0.0531812,-1.96216,1.55734, +-3.77052,0.8421,-0.258953, +2.35523,0.676643,-1.55789, +1.16702,2.64474,-1.45533, +2.55709,-1.56013,2.05351, +-2.15518,3.56253,3.257, +-0.553936,-1.24935,2.65224, +-0.355931,1.32374,0.859863, +-1.92974,1.2482,1.15936, +0.350652,-2.44371,-1.35611, +2.98996,-1.08527,-4.30641, +1.82765,-0.440236,1.25528, +-0.689231,-1.08813,-0.668663, +-0.326426,-0.881857,-1.45371, +-1.0655,2.12466,2.34146, +3.1563,0.523166,-2.8572, +0.455505,2.48775,-1.33482, +0.53939,-0.847333,0.732877, +-0.683025,-0.448889,-1.35747, +-1.7711,-0.125587,-2.55083, +-0.512871,0.520964,1.40731, +4.93857,-1.6805,-0.127298, +1.46098,-1.64073,1.35833, +0.0518058,0.285151,-2.2437, +1.5587,-1.23067,0.458753, +3.13089,3.64132,1.45181, +-1.55648,2.167,0.153491, +3.94451,-2.56372,-1.25276, +4.15866,0.646921,2.65542, +-2.88189,0.562407,-1.35379, +1.31686,1.2808,0.804375, +-2.36912,-3.08775,1.28335, +0.575203,-0.36483,-2.43958, +0.613108,0.526892,2.75368, +3.96027,-0.525425,-4.25746, +-0.510821,1.28578,-0.058488, +-0.254704,-3.847,3.15258, +-0.925874,-1.72014,-3.15341, +0.85704,0.84788,-1.75947, +-3.35712,0.722104,2.15645, +-1.67305,0.681216,1.65726, +-3.64682,0.867926,2.63525, +-0.715921,1.96081,-0.939934, +-2.45646,1.3249,-2.75733, +-1.75798,0.725382,-0.851921, +-2.78528,0.679275,-2.59212, +-2.24551,-3.4597,-1.85735, +0.85142,2.28058,-3.75328, +-3.85054,2.44519,4.35081, +-3.6553,0.521917,0.293354, +-4.35959,-0.528198,1.55557, +1.45186,-0.0891161,-0.468118, +1.85594,-0.761461,-4.68083, +0.950642,0.526239,-1.30614, +-2.50526,-0.885606,-0.362569, +-2.96569,1.68519,-1.15965, +-3.212,0.260715,1.18472, +0.950556,-0.282806,0.776252, +3.66678,1.08585,-2.15646, +-0.806289,1.72784,2.85906, +0.363827,1.76644,0.931866, +-1.34204,-0.563686,-2.34091, +-2.81333,0.415358,4.28363, +1.52053,-0.327359,0.35052, +-0.633441,-0.240518,4.05745, +-2.38947,-1.84662,-2.29572, +-1.95744,-0.863705,1.85889, +-0.0509082,-0.164164,3.8571, +0.156438,-2.64188,1.75836, +-3.85642,1.48025,0.171659, +0.253545,1.0852,-2.45243, +-4.11318,4.1655,-0.120976, +-1.44928,-0.328222,-0.871279, +-1.90972,-1.8495,-3.16966, +0.359433,1.3236,-3.95045, +-2.60974,-1.04138,4.25836, +-3.16336,-0.961581,-1.65161, +-0.552909,-1.16942,4.05164, +-3.10918,-1.2402,-0.555073, +2.25494,1.24432,3.44063, +-1.24998,-1.24928,-4.05493, +3.05441,1.92762,1.43329, +0.557032,-2.7688,-3.25463, +-2.05665,1.6357,0.656665, +-0.459042,0.122664,-0.152961, +2.17715,2.96833,1.1332, +0.0536573,-2.08635,-0.736471, +-3.15658,1.0818,-0.172166, +-1.95784,0.44402,0.612685, +0.15168,-0.323951,2.85563, +0.559356,1.63101,0.558005, +-2.05643,1.84615,-1.87964, +-0.254098,0.368208,1.23061, +4.6438,-0.209283,0.695869, +-1.95087,-0.859788,0.0539467, +-0.351737,-1.04291,0.869198, +0.776319,3.04922,-3.55278, +-0.158751,1.12538,-2.59681, +-0.560997,-1.68381,1.56935, +1.71385,-0.446223,-1.56843, +4.05142,-1.3243,2.85052, +1.68685,-1.56305,2.159, +0.359977,-1.16029,1.25037, +-2.65045,-1.28532,0.459338, +5.42068,1.52601,-1.35562, +1.34386,1.68231,-2.75114, +1.25123,0.43108,0.383897, +-0.952936,3.6889,1.75759, +-3.55855,0.484241,1.15503, +-1.71394,-2.64568,-3.30684, +-2.23513,-2.46812,1.05321, +0.160986,0.442362,-1.05077, +2.05433,0.473204,0.823968, +0.482077,0.0477338,4.21712, +-1.25348,0.767612,0.455813, +1.61308,2.04125,-2.95433, +-2.05862,-0.444052,1.35177, +-3.2582,0.44354,2.15898, +-1.75935,0.0459283,2.35061, +-4.15501,0.68674,0.802439, +-1.66005,1.12067,0.552901, +-0.150828,3.4151,3.05446, +-0.274381,0.0405946,-1.45463, +2.94543,-0.360918,1.45895, +-1.42494,1.56503,1.31012, +3.45402,-1.27808,-4.29049, +-1.14819,0.674339,1.55807, +-0.356159,1.52295,-0.351445, +0.387809,0.965119,1.84271, +2.56165,-1.84639,1.65056, +-0.619108,2.24004,-2.92134, +-0.254288,-2.32744,-0.720931, +3.3508,-2.24501,1.58268, +1.69434,1.96814,3.97439, +1.80785,0.685502,-1.55595, +2.71587,1.76415,-2.98124, +-2.35151,-0.697338,-3.96269, +-1.85759,1.96899,-1.25212, +-4.05922,1.12838,-2.7597, +-2.85434,-1.36487,0.659987, +-1.75616,2.12969,-1.35032, +-2.95985,-0.0854955,3.65545, +-2.46049,2.45378,4.51969, +-0.0577358,0.0427911,0.359068, +-3.25346,0.161829,1.12956, +3.55498,2.32482,1.33302, +4.99905,-1.88748,0.450165, +-2.35406,-1.44715,-0.745307, +2.44217,-0.642981,0.126924, +1.73283,1.67362,1.91136, +1.34239,-0.434386,-0.449795, +-0.9813,-2.72962,-3.6889, +1.29807,-0.448566,2.13911, +0.654017,3.54591,-1.55982, +-1.55508,-2.64564,0.555, +1.92722,-0.322513,-2.13691, +1.35913,-2.84853,-0.470788, +0.257868,-2.68874,-0.268328, +-2.05043,-1.68405,-3.05075, +1.65173,-0.446801,-0.75339, +-1.25655,0.965275,-4.15374, +-4.27942,-0.564403,1.45826, +0.950669,-2.4416,-1.68235, +-0.0541107,0.882274,3.15308, +-1.65016,-0.886156,-3.85588, +0.355613,0.217671,4.25412, +0.800472,0.847259,3.11114, +1.8599,-2.16981,-2.22314, +-2.05061,0.164561,-0.452181, +0.854144,1.84334,-1.45981, +1.68547,1.56536,-1.45874, +1.25244,-0.844991,-2.95475, +-1.92348,2.32119,-1.80444, +-0.645646,2.45193,-3.65332, +4.45803,0.527732,3.02031, +2.74572,0.287964,-1.80485, +0.35961,-2.56437,3.97194, +-0.956828,-1.28915,1.64424, +0.414971,-0.235061,-2.15757, +-0.0530542,-1.08464,-4.11853, +3.17203,-1.21013,-3.85806, +0.758948,0.124698,-3.10188, +-1.65404,-1.16204,-1.65357, +-1.65985,3.84433,4.65101, +2.83444,-2.69529,-1.65021, +1.29814,-2.76926,-2.27139, +0.462382,3.04217,3.45153, +-3.61944,1.04723,-0.638308, +2.25235,1.64048,2.95175, +-3.05826,-0.76526,-2.38243, +-2.8506,2.12102,-0.659444, +-0.10046,0.0887098,-1.63621, +-1.55585,-1.36073,2.2076, +-0.474968,1.56568,-0.302349, +0.36584,-2.36102,1.35289, +0.224784,-0.637694,1.62444, +-0.658172,1.9689,-3.13712, +0.646334,-1.04672,2.59285, +-2.63054,-1.08263,-0.851087, +1.45804,-2.56159,-2.66388, +-2.45748,0.0409116,-2.85428, +-0.0561462,-1.24229,-1.25145, +-2.95391,-1.80896,-2.05036, +4.36778,-0.969951,3.53686, +2.15582,-1.67173,-0.831609, +-1.27059,-1.14919,1.7569, +-1.57398,-1.28091,-0.251735, +2.59506,-2.6408,-0.345589, +-1.64147,-0.360324,3.1562, +-0.125427,-0.641484,-3.66095, +-1.9148,1.8885,2.12972, +-2.85768,-2.28782,-1.55719, +-1.37239,-0.485964,-2.22291, +0.516294,0.281078,0.652612, +-1.13028,0.246659,-2.25636, +1.7555,-1.41602,0.348449, +1.5355,-1.32646,-2.82417, +-0.95426,2.0824,-0.383507, +2.75739,0.241779,0.755701, +0.752655,0.56204,-1.55738, +1.1271,-3.76145,4.3701, +0.326656,-1.24467,2.62222, +-0.259702,2.68152,-3.18542, +1.88504,-0.760623,4.42592, +2.51673,4.72252,-1.99239, +-1.66934,-0.129677,-2.49048, +-1.25499,2.36151,-2.98447, +2.65331,0.0443886,0.108819, +-3.35439,0.0872109,-1.33429, +3.35597,0.0403626,2.8203, +4.45191,1.24824,-0.95821, +-0.171441,-1.52622,-4.68253, +1.19986,1.72992,-3.29566, +-0.451339,1.92976,1.21534, +-0.743119,-0.160688,0.805688, +2.38678,0.272829,2.75457, +1.72464,2.08232,-0.950389, +2.11167,1.56576,1.21969, +3.05157,-1.56838,-0.450535, +0.132417,-3.08279,-1.34127, +1.65441,-0.325204,-0.825145, +2.05515,-1.8417,1.8561, +-0.555858,1.52007,-0.80122, +-2.05026,1.52773,2.33529, +-2.35231,-3.28716,3.53598, +-2.25771,2.5667,-1.92243, +0.386884,-3.28674,3.49336, +0.957272,-1.68124,-1.89095, +2.99881,2.24992,-0.0535837, +3.19604,2.92893,-2.16276, +2.55903,3.12413,2.95022, +-0.570758,-2.85326,-0.339255, +0.356627,0.641074,0.355538, +-1.15777,-0.162227,-0.455885, +-2.4871,-0.885492,-0.374875, +1.55464,-1.48929,-0.593706, +-0.852655,-2.08736,-1.18281, +0.504087,-0.879247,1.35148, +-2.15261,1.04511,-3.25543, +-0.653745,-1.32873,-3.18964, +0.35973,-0.844255,-1.72034, +-2.11112,0.962572,2.59386, +1.47531,-0.693626,-3.15249, +-1.35814,0.767202,3.45094, +-3.05812,-1.26298,1.45287, +-1.63927,0.893568,-1.94978, +0.751992,1.68559,2.3618, +5.8205,-0.769076,-0.958994, +-2.38512,-0.166005,-1.25855, +-0.556071,-2.28164,1.57032, +5.89172,-0.244834,0.553728, +-0.468648,-0.927756,-0.737048, +-2.66659,-1.64374,-0.995568, +0.251499,-1.24569,0.95028, +0.737721,2.88575,0.448918, +-0.634421,-1.84377,-2.47094, +0.556349,2.86774,1.62621, +-3.29644,3.28642,-3.45459, +-1.45045,2.52138,2.75329, +1.87449,-2.68651,3.60371, +-0.656424,-2.56828,1.35509, +1.95771,-1.48325,-3.85265, +3.85074,0.0825779,-1.65283, +-1.17278,-1.69258,-1.05875, +1.25754,-0.0439433,1.3571, +2.91459,2.08715,0.259842, +0.748196,2.52132,0.659051, +-1.85745,-1.88355,1.05259, +1.69311,1.12299,-3.05453, +-2.86301,0.123274,0.559289, +-1.43146,1.64425,-1.95053, +2.35287,0.414621,-0.950807, +0.952585,-0.280452,-0.844588, +-1.53836,-1.76396,2.51742, +-3.05431,2.45,-0.26571, +-0.637412,1.12028,-0.587387, +-1.71017,-0.728497,-1.05087, +0.454027,0.849208,-0.151716, +-3.54846,0.367137,1.1484, +0.200816,-2.08832,0.255433, +-2.15817,0.725338,0.852676, +-2.45708,-0.725538,-0.859435, +4.25339,1.84177,-0.555145, +0.119319,-1.32041,-1.45864, +-3.65177,0.361323,0.351554, +0.928598,0.321024,-3.64759, +-0.250062,1.84912,7.49887, +3.59593,0.929451,-2.15224, +0.658599,2.36796,4.11632, +0.55841,-1.08657,0.258326, +1.9419,0.0488641,-3.75375, +0.0589998,0.521351,-3.85723, +3.45108,0.562199,4.20946, +-0.255073,2.36504,-3.556, +1.95848,1.28698,4.25014, +1.85411,3.12131,0.652769, +-3.3589,0.801817,-1.5591, +2.48128,-0.163406,1.25243, +2.52135,0.960467,1.45432, +0.827496,-0.163021,-0.558886, +-3.45032,-0.0831453,0.851212, +-3.45334,0.855944,1.35596, +-0.834644,0.245598,-1.23878, +3.64558,1.16831,-0.18559, +-1.45919,-3.08196,-0.329805, +-3.65715,-1.04485,0.159208, +1.35463,-0.766382,0.558632, +-2.75899,-1.67431,-1.55069, +1.67539,2.04337,0.912884, +3.51677,-3.24285,0.170272, +-4.25189,0.56589,-4.35936, +-2.68545,-0.448243,0.540342, +0.279844,-0.641466,-0.353986, +-3.27626,-3.52006,1.77644, +-0.724096,-1.84647,-2.45271, +-4.18603,0.123376,3.85066, +-4.05156,0.0499386,-0.332945, +2.69508,2.32777,1.26256, +-0.353726,1.07252,-0.738837, +-0.947178,0.36459,1.55593, +-0.058346,2.44781,-4.35023, +1.51586,-0.961109,-3.43483, +-2.8852,2.08863,-1.75468, +-0.297867,0.722757,0.91355, +-1.12917,-1.68328,0.175315, +-1.24248,-0.323519,-0.854841, +0.751943,0.564075,3.95073, +1.15436,2.81813,0.653114, +-2.55058,-2.56486,0.756618, +0.959794,0.845224,-0.854001, +-2.15033,0.248556,-3.16151, +0.353224,-1.68637,0.457949, +-0.753237,-2.48313,-0.355373, +0.296585,2.04822,0.198473, +-2.4737,0.682952,1.85349, +1.9027,0.882796,1.45908, +0.254799,1.92572,-1.70848, +-0.951602,-0.698987,-2.22682, +0.262582,-2.44093,1.05636, +0.385415,-0.685667,-3.35928, +0.055981,0.523585,-3.36093, +-0.0518635,-0.889068,-0.840648, +0.455171,2.84624,-1.98276, +2.85475,-0.685697,-2.45695, +-1.05047,-1.92121,0.931666, +-2.75962,-0.164458,-1.55261, +1.91811,1.65767,3.15004, +-2.25653,0.856735,-4.351, +1.89178,-0.728669,-3.8803, +-3.25958,-1.16223,-1.85148, +-1.6291,-2.32967,-0.874786, +3.17524,0.327351,2.15337, +-1.05094,-0.560694,-3.4581, +0.759785,-1.0801,-0.257876, +-0.4597,-2.2404,2.54341, +0.242266,0.121832,7.80878, +-1.6573,1.56049,-1.61749, +1.39912,-2.84395,-0.25965, +0.552342,1.36924,2.95278, +-1.92932,-0.883981,0.0589583, +-1.9026,0.56297,-0.723523, +-1.25867,-0.529617,2.3503, +2.16527,-0.723364,-1.45609, +-0.984608,-0.720375,-2.05144, +0.946803,-0.969188,-3.14625, +2.7986,-2.36069,1.25827, +3.37979,-1.11699,-3.55116, +-0.753992,-1.9649,2.98548, +-0.456321,0.525303,-0.109174, +0.8642,1.53147,-3.34749, +-0.450507,-0.443265,-2.8325, +-3.24876,3.12791,0.576143, +-3.14755,2.84502,-0.45749, +0.226819,-1.28172,0.939501, +-0.650725,-1.40317,-1.35211, +-0.451625,1.84271,-0.950536, +-1.36693,0.850218,-1.09799, +2.35374,-0.28759,1.55815, +2.60577,-2.46765,1.2633, +1.21562,-1.72153,-0.4034, +-2.43216,3.04268,1.90109, +-1.85365,-0.16523,-2.98947, +-0.953475,-2.76164,2.53396, +2.55264,-0.645611,3.25479, +-0.675476,-0.724382,-1.4566, +0.801062,0.16778,2.21815, +0.680443,0.0407888,3.27279, +-3.75426,-0.247624,0.26307, +0.427609,-0.322312,0.652005, +-2.17428,-3.68643,0.256619, +0.456732,-2.44858,3.13051, +0.524175,-1.88231,-1.93171, +7.2311,1.8354,-1.2502, +2.69502,2.25543,-4.25127, +0.259357,2.28099,-0.476734, +-0.327316,-1.24908,0.78628, +0.190362,-3.26019,0.0545844, +-1.25409,-0.761609,2.65361, +2.86816,0.443709,0.556137, +2.60289,-0.680561,0.248414, +1.75631,-0.162859,-3.62488, +-0.559754,-0.16222,2.35858, +0.157552,-1.72639,-0.48056, +3.69492,-0.848265,-0.256413, +-1.4264,-1.48589,-2.724, +1.15372,-0.27228,-2.75499, +-1.85159,1.76577,-0.858854, +0.0580466,-0.41133,1.05649, +-1.25289,0.528142,-0.386138, +-0.858101,-0.245127,1.95078, +-1.95302,-0.0862415,-1.95806, +-2.79133,-0.527094,-0.356931, +0.110597,0.167534,4.12784, +-0.637771,-0.526587,-1.25734, +-2.311,-0.489068,-2.8594, +-0.352617,-1.23939,-1.85435, +1.78814,-0.265883,3.35913, +2.75557,-2.32271,3.15559, +2.85426,0.443661,0.921828, +-2.14262,0.400863,1.11614, +4.45496,-0.488668,-3.7533, +0.754719,-1.44165,0.853323, +-0.856506,1.76559,1.05702, +-0.418565,-0.921031,-2.43699, +-1.29292,-0.282271,-1.62927, +-0.759531,0.566692,-0.750991, +0.559787,1.72479,-0.26667, +2.75533,-0.245187,-0.543844, +-2.27924,-1.04154,-4.05156, +3.35852,-0.561129,-2.98986, +2.41843,-0.321119,-1.55651, +0.85431,-0.883719,-2.17826, +0.417867,0.242995,-0.456326, +-4.17449,-0.720086,0.355145, +-0.577386,0.0440364,-0.950268, +-2.8156,2.92346,0.958713, +-1.65138,0.963561,1.25265, +1.45117,0.845424,0.252789, +2.27848,-1.76777,0.117707, +-0.754248,1.08381,-2.15345, +-3.15415,-0.162292,-1.15347, +2.55396,-1.68912,1.15698, +0.159561,1.84202,0.428428, +-1.58079,2.04207,3.29578, +-1.05711,-0.843112,-1.98122, +0.138866,-2.96642,-0.212247, +2.6778,0.686972,-2.6553, +-0.498291,-0.362846,-1.0538, +1.19872,0.0476518,-2.42077, +-2.3972,1.40393,-0.1943, +0.85034,-1.24222,1.5646, +0.142174,0.249903,-2.75252, +1.15197,1.32746,-1.70104, +0.359387,-1.65115,-2.75243, +0.357917,-1.36406,2.55102, +-1.65268,-0.28339,2.75665, +-3.82681,-3.28984,2.55128, +-2.61371,1.08247,-0.457068, +1.67152,-2.25527,2.45819, +-0.753832,1.1682,-1.95913, +-2.05131,3.04537,1.91954, +-0.695378,2.88924,1.41965, +3.25767,-2.76934,-0.354127, +-0.746795,1.36034,1.85953, +0.859135,1.08222,0.959116, +1.15898,1.32443,3.41981, +3.67954,0.447177,-0.414029, +0.907323,2.12852,1.95837, +-0.683456,-0.247536,1.05621, +-1.67809,0.641544,-1.31143, +-1.30192,-0.677394,-1.95159, +-0.105665,0.365205,-1.2567, +1.12189,-1.48969,0.957166, +1.25554,-1.92186,-0.904086, +0.117786,2.23836,-0.498009, +-2.85788,0.643364,0.55867, +-1.66115,2.56146,-2.28632, +-3.29334,-0.0894367,-0.656519, +3.15561,-0.769732,1.15695, +1.25684,0.64652,-2.6002, +2.65231,-3.52625,1.55617, +-1.8573,-1.76276,-1.74075, +-1.55648,1.2592,2.1585, +-0.555522,2.88068,-2.85423, +-3.14249,-0.288592,-3.35534, +2.45413,0.0854903,-2.20507, +-2.05464,0.887836,-0.658349, +1.12708,-0.568106,-3.65865, +-0.59147,-0.685439,0.301612, +0.473679,0.886411,-1.65386, +1.65166,0.166741,0.751119, +-0.299287,1.72233,0.618559, +1.15181,-0.488026,0.124448, +0.0561315,1.04877,2.15922, +0.154258,-0.64401,-1.31179, +1.75863,-1.88571,-2.8537, +3.35024,1.28154,-1.05461, +-3.71738,-2.88631,-1.05314, +-1.78258,3.08967,0.150476, +3.47828,-2.524,-2.45502, +-0.159138,0.160633,-0.338796, +-2.15885,-0.82959,1.25022, +-1.95268,-0.841195,-3.19487, +-0.281381,-0.887435,-3.55807, +0.415164,0.326482,-1.55411, +1.92868,-2.84771,-0.556196, +1.05804,1.32866,0.66596, +2.46545,1.00747,2.35957, +-0.77358,0.284677,-1.38805, +0.851046,0.960742,-2.70934, +-0.858208,-0.884015,1.16663, +1.55291,0.282705,-3.18254, +1.99034,0.286298,-1.75821, +0.259097,-2.04379,-0.858936, +-1.5956,2.04693,-1.35234, +-0.775432,1.24465,1.95935, +1.65595,-1.04954,-0.954437, +-2.35417,-1.76095,-0.248306, +0.855717,-2.92161,3.4496, +-0.717941,2.52993,1.25007, +-3.42927,0.673305,0.995742, +8.03373,-2.05136,4.02113, +7.88929,-2.2029,5.0036, +7.61596,-2.44569,4.54892, +7.41949,-2.64169,3.82339, +7.21192,-2.87947,4.89423, +7.08346,-2.38649,4.19212, +6.90279,-3.33038,4.9273, +6.78959,-3.55575,3.55127, +6.57074,-3.75902,3.32517, +6.30756,-3.40499,3.78366, +7.90893,-3.3237,2.48012, +6.24078,-4.04978,3.47459, +8.0691,-4.6865,4.08057, +5.98731,-2.26113,2.82166, +5.46898,-3.99581,3.25024, +8.1461,-3.34471,3.42168, +6.8456,-5.00126,2.36145, +7.62888,-3.82465,2.7879, +7.18034,-3.94376,2.74348, +6.02527,-4.36523,2.56247, +8.64577,-3.04345,2.62974, +7.82539,-3.6881,2.96164, +7.10508,-3.6174,4.22416, +7.64684,-3.88431,3.9336, +7.46411,-4.21516,3.32001, +6.98777,-3.94024,3.14694, +7.36355,-4.24875,1.72061, +8.42011,-4.52065,2.62078, +6.04598,-4.48682,2.74494, +8.7682,-3.9271,3.82815, +6.76279,-3.58031,2.92525, +7.14794,-4.42742,2.62365, +5.32696,-3.28733,3.34916, +6.43655,-4.60784,2.41548, +5.66033,-4.98497,3.72282 diff --git a/examples/datavisualization/custominput/doc/images/custominput-example.png b/examples/datavisualization/custominput/doc/images/custominput-example.png new file mode 100644 index 00000000..b2656b69 Binary files /dev/null and b/examples/datavisualization/custominput/doc/images/custominput-example.png differ diff --git a/examples/datavisualization/custominput/doc/src/custominput.qdoc b/examples/datavisualization/custominput/doc/src/custominput.qdoc new file mode 100644 index 00000000..88c53b4d --- /dev/null +++ b/examples/datavisualization/custominput/doc/src/custominput.qdoc @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** 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 custominput + \title Custom Input Example + \ingroup qtdatavisualization_examples + \brief Implementing custom input handler in a widget application. + + The Custom Input example shows how to customize the 3D graph controls in a widget application using a custom graph input handler to capture and process mouse events. + The code in this example shows also how the camera is controlled by using QPropertyAnimation to animate the camera and item selection + is done on mouseover rather than clicking any mouse buttons. Also the code shows how to implement similar zoom with mouse wheel functionality as the default + input handler implements. + + \image custominput-example.png + + \section1 Replacing default input handling + + The default input handling mechanism is replaced by setting the active input handler of \l Q3DScatter + to \c CustomInputHandler that implements the custom behavior. + + \snippet ../examples/custominput/scatterdatamodifier.cpp 0 + + \section1 Implementing custom selection handling + + The on mouseover selection handling is implemented in the \c CustomInputHandler that captures the mouse events. + It then stores the last known coordinates to the \l QAbstract3DInputHandler::inputPosition property. + + \snippet ../examples/custominput/custominputhandler.cpp 0 + + As the selection is one shot, and is cleared each time a 3D frame is rendered, a timer is setup to retrigger selection so that the selection moves to the item + currently under the mouse cursor as the camera animates around the graph even when the mouse cursor is not moving. + + \snippet ../examples/custominput/scatterdatamodifier.cpp 1 + + \section1 Implementing custom zoom handling + + The camera has a zoom factor that represents amount of zoom in percentages. In this example the zoom range is limited + between 10% and 500%. This range is then divided to four subranges where \c angleDelta is scaled to different amount of zoom change + based on the current subrange. + + \snippet ../examples/custominput/custominputhandler.cpp 1 + + \section1 Implementing custom camera handling + + The camera is animated to constantly rotate around the graph with two animations. The rotation around the graph is done with + a simple QPropertyAnimation that just increments during 20 seconds from 0 degrees to 360 degrees and sets the \l Q3DCamera::xRotation property. + + \snippet ../examples/custominput/scatterdatamodifier.cpp 2 + + The camera movement up and down is implemented with a QSequentialAnimationGroup that varies the \l Q3DCamera::yRotation property of the camera + from 5 degrees to 45 degrees and back with in and out easing. + + \snippet ../examples/custominput/scatterdatamodifier.cpp 3 +*/ diff --git a/examples/datavisualization/custominput/main.cpp b/examples/datavisualization/custominput/main.cpp new file mode 100644 index 00000000..069a5b0a --- /dev/null +++ b/examples/datavisualization/custominput/main.cpp @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** 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 "scatterdatamodifier.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + Q3DScatter *graph = new Q3DScatter(); + QWidget *container = QWidget::createWindowContainer(graph); + + QSize screenSize = graph->screen()->size(); + container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.5)); + container->setMaximumSize(screenSize); + container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + container->setFocusPolicy(Qt::StrongFocus); + + QWidget *widget = new QWidget; + QHBoxLayout *hLayout = new QHBoxLayout(widget); + QVBoxLayout *vLayout = new QVBoxLayout(); + hLayout->addWidget(container, 1); + hLayout->addLayout(vLayout); + + widget->setWindowTitle(QStringLiteral("Custom Input Handling")); + + QPushButton *cameraButton = new QPushButton(widget); + cameraButton->setText(QStringLiteral("Toggle Camera Animation")); + + QComboBox *shadowQuality = new QComboBox(widget); + shadowQuality->addItem(QStringLiteral("None")); + shadowQuality->addItem(QStringLiteral("Low")); + shadowQuality->addItem(QStringLiteral("Medium")); + shadowQuality->addItem(QStringLiteral("High")); + shadowQuality->addItem(QStringLiteral("Low Soft")); + shadowQuality->addItem(QStringLiteral("Medium Soft")); + shadowQuality->addItem(QStringLiteral("High Soft")); + shadowQuality->setCurrentIndex(2); + + vLayout->addWidget(cameraButton, 0, Qt::AlignTop); + vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")), 0, Qt::AlignTop); + vLayout->addWidget(shadowQuality, 1, Qt::AlignTop); + + ScatterDataModifier *modifier = new ScatterDataModifier(graph); + + QObject::connect(cameraButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::toggleCameraAnimation); + + QObject::connect(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeShadowQuality(int))); + + QObject::connect(modifier, &ScatterDataModifier::shadowQualityChanged, shadowQuality, + &QComboBox::setCurrentIndex); + + widget->show(); + modifier->start(); + return app.exec(); +} diff --git a/examples/datavisualization/custominput/scatterdatamodifier.cpp b/examples/datavisualization/custominput/scatterdatamodifier.cpp new file mode 100644 index 00000000..a2a5bea9 --- /dev/null +++ b/examples/datavisualization/custominput/scatterdatamodifier.cpp @@ -0,0 +1,172 @@ +/**************************************************************************** +** +** 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 "scatterdatamodifier.h" + +#include +#include +#include +#include +#include +#include +#include + +using namespace QtDataVisualization; + +ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) + : m_graph(scatter), + m_inputHandler(new CustomInputHandler()) +{ + m_graph->activeTheme()->setType(Q3DTheme::ThemeDigia); + m_graph->setShadowQuality(QAbstract3DGraph::ShadowQualityMedium); + m_graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront); + + m_graph->setAxisX(new QValue3DAxis); + m_graph->setAxisY(new QValue3DAxis); + m_graph->setAxisZ(new QValue3DAxis); + + m_graph->axisX()->setRange(-10.0f, 10.0f); + m_graph->axisY()->setRange(-5.0f, 5.0f); + m_graph->axisZ()->setRange(-5.0f, 5.0f); + + QScatter3DSeries *series = new QScatter3DSeries; + series->setItemLabelFormat(QStringLiteral("@xLabel, @yLabel, @zLabel")); + series->setMesh(QAbstract3DSeries::MeshCube); + series->setItemSize(0.15f); + m_graph->addSeries(series); + + //! [2] + m_animationCameraX = new QPropertyAnimation(m_graph->scene()->activeCamera(), "xRotation"); + m_animationCameraX->setDuration(20000); + m_animationCameraX->setStartValue(QVariant::fromValue(0.0f)); + m_animationCameraX->setEndValue(QVariant::fromValue(360.0f)); + m_animationCameraX->setLoopCount(-1); + //! [2] + + //! [3] + QPropertyAnimation *upAnimation = new QPropertyAnimation(m_graph->scene()->activeCamera(), "yRotation"); + upAnimation->setDuration(9000); + upAnimation->setStartValue(QVariant::fromValue(5.0f)); + upAnimation->setEndValue(QVariant::fromValue(45.0f)); + + QPropertyAnimation *downAnimation = new QPropertyAnimation(m_graph->scene()->activeCamera(), "yRotation"); + downAnimation->setDuration(9000); + downAnimation->setStartValue(QVariant::fromValue(45.0f)); + downAnimation->setEndValue(QVariant::fromValue(5.0f)); + + m_animationCameraY = new QSequentialAnimationGroup(); + m_animationCameraY->setLoopCount(-1); + m_animationCameraY->addAnimation(upAnimation); + m_animationCameraY->addAnimation(downAnimation); + //! [3] + + m_animationCameraX->start(); + m_animationCameraY->start(); + + // Give ownership of the handler to the graph and make it the active handler + //! [0] + m_graph->setActiveInputHandler(m_inputHandler); + //! [0] + + //! [1] + m_selectionTimer = new QTimer(this); + m_selectionTimer->setInterval(10); + m_selectionTimer->setSingleShot(false); + QObject::connect(m_selectionTimer, &QTimer::timeout, this, + &ScatterDataModifier::triggerSelection); + m_selectionTimer->start(); + //! [1] +} + +ScatterDataModifier::~ScatterDataModifier() +{ + delete m_graph; +} + +void ScatterDataModifier::start() +{ + addData(); +} + +void ScatterDataModifier::addData() +{ + QVector itemList; + + // Read data items from the file to QVector + QTextStream stream; + QFile dataFile(":/data/data.txt"); + if (dataFile.open(QIODevice::ReadOnly | QIODevice::Text)) { + stream.setDevice(&dataFile); + while (!stream.atEnd()) { + QString line = stream.readLine(); + if (line.startsWith("#")) // Ignore comments + continue; + QStringList strList = line.split(",", QString::SkipEmptyParts); + // Each line has three data items: xPos, yPos and zPos value + if (strList.size() < 3) { + qWarning() << "Invalid row read from data:" << line; + continue; + } + itemList.append(QVector3D( + strList.at(0).trimmed().toFloat(), + strList.at(1).trimmed().toFloat(), + strList.at(2).trimmed().toFloat())); + } + } else { + qWarning() << "Unable to open data file:" << dataFile.fileName(); + } + + // Add data from the QVector to datamodel + QScatterDataArray *dataArray = new QScatterDataArray; + dataArray->resize(itemList.count()); + QScatterDataItem *ptrToDataArray = &dataArray->first(); + for (int i = 0; i < itemList.count(); i++) { + ptrToDataArray->setPosition(itemList.at(i)); + ptrToDataArray++; + } + + m_graph->seriesList().at(0)->dataProxy()->resetArray(dataArray); +} + +void ScatterDataModifier::toggleCameraAnimation() +{ + if (m_animationCameraX->state() != QAbstractAnimation::Paused) { + m_animationCameraX->pause(); + m_animationCameraY->pause(); + } else { + m_animationCameraX->resume(); + m_animationCameraY->resume(); + } +} + +void ScatterDataModifier::triggerSelection() +{ + m_graph->scene()->setSelectionQueryPosition(m_inputHandler->inputPosition()); +} + +void ScatterDataModifier::shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality sq) +{ + int quality = int(sq); + emit shadowQualityChanged(quality); // connected to a checkbox in main.cpp +} + +void ScatterDataModifier::changeShadowQuality(int quality) +{ + QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); + m_graph->setShadowQuality(sq); +} diff --git a/examples/datavisualization/custominput/scatterdatamodifier.h b/examples/datavisualization/custominput/scatterdatamodifier.h new file mode 100644 index 00000000..9ea6a5c8 --- /dev/null +++ b/examples/datavisualization/custominput/scatterdatamodifier.h @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** 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 +** +****************************************************************************/ + +#ifndef SCATTERDATAMODIFIER_H +#define SCATTERDATAMODIFIER_H + +#include "custominputhandler.h" + +#include +#include +#include +#include +#include +#include + +using namespace QtDataVisualization; + +class ScatterDataModifier : public QObject +{ + Q_OBJECT +public: + explicit ScatterDataModifier(Q3DScatter *scatter); + ~ScatterDataModifier(); + + void addData(); + void toggleCameraAnimation(); + void start(); + +public slots: + void changeShadowQuality(int quality); + void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality); + void triggerSelection(); + +signals: + void shadowQualityChanged(int quality); + +private: + Q3DScatter *m_graph; + QPropertyAnimation *m_animationCameraX; + QSequentialAnimationGroup *m_animationCameraY; + CustomInputHandler *m_inputHandler; + QTimer *m_selectionTimer; +}; + +#endif -- cgit v1.2.3