summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@theqtcompany.com>2016-01-22 09:18:50 +0200
committerSamuli Piippo <samuli.piippo@theqtcompany.com>2016-01-22 08:27:38 +0000
commiteb0d282260db6f03b299029c52a73d203cc16786 (patch)
treed8b12c91b9facee361f77c9b0acb3f9948fe0563
parent9b318c914e1d64daea4820fbc2d7997b355ffb6c (diff)
delete unnecessary demos
Change-Id: I9b325faabc80a65283f005e5bae3be29fdecccab Reviewed-by: Kimmo Ollila <kimmo.ollila@theqtcompany.com> Reviewed-by: Samuli Piippo <samuli.piippo@theqtcompany.com>
-rw-r--r--basicsuite/controls-touch/content/AndroidDelegate.qml92
-rw-r--r--basicsuite/controls-touch/content/ButtonPage.qml120
-rw-r--r--basicsuite/controls-touch/content/ProgressBarPage.qml114
-rw-r--r--basicsuite/controls-touch/content/SliderPage.qml106
-rw-r--r--basicsuite/controls-touch/content/TabBarPage.qml102
-rw-r--r--basicsuite/controls-touch/content/TextInputPage.qml106
-rw-r--r--basicsuite/controls-touch/controls-touch.pro16
-rw-r--r--basicsuite/controls-touch/description.txt3
-rw-r--r--basicsuite/controls-touch/exclude.txt1
-rw-r--r--basicsuite/controls-touch/images/NOTICE.txt2
-rw-r--r--basicsuite/controls-touch/images/button_default.pngbin1406 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/images/button_pressed.pngbin1694 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/images/navigation_next_item.pngbin1341 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/images/navigation_previous_item.pngbin1343 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/images/tab_selected.pngbin217 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/images/tabs_standard.pngbin1230 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/images/textinput.pngbin4132 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/images/toolbar.pngbin1643 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/main.qml148
-rw-r--r--basicsuite/controls-touch/preview_l.jpgbin29732 -> 0 bytes
-rw-r--r--basicsuite/controls-touch/title.txt1
-rw-r--r--basicsuite/qt5-everywhere/description.txt1
-rw-r--r--basicsuite/qt5-everywhere/main.qml5
-rw-r--r--basicsuite/qt5-everywhere/preview_l.jpgbin96897 -> 0 bytes
-rw-r--r--basicsuite/qt5-everywhere/qt5-everywhere.pro14
-rw-r--r--basicsuite/qt5-everywhere/title.txt1
-rw-r--r--basicsuite/qt5-particlesdemo/content/burstandpulse.qml110
-rw-r--r--basicsuite/qt5-particlesdemo/content/customemitter.qml96
-rw-r--r--basicsuite/qt5-particlesdemo/content/emitmask.qml74
-rw-r--r--basicsuite/qt5-particlesdemo/content/maximumemitted.qml82
-rw-r--r--basicsuite/qt5-particlesdemo/content/shapeanddirection.qml112
-rw-r--r--basicsuite/qt5-particlesdemo/content/trailemitter.qml176
-rw-r--r--basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml312
-rw-r--r--basicsuite/qt5-particlesdemo/description.txt1
-rw-r--r--basicsuite/qt5-particlesdemo/doc/images/qml-emitters-example.pngbin54749 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc62
-rw-r--r--basicsuite/qt5-particlesdemo/emitters.pro11
-rw-r--r--basicsuite/qt5-particlesdemo/emitters.qmlproject16
-rw-r--r--basicsuite/qt5-particlesdemo/emitters.qrc12
-rw-r--r--basicsuite/qt5-particlesdemo/exclude.txt1
-rw-r--r--basicsuite/qt5-particlesdemo/images/_explo.pngbin81528 -> 0 bytes
-rwxr-xr-xbasicsuite/qt5-particlesdemo/images/backgroundLeaves.jpgbin78665 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/bear_tiles.pngbin40349 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/candle.pngbin1348 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/colortable.pngbin704 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/finalfrontier.pngbin695061 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/flower.pngbin4683 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/matchmask.pngbin2369 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/meteor.pngbin83169 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/meteor_explo.pngbin219946 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/meteors.pngbin132137 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/nullRock.pngbin140 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle.pngbin861 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle2.pngbin3909 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle3.pngbin3186 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle4.pngbin1799 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particleA.pngbin3541 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/portal_bg.pngbin96858 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf1.pngbin15625 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf2.pngbin13660 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf3.pngbin23809 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf4.pngbin23655 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/rocket.pngbin7315 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/rocket2.pngbin1918 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/sizeInOut.pngbin251 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/snowflake.pngbin189327 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/sparkleSize.pngbin378 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/star.pngbin1550 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_0.pngbin15972 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_1.pngbin15746 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_2.pngbin16067 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_3.pngbin16201 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_4.pngbin14698 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_mask.pngbin11301 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/main.cpp41
-rw-r--r--basicsuite/qt5-particlesdemo/main.qml60
-rw-r--r--basicsuite/qt5-particlesdemo/preview_l.jpgbin13013 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro15
-rw-r--r--basicsuite/qt5-particlesdemo/shared/Button.qml91
-rw-r--r--basicsuite/qt5-particlesdemo/shared/LauncherList.qml148
-rw-r--r--basicsuite/qt5-particlesdemo/shared/README11
-rw-r--r--basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml89
-rw-r--r--basicsuite/qt5-particlesdemo/shared/images/back.pngbin1590 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/shared/images/next.pngbin1371 -> 0 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/shared/qmldir3
-rw-r--r--basicsuite/qt5-particlesdemo/shared/quick_shared.qrc8
-rw-r--r--basicsuite/qt5-particlesdemo/shared/shared.h58
-rw-r--r--basicsuite/qt5-particlesdemo/shared/shared.qrc8
-rw-r--r--basicsuite/qt5-particlesdemo/title.txt1
-rw-r--r--basicsuite/sensorexplorer/app.pro11
-rw-r--r--basicsuite/sensorexplorer/description.txt1
-rw-r--r--basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc82
-rw-r--r--basicsuite/sensorexplorer/exclude.txt1
-rw-r--r--basicsuite/sensorexplorer/imports/explorer.cpp136
-rw-r--r--basicsuite/sensorexplorer/imports/explorer.h79
-rw-r--r--basicsuite/sensorexplorer/imports/imports.pro24
-rw-r--r--basicsuite/sensorexplorer/imports/main.cpp63
-rw-r--r--basicsuite/sensorexplorer/imports/plugin.json1
-rw-r--r--basicsuite/sensorexplorer/imports/propertyinfo.cpp140
-rw-r--r--basicsuite/sensorexplorer/imports/propertyinfo.h83
-rw-r--r--basicsuite/sensorexplorer/imports/qmldir2
-rw-r--r--basicsuite/sensorexplorer/imports/sensoritem.cpp322
-rw-r--r--basicsuite/sensorexplorer/imports/sensoritem.h96
-rw-r--r--basicsuite/sensorexplorer/main.qml224
-rw-r--r--basicsuite/sensorexplorer/preview_l.jpgbin59469 -> 0 bytes
-rw-r--r--basicsuite/sensorexplorer/sensorexplorer.pro6
-rw-r--r--basicsuite/sensorexplorer/title.txt1
-rw-r--r--basicsuite/sensors/1.pngbin33675 -> 0 bytes
-rw-r--r--basicsuite/sensors/2.pngbin27754 -> 0 bytes
-rw-r--r--basicsuite/sensors/3.pngbin27841 -> 0 bytes
-rw-r--r--basicsuite/sensors/Accelbubble.qml137
-rw-r--r--basicsuite/sensors/Light.qml87
-rw-r--r--basicsuite/sensors/bluebubble.pngbin12815 -> 0 bytes
-rw-r--r--basicsuite/sensors/description.txt3
-rw-r--r--basicsuite/sensors/exclude.txt2
-rw-r--r--basicsuite/sensors/main.qml109
-rw-r--r--basicsuite/sensors/preview_l.jpgbin43733 -> 0 bytes
-rw-r--r--basicsuite/sensors/sensors.pro13
-rw-r--r--basicsuite/sensors/title.txt1
-rw-r--r--basicsuite/webengine/content/common/ddg.pngbin29990 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/common/open-sans.css131
-rw-r--r--basicsuite/webengine/content/common/opensans/Light/OpenSans-Light.woffbin62844 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/common/opensans/Regular/OpenSans-Regular.woffbin63712 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/common/osm.pngbin418498 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/common/qt-io.pngbin489628 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/common/reddit.pngbin397780 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/common/style.css84
-rw-r--r--basicsuite/webengine/content/common/youtube-tv.pngbin465148 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/csstetrahedron/index.html25
-rw-r--r--basicsuite/webengine/content/csstetrahedron/screenshot.pngbin7405 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/csstetrahedron/style.css109
-rw-r--r--basicsuite/webengine/content/index.html26
-rw-r--r--basicsuite/webengine/content/morphingcubes/index.html286
-rw-r--r--basicsuite/webengine/content/morphingcubes/screenshot.pngbin15607 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/rubiks/css/style.css36
-rw-r--r--basicsuite/webengine/content/rubiks/index.html25
-rw-r--r--basicsuite/webengine/content/rubiks/js/css3.oz.js28
-rw-r--r--basicsuite/webengine/content/rubiks/js/oz.js334
-rw-r--r--basicsuite/webengine/content/rubiks/js/quaternion.js78
-rw-r--r--basicsuite/webengine/content/rubiks/js/rubik.js492
-rw-r--r--basicsuite/webengine/content/rubiks/screenshot.pngbin7159 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/webgl/helloqt.html49
-rw-r--r--basicsuite/webengine/content/webgl/helloqt.js223
-rw-r--r--basicsuite/webengine/content/webgl/qtlogo.js2468
-rw-r--r--basicsuite/webengine/content/webgl/screenshot.pngbin17367 -> 0 bytes
-rw-r--r--basicsuite/webengine/content/webgl/three.min.js737
-rw-r--r--basicsuite/webengine/description.txt3
-rw-r--r--basicsuite/webengine/exclude.txt1
-rw-r--r--basicsuite/webengine/main.qml263
-rw-r--r--basicsuite/webengine/preview_l.jpgbin42323 -> 0 bytes
-rw-r--r--basicsuite/webengine/title.txt1
-rw-r--r--basicsuite/webengine/ui/icons/down.pngbin6275 -> 0 bytes
-rw-r--r--basicsuite/webengine/ui/icons/go-next.pngbin6729 -> 0 bytes
-rw-r--r--basicsuite/webengine/ui/icons/go-previous.pngbin6737 -> 0 bytes
-rw-r--r--basicsuite/webengine/ui/icons/home.pngbin4504 -> 0 bytes
-rw-r--r--basicsuite/webengine/ui/icons/process-stop.pngbin9423 -> 0 bytes
-rw-r--r--basicsuite/webengine/ui/icons/up.pngbin6257 -> 0 bytes
-rw-r--r--basicsuite/webengine/ui/icons/view-refresh.pngbin12593 -> 0 bytes
-rw-r--r--basicsuite/webengine/webengine.pro14
159 files changed, 0 insertions, 9467 deletions
diff --git a/basicsuite/controls-touch/content/AndroidDelegate.qml b/basicsuite/controls-touch/content/AndroidDelegate.qml
deleted file mode 100644
index e4870cc..0000000
--- a/basicsuite/controls-touch/content/AndroidDelegate.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-
-Item {
- id: root
- width: parent.width
- height: 88
-
- property alias text: textitem.text
- signal clicked
-
- Rectangle {
- anchors.fill: parent
- color: "#11ffffff"
- visible: mouse.pressed
- }
-
- Text {
- id: textitem
- color: "white"
- font.pixelSize: 32
- text: modelData
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.leftMargin: 30
- }
-
- Rectangle {
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.margins: 15
- height: 1
- color: "#424246"
- }
-
- Image {
- anchors.right: parent.right
- anchors.rightMargin: 20
- anchors.verticalCenter: parent.verticalCenter
- source: "../images/navigation_next_item.png"
- }
-
- MouseArea {
- id: mouse
- anchors.fill: parent
- onClicked: root.clicked()
-
- }
-}
diff --git a/basicsuite/controls-touch/content/ButtonPage.qml b/basicsuite/controls-touch/content/ButtonPage.qml
deleted file mode 100644
index e315d72..0000000
--- a/basicsuite/controls-touch/content/ButtonPage.qml
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- Button {
- anchors.margins: 20
- text: "Press me"
- style: touchStyle
- }
-
- Button {
- anchors.margins: 20
- style: touchStyle
- text: "Press me too"
- }
-
- Button {
- anchors.margins: 20
- style: touchStyle
- text: "Dont press me"
- onClicked: if (stackView) stackView.pop()
- }
-
- }
-
- Component {
- id: touchStyle
- ButtonStyle {
- panel: Item {
- implicitHeight: 50
- implicitWidth: 320
- BorderImage {
- anchors.fill: parent
- antialiasing: true
- border.bottom: 8
- border.top: 8
- border.left: 8
- border.right: 8
- anchors.margins: control.pressed ? -4 : 0
- source: control.pressed ? "../images/button_pressed.png" : "../images/button_default.png"
- Text {
- text: control.text
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 23
- renderType: Text.NativeRendering
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/controls-touch/content/ProgressBarPage.qml b/basicsuite/controls-touch/content/ProgressBarPage.qml
deleted file mode 100644
index d370d39..0000000
--- a/basicsuite/controls-touch/content/ProgressBarPage.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- width: 400
- value: progress
- }
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- width: 400
- value: 1 - progress
- }
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- value: 1
- width: 400
- }
-
- }
-
- Component {
- id: touchStyle
- ProgressBarStyle {
- panel: Rectangle {
- implicitHeight: 15
- implicitWidth: 400
- color: "#444"
- opacity: 0.8
- Rectangle {
- antialiasing: true
- radius: 1
- color: "#468bb7"
- height: parent.height
- width: parent.width * control.value / control.maximumValue
- }
- }
- }
- }
-}
diff --git a/basicsuite/controls-touch/content/SliderPage.qml b/basicsuite/controls-touch/content/SliderPage.qml
deleted file mode 100644
index eb5d70c..0000000
--- a/basicsuite/controls-touch/content/SliderPage.qml
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- Column {
- spacing: 12
- anchors.centerIn: parent
-
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 0
- }
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 0.5
- }
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 1.0
- }
-
- }
-
- Component {
- id: touchStyle
- SliderStyle {
- handle: Rectangle {
- width: 30
- height: 30
- radius: height
- antialiasing: true
- color: Qt.lighter("#468bb7", 1.2)
- }
-
- groove: Item {
- implicitHeight: 50
- implicitWidth: 400
- Rectangle {
- height: 8
- width: parent.width
- anchors.verticalCenter: parent.verticalCenter
- color: "#444"
- opacity: 0.8
- Rectangle {
- antialiasing: true
- radius: 1
- color: "#468bb7"
- height: parent.height
- width: parent.width * control.value / control.maximumValue
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/controls-touch/content/TabBarPage.qml b/basicsuite/controls-touch/content/TabBarPage.qml
deleted file mode 100644
index f13ab78..0000000
--- a/basicsuite/controls-touch/content/TabBarPage.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- TabView {
- anchors.fill: parent
- style: touchStyle
- Tab {
- title: "Buttons"
- ButtonPage{ visible: true }
- }
- Tab {
- title: "Sliders"
- SliderPage{ visible: true }
- }
- Tab {
- title: "Progress"
- ProgressBarPage{ visible: true }
- }
- }
-
- Component {
- id: touchStyle
- TabViewStyle {
- tabsAlignment: Qt.AlignVCenter
- tabOverlap: 0
- frame: Item { }
- tab: Item {
- implicitWidth: control.width/control.count
- implicitHeight: 50
- BorderImage {
- anchors.fill: parent
- border.bottom: 8
- border.top: 8
- source: styleData.selected ? "../images/tab_selected.png":"../images/tabs_standard.png"
- Text {
- anchors.centerIn: parent
- color: "white"
- text: styleData.title.toUpperCase()
- font.pixelSize: 16
- }
- Rectangle {
- visible: index > 0
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- anchors.margins: 10
- width:1
- color: "#3a3a3a"
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/controls-touch/content/TextInputPage.qml b/basicsuite/controls-touch/content/TextInputPage.qml
deleted file mode 100644
index 058ff53..0000000
--- a/basicsuite/controls-touch/content/TextInputPage.qml
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- TextField {
- anchors.margins: 20
- text: "Text input"
- style: touchStyle
- }
-
- TextField {
- anchors.margins: 20
- text: "Readonly Text input"
- style: touchStyle
- readOnly: true
- }
- }
- Component {
- id: touchStyle
-
- TextFieldStyle {
- textColor: "white"
- font.pixelSize: 28
- background: Item {
- implicitHeight: 50
- implicitWidth: 320
- BorderImage {
- source: "../images/textinput.png"
- border.left: 8
- border.right: 8
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- }
- }
- }
- }
-}
diff --git a/basicsuite/controls-touch/controls-touch.pro b/basicsuite/controls-touch/controls-touch.pro
deleted file mode 100644
index 9771bef..0000000
--- a/basicsuite/controls-touch/controls-touch.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-TARGET = controls-touch
-
-include(../shared/shared.pri)
-b2qtdemo_deploy_defaults()
-
-content.files = \
- *.qml \
- *.png \
- content \
- images
-
-content.path = $$DESTPATH
-
-OTHER_FILES += $${content.files}
-
-INSTALLS += target content
diff --git a/basicsuite/controls-touch/description.txt b/basicsuite/controls-touch/description.txt
deleted file mode 100644
index 5106dff..0000000
--- a/basicsuite/controls-touch/description.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-The purpose of this example is to show Qt Quick Controls in practice. The example uses a StackView to navigate between pages and illustrates the use of many of the controls provided by Qt Quick Control, including Button, Slider, ProgressBar, TabBar and TextInput types. The style in the example is a custom style made to look like the Android theme, it is written purely in QML.
-
-The example has been adapted slightly to run inside this launcher, the original is available in the Qt Quick Controls repository.
diff --git a/basicsuite/controls-touch/exclude.txt b/basicsuite/controls-touch/exclude.txt
deleted file mode 100644
index 0702cb5..0000000
--- a/basicsuite/controls-touch/exclude.txt
+++ /dev/null
@@ -1 +0,0 @@
-all
diff --git a/basicsuite/controls-touch/images/NOTICE.txt b/basicsuite/controls-touch/images/NOTICE.txt
deleted file mode 100644
index 93a9afc..0000000
--- a/basicsuite/controls-touch/images/NOTICE.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Notice some of these images are derived from Google applications resources. They were provided under the following license:
-You may use the materials in this directory without restriction to develop your apps and to use in your apps.
diff --git a/basicsuite/controls-touch/images/button_default.png b/basicsuite/controls-touch/images/button_default.png
deleted file mode 100644
index 6d6cfd9..0000000
--- a/basicsuite/controls-touch/images/button_default.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/images/button_pressed.png b/basicsuite/controls-touch/images/button_pressed.png
deleted file mode 100644
index ab78b6e..0000000
--- a/basicsuite/controls-touch/images/button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/images/navigation_next_item.png b/basicsuite/controls-touch/images/navigation_next_item.png
deleted file mode 100644
index 6665c9d..0000000
--- a/basicsuite/controls-touch/images/navigation_next_item.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/images/navigation_previous_item.png b/basicsuite/controls-touch/images/navigation_previous_item.png
deleted file mode 100644
index f8be011..0000000
--- a/basicsuite/controls-touch/images/navigation_previous_item.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/images/tab_selected.png b/basicsuite/controls-touch/images/tab_selected.png
deleted file mode 100644
index 2345f7a..0000000
--- a/basicsuite/controls-touch/images/tab_selected.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/images/tabs_standard.png b/basicsuite/controls-touch/images/tabs_standard.png
deleted file mode 100644
index 7140ab7..0000000
--- a/basicsuite/controls-touch/images/tabs_standard.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/images/textinput.png b/basicsuite/controls-touch/images/textinput.png
deleted file mode 100644
index b0256db..0000000
--- a/basicsuite/controls-touch/images/textinput.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/images/toolbar.png b/basicsuite/controls-touch/images/toolbar.png
deleted file mode 100644
index e9eba4c..0000000
--- a/basicsuite/controls-touch/images/toolbar.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/main.qml b/basicsuite/controls-touch/main.qml
deleted file mode 100644
index 929f31e..0000000
--- a/basicsuite/controls-touch/main.qml
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import "content"
-
-Item {
- width: 800
- height: 1280
-
- Rectangle {
- color: "#212126"
- anchors.fill: parent
- }
-
- // Implements back key navigation
- Keys.onReleased: {
- if (event.key === Qt.Key_Back) {
- if (stackView.depth > 1) {
- stackView.pop();
- event.accepted = true;
- } else { Qt.quit(); }
- }
- }
-
- BorderImage {
- id: toolbar
- border.bottom: 8
- source: "images/toolbar.png"
- width: parent.width
- height: 100
-
- Rectangle {
- id: backButton
- width: opacity ? 60 : 0
- anchors.left: parent.left
- anchors.leftMargin: 20
- opacity: stackView.depth > 1 ? 1 : 0
- anchors.verticalCenter: parent.verticalCenter
- antialiasing: true
- height: 60
- radius: 4
- color: backmouse.pressed ? "#222" : "transparent"
- Behavior on opacity { NumberAnimation{} }
- Image {
- anchors.verticalCenter: parent.verticalCenter
- source: "images/navigation_previous_item.png"
- }
- MouseArea {
- id: backmouse
- anchors.fill: parent
- anchors.margins: -10
- onClicked: stackView.pop()
- }
- }
-
- Text {
- font.pixelSize: 42
- Behavior on x { NumberAnimation{ easing.type: Easing.OutCubic} }
- x: backButton.x + backButton.width + 20
- anchors.verticalCenter: parent.verticalCenter
- color: "white"
- text: "Widget Gallery"
- }
- }
-
- ListModel {
- id: pageModel
- ListElement {
- title: "Buttons"
- page: "content/ButtonPage.qml"
- }
- ListElement {
- title: "Sliders"
- page: "content/SliderPage.qml"
- }
- ListElement {
- title: "ProgressBar"
- page: "content/ProgressBarPage.qml"
- }
- ListElement {
- title: "Tabs"
- page: "content/TabBarPage.qml"
- }
- ListElement {
- title: "TextInput"
- page: "content/TextInputPage.qml"
- }
- }
-
- StackView {
- id: stackView
- anchors.fill: parent
- anchors.topMargin: toolbar.height
-
- initialItem: Item {
- width: parent.width
- height: parent.height
- ListView {
- model: pageModel
- anchors.fill: parent
- delegate: AndroidDelegate {
- text: title
- onClicked: stackView.push(Qt.resolvedUrl(page))
- }
- }
- }
- }
-
-}
diff --git a/basicsuite/controls-touch/preview_l.jpg b/basicsuite/controls-touch/preview_l.jpg
deleted file mode 100644
index 0653058..0000000
--- a/basicsuite/controls-touch/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/controls-touch/title.txt b/basicsuite/controls-touch/title.txt
deleted file mode 100644
index 60325b1..0000000
--- a/basicsuite/controls-touch/title.txt
+++ /dev/null
@@ -1 +0,0 @@
-080. Controls - Touch
diff --git a/basicsuite/qt5-everywhere/description.txt b/basicsuite/qt5-everywhere/description.txt
deleted file mode 100644
index 4846702..0000000
--- a/basicsuite/qt5-everywhere/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-This demo shows how to use different user interface styles in several platforms and device types with one source code. It contains several Qt Quick 2 applications which you can launch by tapping each device.
diff --git a/basicsuite/qt5-everywhere/main.qml b/basicsuite/qt5-everywhere/main.qml
deleted file mode 100644
index 1d8b86a..0000000
--- a/basicsuite/qt5-everywhere/main.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import QtQuick 2.2
-
-Loader {
- source: "qml/QtDemo/main.qml"
-}
diff --git a/basicsuite/qt5-everywhere/preview_l.jpg b/basicsuite/qt5-everywhere/preview_l.jpg
deleted file mode 100644
index 8351f1f..0000000
--- a/basicsuite/qt5-everywhere/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-everywhere/qt5-everywhere.pro b/basicsuite/qt5-everywhere/qt5-everywhere.pro
deleted file mode 100644
index c7fe2d7..0000000
--- a/basicsuite/qt5-everywhere/qt5-everywhere.pro
+++ /dev/null
@@ -1,14 +0,0 @@
-TARGET = qt5-everywhere
-
-include(../shared/shared.pri)
-b2qtdemo_deploy_defaults()
-
-content.files = \
- *.qml \
- qml \
-
-content.path = $$DESTPATH
-
-OTHER_FILES += $${content.files}
-
-INSTALLS += target content
diff --git a/basicsuite/qt5-everywhere/title.txt b/basicsuite/qt5-everywhere/title.txt
deleted file mode 100644
index 2aae9a5..0000000
--- a/basicsuite/qt5-everywhere/title.txt
+++ /dev/null
@@ -1 +0,0 @@
-020. Qt5 Everywhere
diff --git a/basicsuite/qt5-particlesdemo/content/burstandpulse.qml b/basicsuite/qt5-particlesdemo/content/burstandpulse.qml
deleted file mode 100644
index de140c3..0000000
--- a/basicsuite/qt5-particlesdemo/content/burstandpulse.qml
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- width: 320
- height: 480
- color: "black"
- property bool lastWasPulse: false
- Timer {
- interval: 3500
- triggeredOnStart: true
- running: true
- repeat: true
- onTriggered: {
- //! [0]
- if (lastWasPulse) {
- burstEmitter.burst(500);
- lastWasPulse = false;
- } else {
- pulseEmitter.pulse(500);
- lastWasPulse = true;
- }
- //! [0]
- }
- }
- ParticleSystem {
- id: particles
- anchors.fill: parent
- ImageParticle {
- source: "../images/star.png"
- alpha: 0
- colorVariation: 0.6
- }
-
- Emitter {
- id: burstEmitter
- x: parent.width/2
- y: parent.height/3
- emitRate: 1000
- lifeSpan: 2000
- enabled: false
- velocity: AngleDirection{magnitude: 64; angleVariation: 360}
- size: 24
- sizeVariation: 8
- Text {
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 18
- text: "Burst"
- }
- }
- Emitter {
- id: pulseEmitter
- x: parent.width/2
- y: 2*parent.height/3
- emitRate: 1000
- lifeSpan: 2000
- enabled: false
- velocity: AngleDirection{magnitude: 64; angleVariation: 360}
- size: 24
- sizeVariation: 8
- Text {
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 18
- text: "Pulse"
- }
- }
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/content/customemitter.qml b/basicsuite/qt5-particlesdemo/content/customemitter.qml
deleted file mode 100644
index 1c32cee..0000000
--- a/basicsuite/qt5-particlesdemo/content/customemitter.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-ParticleSystem {
- id: sys
- width: 360
- height: 600
- running: true
- Rectangle {
- z: -1
- anchors.fill: parent
- color: "black"
- }
-
- property real petalLength: 180
- property real petalRotation: 0
- NumberAnimation on petalRotation {
- from: 0;
- to: 360;
- loops: -1;
- running: true
- duration: 24000
- }
-
- function convert(a) {return a*(Math.PI/180);}
- Emitter {
- lifeSpan: 4000
- emitRate: 120
- size: 12
- anchors.centerIn: parent
- //! [0]
- onEmitParticles: {
- for (var i=0; i<particles.length; i++) {
- var particle = particles[i];
- particle.startSize = Math.max(02,Math.min(492,Math.tan(particle.t/2)*24));
- var theta = Math.floor(Math.random() * 6.0);
- particle.red = theta == 0 || theta == 1 || theta == 2 ? 0.2 : 1;
- particle.green = theta == 2 || theta == 3 || theta == 4 ? 0.2 : 1;
- particle.blue = theta == 4 || theta == 5 || theta == 0 ? 0.2 : 1;
- theta /= 6.0;
- theta *= 2.0*Math.PI;
- theta += sys.convert(sys.petalRotation);//Convert from degrees to radians
- particle.initialVX = petalLength * Math.cos(theta);
- particle.initialVY = petalLength * Math.sin(theta);
- particle.initialAX = particle.initialVX * -0.5;
- particle.initialAY = particle.initialVY * -0.5;
- }
- }
- //! [0]
- }
-
- ImageParticle {
- source: "../images/particle4.png"
- alpha: 0.0
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/content/emitmask.qml b/basicsuite/qt5-particlesdemo/content/emitmask.qml
deleted file mode 100644
index c2b2b2f..0000000
--- a/basicsuite/qt5-particlesdemo/content/emitmask.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- color: "goldenrod"
- width: 400
- height: 400
- ParticleSystem {
- width: 300
- height: 300
- anchors.centerIn: parent
-
- ImageParticle {
- source: "../images/particle.png"
- z: 2
- anchors.fill: parent
- color: "#336666CC"
- colorVariation: 0.0
- }
-
- Emitter {
- anchors.fill: parent
- emitRate: 6000
- lifeSpan: 720
- size: 10
- //! [0]
- shape: MaskShape {
- source: "../images/starfish_mask.png"
- }
- //! [0]
- }
-
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/content/maximumemitted.qml b/basicsuite/qt5-particlesdemo/content/maximumemitted.qml
deleted file mode 100644
index 11c90fe..0000000
--- a/basicsuite/qt5-particlesdemo/content/maximumemitted.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- color: "black"
- width: 360
- height: 540
- ParticleSystem {
- id: sys
- anchors.fill: parent
- onEmptyChanged: if (empty) sys.pause();
-
- ImageParticle {
- system: sys
- id: cp
- source: "../images/particle.png"
- colorVariation: 0.4
- color: "#000000FF"
- }
-
- Emitter {
- //burst on click
- id: bursty
- system: sys
- enabled: ma.pressed
- x: ma.mouseX
- y: ma.mouseY
- emitRate: 16000
- maximumEmitted: 4000
- acceleration: AngleDirection {angleVariation: 360; magnitude: 360; }
- size: 8
- endSize: 16
- sizeVariation: 4
- }
-
- MouseArea {
- anchors.fill: parent
- onPressed: sys.resume()
- id: ma
- }
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/content/shapeanddirection.qml b/basicsuite/qt5-particlesdemo/content/shapeanddirection.qml
deleted file mode 100644
index c8b7952..0000000
--- a/basicsuite/qt5-particlesdemo/content/shapeanddirection.qml
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- id: root
- width: 360
- height: 540
- color: "black"
- Image {
- anchors.fill: parent
- source: "../images/portal_bg.png"
- }
-
- ParticleSystem {
- id: particles
- anchors.fill: parent
-
- ImageParticle {
- groups: ["center","edge"]
- anchors.fill: parent
- source: "../images/particle.png"
- colorVariation: 0.1
- color: "#009999FF"
- }
-
- Emitter {
- anchors.fill: parent
- group: "center"
- emitRate: 400
- lifeSpan: 2000
- size: 20
- sizeVariation: 2
- endSize: 0
- //! [0]
- shape: EllipseShape {fill: false}
- velocity: TargetDirection {
- targetX: root.width/2
- targetY: root.height/2
- proportionalMagnitude: true
- magnitude: 0.5
- }
- //! [0]
- }
-
- Emitter {
- anchors.fill: parent
- group: "edge"
- startTime: 2000
- emitRate: 2000
- lifeSpan: 2000
- size: 28
- sizeVariation: 2
- endSize: 16
- shape: EllipseShape {fill: false}
- velocity: TargetDirection {
- targetX: root.width/2
- targetY: root.height/2
- proportionalMagnitude: true
- magnitude: 0.1
- magnitudeVariation: 0.1
- }
- acceleration: TargetDirection {
- targetX: root.width/2
- targetY: root.height/2
- targetVariation: 200
- proportionalMagnitude: true
- magnitude: 0.1
- magnitudeVariation: 0.1
- }
- }
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/content/trailemitter.qml b/basicsuite/qt5-particlesdemo/content/trailemitter.qml
deleted file mode 100644
index 9278f78..0000000
--- a/basicsuite/qt5-particlesdemo/content/trailemitter.qml
+++ /dev/null
@@ -1,176 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- id: root
- width: 360
- height: 540
- color: "black"
-
- ParticleSystem {
- id: particles
- anchors.fill: parent
-
- ImageParticle {
- id: smoke
- system: particles
- anchors.fill: parent
- groups: ["A", "B"]
- source: "../images/particle.png"
- colorVariation: 0
- color: "#00111111"
- }
- ImageParticle {
- id: flame
- anchors.fill: parent
- system: particles
- groups: ["C", "D"]
- source: "../images/particle.png"
- colorVariation: 0.1
- color: "#00ff400f"
- }
-
- Emitter {
- id: fire
- system: particles
- group: "C"
-
- y: parent.height
- width: parent.width
-
- emitRate: 350
- lifeSpan: 3500
-
- acceleration: PointDirection { y: -17; xVariation: 3 }
- velocity: PointDirection {xVariation: 3}
-
- size: 24
- sizeVariation: 8
- endSize: 4
- }
-
- TrailEmitter {
- id: fireSmoke
- group: "B"
- system: particles
- follow: "C"
- width: root.width
- height: root.height - 68
-
- emitRatePerParticle: 1
- lifeSpan: 2000
-
- velocity: PointDirection {y:-17*6; yVariation: -17; xVariation: 3}
- acceleration: PointDirection {xVariation: 3}
-
- size: 36
- sizeVariation: 8
- endSize: 16
- }
-
- TrailEmitter {
- id: fireballFlame
- anchors.fill: parent
- system: particles
- group: "D"
- follow: "E"
-
- emitRatePerParticle: 120
- lifeSpan: 180
- emitWidth: TrailEmitter.ParticleSize
- emitHeight: TrailEmitter.ParticleSize
- emitShape: EllipseShape{}
-
- size: 16
- sizeVariation: 4
- endSize: 4
- }
-
- TrailEmitter {
- id: fireballSmoke
- anchors.fill: parent
- system: particles
- group: "A"
- follow: "E"
-
- emitRatePerParticle: 128
- lifeSpan: 2400
- emitWidth: TrailEmitter.ParticleSize
- emitHeight: TrailEmitter.ParticleSize
- emitShape: EllipseShape{}
-
- velocity: PointDirection {yVariation: 16; xVariation: 16}
- acceleration: PointDirection {y: -16}
-
- size: 24
- sizeVariation: 8
- endSize: 8
- }
-
- Emitter {
- id: balls
- system: particles
- group: "E"
-
- y: parent.height
- width: parent.width
-
- emitRate: 2
- lifeSpan: 7000
-
- velocity: PointDirection {y:-17*4*2; xVariation: 6*6}
- acceleration: PointDirection {y: 17*2; xVariation: 6*6}
-
- size: 8
- sizeVariation: 4
- }
-
- Turbulence { //A bit of turbulence makes the smoke look better
- anchors.fill: parent
- groups: ["A","B"]
- strength: 32
- system: particles
- }
- }
-}
-
diff --git a/basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml b/basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml
deleted file mode 100644
index 280d8bf..0000000
--- a/basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml
+++ /dev/null
@@ -1,312 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
-
- id: root
-
- height: 540
- width: 360
-
- gradient: Gradient {
- GradientStop { position: 0; color: "#000020" }
- GradientStop { position: 1; color: "#000000" }
- }
-
- MouseArea {
- id: mouseArea
- anchors.fill: root
- }
-
- ParticleSystem { id: sys1 }
- ImageParticle {
- system: sys1
- source: "../images/particle.png"
- color: "cyan"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "cyan"
- to: "magenta"
- duration: 1000
- }
- ColorAnimation {
- from: "magenta"
- to: "blue"
- duration: 2000
- }
- ColorAnimation {
- from: "blue"
- to: "violet"
- duration: 2000
- }
- ColorAnimation {
- from: "violet"
- to: "cyan"
- duration: 2000
- }
- }
- colorVariation: 0.3
- }
- //! [0]
- Emitter {
- id: trailsNormal
- system: sys1
-
- emitRate: 500
- lifeSpan: 2000
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
- velocityFromMovement: 8
-
- size: 8
- sizeVariation: 4
- }
- //! [0]
- ParticleSystem { id: sys2 }
- ImageParticle {
- color: "cyan"
- system: sys2
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "magenta"
- to: "cyan"
- duration: 1000
- }
- ColorAnimation {
- from: "cyan"
- to: "magenta"
- duration: 2000
- }
- }
- colorVariation: 0.5
- source: "../images/star.png"
- }
- Emitter {
- id: trailsStars
- system: sys2
-
- emitRate: 100
- lifeSpan: 2200
-
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
- velocityFromMovement: 8
-
- size: 22
- sizeVariation: 4
- }
- ParticleSystem { id: sys3; }
- ImageParticle {
- source: "../images/particle.png"
- system: sys3
- color: "orange"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "red"
- to: "green"
- duration: 2000
- }
- ColorAnimation {
- from: "green"
- to: "red"
- duration: 2000
- }
- }
-
- colorVariation: 0.2
-
- }
- Emitter {
- id: trailsNormal2
- system: sys3
-
- emitRate: 300
- lifeSpan: 2000
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
-
- velocityFromMovement: 16
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
-
- size: 12
- sizeVariation: 4
- }
- ParticleSystem { id: sys4; }
- ImageParticle {
- system: sys4
- source: "../images/star.png"
- color: "green"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "green"
- to: "red"
- duration: 2000
- }
- ColorAnimation {
- from: "red"
- to: "green"
- duration: 2000
- }
- }
-
- colorVariation: 0.5
- }
- Emitter {
- id: trailsStars2
- system: sys4
-
- emitRate: 50
- lifeSpan: 2200
-
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
-
- velocityFromMovement: 16
- velocity: PointDirection {xVariation: 2; yVariation: 2;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
-
- size: 22
- sizeVariation: 4
- }
-
-
-
- color: "white"
-
- Item {
- id: circle
- //anchors.fill: parent
- property real radius: 0
- property real dx: root.width / 2
- property real dy: root.height / 2
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- duration: 1000
- from: 1
- to: 0
- loops: 8
- }
- NumberAnimation {
- duration: 1000
- from: 0
- to: 1
- loops: 8
- }
-
- }
-
- SequentialAnimation on radius {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- duration: 4000
- from: 0
- to: 100
- }
- NumberAnimation {
- duration: 4000
- from: 100
- to: 0
- }
- }
- }
-
- Item {
- id: circle3
- property real radius: 100
- property real dx: root.width / 2
- property real dy: root.height / 2
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation { from: 0.0; to: 1 ; duration: 10000; }
- }
- }
-
- Item {
- id: circle2
- property real radius: 30
- property real dx: circle3.cx
- property real dy: circle3.cy
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation { from: 0.0; to: 1 ; duration: 1000; }
- }
- }
-
-}
diff --git a/basicsuite/qt5-particlesdemo/description.txt b/basicsuite/qt5-particlesdemo/description.txt
deleted file mode 100644
index 6fd5320..0000000
--- a/basicsuite/qt5-particlesdemo/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-This demo offers a few samples of what Qt Quick 2.0's new particle system can do.
diff --git a/basicsuite/qt5-particlesdemo/doc/images/qml-emitters-example.png b/basicsuite/qt5-particlesdemo/doc/images/qml-emitters-example.png
deleted file mode 100644
index 0025afd..0000000
--- a/basicsuite/qt5-particlesdemo/doc/images/qml-emitters-example.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc b/basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc
deleted file mode 100644
index 2a53ef1..0000000
--- a/basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: http://www.gnu.org/copyleft/fdl.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-/*!
- \title QtQuick Particles Emitters
- \example qt5-particlesdemo
- \ingroup b2qt-demos
- \brief This is a collection of examples using Emitters in the QML particle system.
-
- \image b2qt-demo-qt5-particlesdemo.jpg
-
- This is a collection of small QML examples relating to using Emitters in the particle system.
- Each example is a small QML file emphasizing a particular element or feature.
-
- Velocity from motion gives the effect of strong particle motion through primarily moving the emitters:
- \snippet qt5-particlesdemo/content/velocityfrommotion.qml 0
-
- Burst and pulse calls the burst and pulse methods on two idential emitters.
- \snippet qt5-particlesdemo/content/burstandpulse.qml 0
- Note how burst takes an argument of number of particles to emit, and pulse takes an argument of number of milliseconds to emit for.
- This gives a slightly different behaviour, which is easy to see in this example.
-
- Custom Emitter connects to the emitParticles signal to set arbitrary values on particle data as they're emitted;
- \snippet qt5-particlesdemo/content/customemitter.qml 0
- This is used to emit curving particles in six rotating spokes.
-
- Emit mask sets an image mask on the Emitter, to emit out of an arbitrary shape.
- \snippet qt5-particlesdemo/content/emitmask.qml 0
-
- Maximum emitted emits no more than a certain number of particles at a time. This example makes it easy to see what happens when the limit is reached.
-
- Shape and Direction emits particles out of an unfilled Ellipse shape, using a TargetDirection
- \snippet qt5-particlesdemo/content/shapeanddirection.qml 0
- This sends the particles towards the center of the ellipse with proportional speed, keeping the ellipse outline as they move to the center.
-
- TrailEmitter uses that element to add smoke particles to trail the fire particles in the scene.
- \snippet qt5-particlesdemo/content/customemitter.qml 0
-
-*/
diff --git a/basicsuite/qt5-particlesdemo/emitters.pro b/basicsuite/qt5-particlesdemo/emitters.pro
deleted file mode 100644
index c5d8b8b..0000000
--- a/basicsuite/qt5-particlesdemo/emitters.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-TEMPLATE = app
-
-QT += quick qml
-SOURCES += main.cpp
-RESOURCES += \
- emitters.qrc \
- ../images.qrc \
- ../../shared/shared.qrc
-
-target.path = $$[QT_INSTALL_EXAMPLES]/quick/particles/emitters
-INSTALLS += target
diff --git a/basicsuite/qt5-particlesdemo/emitters.qmlproject b/basicsuite/qt5-particlesdemo/emitters.qmlproject
deleted file mode 100644
index 5379aac..0000000
--- a/basicsuite/qt5-particlesdemo/emitters.qmlproject
+++ /dev/null
@@ -1,16 +0,0 @@
-import QmlProject 1.1
-
-Project {
- mainFile: "emitters.qml"
-
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/emitters.qrc b/basicsuite/qt5-particlesdemo/emitters.qrc
deleted file mode 100644
index 708c868..0000000
--- a/basicsuite/qt5-particlesdemo/emitters.qrc
+++ /dev/null
@@ -1,12 +0,0 @@
-<RCC>
- <qresource prefix="/particles/emitters">
- <file>emitters.qml</file>
- <file>content/burstandpulse.qml</file>
- <file>content/customemitter.qml</file>
- <file>content/emitmask.qml</file>
- <file>content/maximumemitted.qml</file>
- <file>content/shapeanddirection.qml</file>
- <file>content/trailemitter.qml</file>
- <file>content/velocityfrommotion.qml</file>
- </qresource>
-</RCC>
diff --git a/basicsuite/qt5-particlesdemo/exclude.txt b/basicsuite/qt5-particlesdemo/exclude.txt
deleted file mode 100644
index 0702cb5..0000000
--- a/basicsuite/qt5-particlesdemo/exclude.txt
+++ /dev/null
@@ -1 +0,0 @@
-all
diff --git a/basicsuite/qt5-particlesdemo/images/_explo.png b/basicsuite/qt5-particlesdemo/images/_explo.png
deleted file mode 100644
index 4297245..0000000
--- a/basicsuite/qt5-particlesdemo/images/_explo.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/backgroundLeaves.jpg b/basicsuite/qt5-particlesdemo/images/backgroundLeaves.jpg
deleted file mode 100755
index 08be167..0000000
--- a/basicsuite/qt5-particlesdemo/images/backgroundLeaves.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/bear_tiles.png b/basicsuite/qt5-particlesdemo/images/bear_tiles.png
deleted file mode 100644
index 6bbb2a9..0000000
--- a/basicsuite/qt5-particlesdemo/images/bear_tiles.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/candle.png b/basicsuite/qt5-particlesdemo/images/candle.png
deleted file mode 100644
index 8fa3193..0000000
--- a/basicsuite/qt5-particlesdemo/images/candle.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/colortable.png b/basicsuite/qt5-particlesdemo/images/colortable.png
deleted file mode 100644
index a62ceeb..0000000
--- a/basicsuite/qt5-particlesdemo/images/colortable.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/finalfrontier.png b/basicsuite/qt5-particlesdemo/images/finalfrontier.png
deleted file mode 100644
index 2ba1815..0000000
--- a/basicsuite/qt5-particlesdemo/images/finalfrontier.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/flower.png b/basicsuite/qt5-particlesdemo/images/flower.png
deleted file mode 100644
index b5c6062..0000000
--- a/basicsuite/qt5-particlesdemo/images/flower.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/matchmask.png b/basicsuite/qt5-particlesdemo/images/matchmask.png
deleted file mode 100644
index e575875..0000000
--- a/basicsuite/qt5-particlesdemo/images/matchmask.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/meteor.png b/basicsuite/qt5-particlesdemo/images/meteor.png
deleted file mode 100644
index e8c368a..0000000
--- a/basicsuite/qt5-particlesdemo/images/meteor.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/meteor_explo.png b/basicsuite/qt5-particlesdemo/images/meteor_explo.png
deleted file mode 100644
index e659bfe..0000000
--- a/basicsuite/qt5-particlesdemo/images/meteor_explo.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/meteors.png b/basicsuite/qt5-particlesdemo/images/meteors.png
deleted file mode 100644
index bada8a1..0000000
--- a/basicsuite/qt5-particlesdemo/images/meteors.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/nullRock.png b/basicsuite/qt5-particlesdemo/images/nullRock.png
deleted file mode 100644
index 4076327..0000000
--- a/basicsuite/qt5-particlesdemo/images/nullRock.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/particle.png b/basicsuite/qt5-particlesdemo/images/particle.png
deleted file mode 100644
index 5c83896..0000000
--- a/basicsuite/qt5-particlesdemo/images/particle.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/particle2.png b/basicsuite/qt5-particlesdemo/images/particle2.png
deleted file mode 100644
index 36349c6..0000000
--- a/basicsuite/qt5-particlesdemo/images/particle2.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/particle3.png b/basicsuite/qt5-particlesdemo/images/particle3.png
deleted file mode 100644
index 905d8f3..0000000
--- a/basicsuite/qt5-particlesdemo/images/particle3.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/particle4.png b/basicsuite/qt5-particlesdemo/images/particle4.png
deleted file mode 100644
index bc95b70..0000000
--- a/basicsuite/qt5-particlesdemo/images/particle4.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/particleA.png b/basicsuite/qt5-particlesdemo/images/particleA.png
deleted file mode 100644
index c63acde..0000000
--- a/basicsuite/qt5-particlesdemo/images/particleA.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/portal_bg.png b/basicsuite/qt5-particlesdemo/images/portal_bg.png
deleted file mode 100644
index 3c59eea..0000000
--- a/basicsuite/qt5-particlesdemo/images/portal_bg.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/realLeaf1.png b/basicsuite/qt5-particlesdemo/images/realLeaf1.png
deleted file mode 100644
index 6cabf29..0000000
--- a/basicsuite/qt5-particlesdemo/images/realLeaf1.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/realLeaf2.png b/basicsuite/qt5-particlesdemo/images/realLeaf2.png
deleted file mode 100644
index bfeca86..0000000
--- a/basicsuite/qt5-particlesdemo/images/realLeaf2.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/realLeaf3.png b/basicsuite/qt5-particlesdemo/images/realLeaf3.png
deleted file mode 100644
index b1071e8..0000000
--- a/basicsuite/qt5-particlesdemo/images/realLeaf3.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/realLeaf4.png b/basicsuite/qt5-particlesdemo/images/realLeaf4.png
deleted file mode 100644
index d61d53d..0000000
--- a/basicsuite/qt5-particlesdemo/images/realLeaf4.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/rocket.png b/basicsuite/qt5-particlesdemo/images/rocket.png
deleted file mode 100644
index a171610..0000000
--- a/basicsuite/qt5-particlesdemo/images/rocket.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/rocket2.png b/basicsuite/qt5-particlesdemo/images/rocket2.png
deleted file mode 100644
index 7110f8f..0000000
--- a/basicsuite/qt5-particlesdemo/images/rocket2.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/sizeInOut.png b/basicsuite/qt5-particlesdemo/images/sizeInOut.png
deleted file mode 100644
index 0a306ea..0000000
--- a/basicsuite/qt5-particlesdemo/images/sizeInOut.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/snowflake.png b/basicsuite/qt5-particlesdemo/images/snowflake.png
deleted file mode 100644
index 490887a..0000000
--- a/basicsuite/qt5-particlesdemo/images/snowflake.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/sparkleSize.png b/basicsuite/qt5-particlesdemo/images/sparkleSize.png
deleted file mode 100644
index 7520565..0000000
--- a/basicsuite/qt5-particlesdemo/images/sparkleSize.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/star.png b/basicsuite/qt5-particlesdemo/images/star.png
deleted file mode 100644
index 0d592cf..0000000
--- a/basicsuite/qt5-particlesdemo/images/star.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/starfish_0.png b/basicsuite/qt5-particlesdemo/images/starfish_0.png
deleted file mode 100644
index 8747f02..0000000
--- a/basicsuite/qt5-particlesdemo/images/starfish_0.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/starfish_1.png b/basicsuite/qt5-particlesdemo/images/starfish_1.png
deleted file mode 100644
index 1f3f159..0000000
--- a/basicsuite/qt5-particlesdemo/images/starfish_1.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/starfish_2.png b/basicsuite/qt5-particlesdemo/images/starfish_2.png
deleted file mode 100644
index c6c7e5a..0000000
--- a/basicsuite/qt5-particlesdemo/images/starfish_2.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/starfish_3.png b/basicsuite/qt5-particlesdemo/images/starfish_3.png
deleted file mode 100644
index 307a89f..0000000
--- a/basicsuite/qt5-particlesdemo/images/starfish_3.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/starfish_4.png b/basicsuite/qt5-particlesdemo/images/starfish_4.png
deleted file mode 100644
index d61c265..0000000
--- a/basicsuite/qt5-particlesdemo/images/starfish_4.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/images/starfish_mask.png b/basicsuite/qt5-particlesdemo/images/starfish_mask.png
deleted file mode 100644
index 2ef74f9..0000000
--- a/basicsuite/qt5-particlesdemo/images/starfish_mask.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/main.cpp b/basicsuite/qt5-particlesdemo/main.cpp
deleted file mode 100644
index 15cb10b..0000000
--- a/basicsuite/qt5-particlesdemo/main.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "../../shared/shared.h"
-DECLARATIVE_EXAMPLE_MAIN(particles/emitters/emitters)
diff --git a/basicsuite/qt5-particlesdemo/main.qml b/basicsuite/qt5-particlesdemo/main.qml
deleted file mode 100644
index d996b7b..0000000
--- a/basicsuite/qt5-particlesdemo/main.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "shared" as Examples
-
-Item {
- height: 480
- width: 320
- Examples.LauncherList {
- id: ll
- anchors.fill: parent
- Component.onCompleted: {
- addExample("Velocity from Motion", "Particle motion just by moving emitters", Qt.resolvedUrl("content/velocityfrommotion.qml"));
- addExample("Burst and Pulse", "Emit imperatively", Qt.resolvedUrl("content/burstandpulse.qml"));
- addExample("Custom Emitter", "Custom starting state", Qt.resolvedUrl("content/customemitter.qml"));
- addExample("Emit Mask", "Emit arbitrary shapes", Qt.resolvedUrl("content/emitmask.qml"));
- addExample("Maximum Emitted", "Put a limit on emissions", Qt.resolvedUrl("content/maximumemitted.qml"));
- addExample("Shape and Direction", "Creates a portal effect", Qt.resolvedUrl("content/shapeanddirection.qml"));
- addExample("TrailEmitter", "Emit from other particles", Qt.resolvedUrl("content/trailemitter.qml"));
- }
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/preview_l.jpg b/basicsuite/qt5-particlesdemo/preview_l.jpg
deleted file mode 100644
index f611937..0000000
--- a/basicsuite/qt5-particlesdemo/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro b/basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro
deleted file mode 100644
index 29afc4f..0000000
--- a/basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-TARGET = qt5-particlesdemo
-
-include(../shared/shared.pri)
-b2qtdemo_deploy_defaults()
-
-content.files = \
- *.qml \
- content \
- images \
- shared
-content.path = $$DESTPATH
-
-OTHER_FILES += $${content.files}
-
-INSTALLS += target content
diff --git a/basicsuite/qt5-particlesdemo/shared/Button.qml b/basicsuite/qt5-particlesdemo/shared/Button.qml
deleted file mode 100644
index 0f85e75..0000000
--- a/basicsuite/qt5-particlesdemo/shared/Button.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: container
-
- property string text: "Button"
- property string subText: ""
- signal clicked
- property alias containsMouse: mouseArea.containsMouse
- property alias pressed: mouseArea.pressed
- implicitHeight: col.height
- height: implicitHeight
- width: buttonLabel.width + 20
-
- MouseArea {
- id: mouseArea
- anchors.fill: parent
- onClicked: container.clicked()
- hoverEnabled: true
- }
-
- Column {
- spacing: 2
- id: col
- anchors.verticalCenter: parent.verticalCenter
- width: parent.width
- Text {
- id: buttonLabel
- anchors.left: parent.left
- anchors.leftMargin: 10
- anchors.right: parent.right
- anchors.rightMargin: 10
- text: container.text
- color: "black"
- font.pixelSize: 22
- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
- styleColor: "white"
- style: Text.Raised
-
- }
- Text {
- id: buttonLabel2
- anchors.left: parent.left
- anchors.leftMargin: 10
- text: container.subText
- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
- color: "#666"
- font.pixelSize: 12
- }
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/shared/LauncherList.qml b/basicsuite/qt5-particlesdemo/shared/LauncherList.qml
deleted file mode 100644
index d18212a..0000000
--- a/basicsuite/qt5-particlesdemo/shared/LauncherList.qml
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-
-Item {
- //model is a list of {"name":"somename", "url":"file:///some/url/mainfile.qml"}
- //function used to add to model A) to enforce scheme B) to allow Qt.resolveUrl in url assignments
-
- function addExample(name, desc, url)
- {
- myModel.append({"name":name, "description":desc, "url":url})
- }
- function hideExample()
- {
- ei.visible = false;
- }
-
- ListView {
- clip: true
- delegate: SimpleLauncherDelegate{exampleItem: ei}
- model: ListModel {id:myModel}
- anchors.fill: parent
- visible: !ei.visible
- }
-
- Item {
- id: ei
- visible: false
- clip: true
- property url exampleUrl
- onExampleUrlChanged: visible = (exampleUrl == '' ? false : true); //Setting exampleUrl automatically shows example
- anchors.fill: parent
- anchors.bottomMargin: 40
- MouseArea{
- anchors.fill: parent
- enabled: ei.visible
- //Eats mouse events
- }
- Loader{
- focus: true
- source: ei.exampleUrl
- anchors.fill: parent
- }
- }
- Rectangle {
- id: bar
- visible: ei.visible
- anchors.bottom: parent.bottom
- width: parent.width
- height: 40
-
- Rectangle {
- height: 1
- color: "#ccc"
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- }
-
- Rectangle {
- height: 1
- color: "#fff"
- anchors.top: parent.top
- anchors.topMargin: 1
- anchors.left: parent.left
- anchors.right: parent.right
- }
-
- gradient: Gradient {
- GradientStop { position: 0 ; color: "#eee" }
- GradientStop { position: 1 ; color: "#ccc" }
- }
-
- MouseArea{
- anchors.fill: parent
- enabled: ei.visible
- //Eats mouse events
- }
-
- Image {
- id: back
- source: "images/back.png"
- anchors.verticalCenter: parent.verticalCenter
- anchors.verticalCenterOffset: 2
- anchors.left: parent.left
- anchors.leftMargin: 16
-
- MouseArea {
- id: mouse
- hoverEnabled: true
- anchors.centerIn: parent
- width: 38
- height: 31
- anchors.verticalCenterOffset: -1
- onClicked: ei.exampleUrl = ""
- Rectangle {
- anchors.fill: parent
- opacity: mouse.pressed ? 1 : 0
- Behavior on opacity { NumberAnimation{ duration: 100 }}
- gradient: Gradient {
- GradientStop { position: 0 ; color: "#22000000" }
- GradientStop { position: 0.2 ; color: "#11000000" }
- }
- border.color: "darkgray"
- antialiasing: true
- radius: 4
- }
- }
- }
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/shared/README b/basicsuite/qt5-particlesdemo/shared/README
deleted file mode 100644
index bf16f23..0000000
--- a/basicsuite/qt5-particlesdemo/shared/README
+++ /dev/null
@@ -1,11 +0,0 @@
-These files are shared between multiple examples as a set of common and
-reusuable components. While they do demonstrate the building of reusable
-components in QML, they are not official examples themselves.
-Consequently they do not have entries in the Qt documentation, and are
-documented only through the code comments within the files. Developers
-new to QML are strongly encouraged to go through the official examples
-before delving into this directory.
-
-For most application use, see the Qt Quick Components project to find
-ready-made Components you can use in your own projects. Qt Declarative
-examples do not use them only to avoid external dependencies.
diff --git a/basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml b/basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml
deleted file mode 100644
index 2e9138b..0000000
--- a/basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-
-Rectangle {
- id: container
- property Item exampleItem
- width: ListView.view.width
- height: button.implicitHeight + 22
-
- gradient: Gradient {
- GradientStop {
- position: 0
- Behavior on color {ColorAnimation { duration: 100 }}
- color: button.pressed ? "#e0e0e0" : "#fff"
- }
- GradientStop {
- position: 1
- Behavior on color {ColorAnimation { duration: 100 }}
- color: button.pressed ? "#e0e0e0" : button.containsMouse ? "#f5f5f5" : "#eee"
- }
- }
-
- Image {
- id: image
- opacity: 0.7
- Behavior on opacity {NumberAnimation {duration: 100}}
- source: "images/next.png"
- anchors.verticalCenter: parent.verticalCenter
- anchors.right: parent.right
- anchors.rightMargin: 16
- }
-
- Button {
- id: button
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.bottom: parent.bottom
- anchors.right:image.left
- text: name
- subText: description
- onClicked: exampleItem.exampleUrl = url;
- }
-
- Rectangle {
- height: 1
- color: "#ccc"
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- }
-}
diff --git a/basicsuite/qt5-particlesdemo/shared/images/back.png b/basicsuite/qt5-particlesdemo/shared/images/back.png
deleted file mode 100644
index 5340209..0000000
--- a/basicsuite/qt5-particlesdemo/shared/images/back.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/shared/images/next.png b/basicsuite/qt5-particlesdemo/shared/images/next.png
deleted file mode 100644
index cdef8db..0000000
--- a/basicsuite/qt5-particlesdemo/shared/images/next.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/shared/qmldir b/basicsuite/qt5-particlesdemo/shared/qmldir
deleted file mode 100644
index 2f1e56a..0000000
--- a/basicsuite/qt5-particlesdemo/shared/qmldir
+++ /dev/null
@@ -1,3 +0,0 @@
-Button 2.0 Button.qml
-LauncherList 2.0 LauncherList.qml
-SimpleLauncherDelegate 2.0 SimpleLauncherDelegate.qml
diff --git a/basicsuite/qt5-particlesdemo/shared/quick_shared.qrc b/basicsuite/qt5-particlesdemo/shared/quick_shared.qrc
deleted file mode 100644
index 9fc114d..0000000
--- a/basicsuite/qt5-particlesdemo/shared/quick_shared.qrc
+++ /dev/null
@@ -1,8 +0,0 @@
-<RCC>
- <qresource prefix="/quick/shared">
- <file>LauncherList.qml</file>
- <file>SimpleLauncherDelegate.qml</file>
- <file>Button.qml</file>
- <file>images/back.png</file>
- </qresource>
-</RCC>
diff --git a/basicsuite/qt5-particlesdemo/shared/shared.h b/basicsuite/qt5-particlesdemo/shared/shared.h
deleted file mode 100644
index 9370758..0000000
--- a/basicsuite/qt5-particlesdemo/shared/shared.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QDir>
-#include <QGuiApplication>
-#include <QQmlEngine>
-#include <QQuickView>
-#define DECLARATIVE_EXAMPLE_MAIN(NAME) int main(int argc, char* argv[]) \
-{\
- QGuiApplication app(argc,argv);\
- QQuickView view;\
- view.connect(view.engine(), SIGNAL(quit()), &app, SLOT(quit()));\
- view.setSource(QUrl("qrc:///" #NAME ".qml")); \
- if (QGuiApplication::platformName() == QLatin1String("qnx") || \
- QGuiApplication::platformName() == QLatin1String("eglfs")) {\
- view.setResizeMode(QQuickView::SizeRootObjectToView);\
- view.showFullScreen();\
- } else {\
- view.show();\
- }\
- return app.exec();\
-}
diff --git a/basicsuite/qt5-particlesdemo/shared/shared.qrc b/basicsuite/qt5-particlesdemo/shared/shared.qrc
deleted file mode 100644
index 4ac856e..0000000
--- a/basicsuite/qt5-particlesdemo/shared/shared.qrc
+++ /dev/null
@@ -1,8 +0,0 @@
-<RCC>
- <qresource prefix="/shared">
- <file>LauncherList.qml</file>
- <file>SimpleLauncherDelegate.qml</file>
- <file>Button.qml</file>
- <file>images/back.png</file>
- </qresource>
-</RCC>
diff --git a/basicsuite/qt5-particlesdemo/title.txt b/basicsuite/qt5-particlesdemo/title.txt
deleted file mode 100644
index 1db7719..0000000
--- a/basicsuite/qt5-particlesdemo/title.txt
+++ /dev/null
@@ -1 +0,0 @@
-998. Qt5 Particles Demo
diff --git a/basicsuite/sensorexplorer/app.pro b/basicsuite/sensorexplorer/app.pro
deleted file mode 100644
index bc968c2..0000000
--- a/basicsuite/sensorexplorer/app.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-TARGET = sensorexplorer
-
-include(../shared/shared.pri)
-b2qtdemo_deploy_defaults()
-
-content.files = *.qml
-content.path = $$DESTPATH
-
-OTHER_FILES += $${content.files}
-
-INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/sensorexplorer/description.txt b/basicsuite/sensorexplorer/description.txt
deleted file mode 100644
index 606dc9b..0000000
--- a/basicsuite/sensorexplorer/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-This example provides a list of all available sensors installed on the system for which Qt has a backend. Start a sensor to see how values change depending from environment and user-device interaction.
diff --git a/basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc b/basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc
deleted file mode 100644
index 25aa34f..0000000
--- a/basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: http://www.gnu.org/copyleft/fdl.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \example sensorexplorer
- \title Sensor Explorer
- \brief The Sensor Explorer example demonstrates how to read the meta-data of available sensors.
- \ingroup b2qt-demos
-
- \image b2qt-demo-sensorexplorer.jpg
-
- This example provides a list of all available sensors installed on the system for which Qt has
- a backend. Start a sensor to see how values change depending from environment and user-device
- interaction.
-
- This example is divided into two parts:
-
- \list
- \li A C++ plug-in that provides QML alternatives for QSensorExplorer, QPropertyInfo and the QSensorItem classes.
- \li A QML Application that uses the QML alternatives to read the sensors meta-data and present it.
- \endlist
-
-
- This is a pure QML application that can be run from Qt Creator or directly using the
- \c qmlscene binary. You should install the other C++ plug-in before trying to run
- this example, otherwise it will not find its dependencies.
-
- \code
- qmlscene main.qml
- \endcode
-
- To write a QML application that will use the Explorer QML type you need to do the following steps:
-
- Import the Explorer 1.0 declarative plugin:
-
- \snippet sensorexplorer/main.qml 0
-
- Create a SensorExplorer QML item:
-
- \snippet sensorexplorer/main.qml 1
-
- You can retrieve a list of all available sensors using the SensorExplorer:
-
- \snippet sensorexplorer/main.qml 2
-
- To retrieve the properties of a SensorItem use:
-
- \snippet sensorexplorer/main.qml 3
-
- Changing a property value can be done like:
-
- \snippet sensorexplorer/main.qml 4
-
- Starting and stopping a sensor can be done like:
-
- \snippet sensorexplorer/main.qml 5
-*/
-
diff --git a/basicsuite/sensorexplorer/exclude.txt b/basicsuite/sensorexplorer/exclude.txt
deleted file mode 100644
index 0702cb5..0000000
--- a/basicsuite/sensorexplorer/exclude.txt
+++ /dev/null
@@ -1 +0,0 @@
-all
diff --git a/basicsuite/sensorexplorer/imports/explorer.cpp b/basicsuite/sensorexplorer/imports/explorer.cpp
deleted file mode 100644
index 5ca644f..0000000
--- a/basicsuite/sensorexplorer/imports/explorer.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "explorer.h"
-#include <QtCore/QDebug>
-#include <qsensor.h>
-#include <QMetaObject>
-#include <QMetaProperty>
-
-QT_BEGIN_NAMESPACE
-
-/*
- \class QSensorExplorer
- \brief The QSensorExplorer type provides an easy access for reading all avalaible sensors installed on the system.
-*/
-
-/*
- Construct a QSensorExplorer object with parent \a parent
-*/
-QSensorExplorer::QSensorExplorer(QObject* parent)
- : QObject(parent)
- , _selectedSensorItem(0)
-{
- loadSensors();
-}
-
-/*
- Destructor of a QSensorExplorer
-*/
-QSensorExplorer::~QSensorExplorer()
-{
-}
-
-/*
- Load all available sensors and store it in a list.
-*/
-void QSensorExplorer::loadSensors()
-{
- _availableSensors.clear();
- foreach (const QByteArray &type, QSensor::sensorTypes()) {
- foreach (const QByteArray &identifier, QSensor::sensorsForType(type)) {
- // Don't put in sensors we can't connect to
- QSensor* sensor = new QSensor(type, this);
- //sensor->setIdentifier(identifier);
- if (!sensor->connectToBackend()) {
- qWarning() << "Couldn't connect to" << sensor->description();
- continue;
- }
- _availableSensors.append(new QSensorItem(sensor, this));
- }
- }
- emit availableSensorsChanged();
-}
-
-/*
- \fn QSensorExplorer::availableSensorsChanged()
- Notifies the client if the list of the available sensors was changed
-*/
-
-/*
- \property QSensorExplorer::availableSensors
- Returns a list of all available sensor.
-*/
-QQmlListProperty<QSensorItem> QSensorExplorer::availableSensors()
-{
- return QQmlListProperty<QSensorItem>(this,_availableSensors);
-}
-
-/*
- \fn QSensorExplorer::selectedSensorItemChanged()
- Notifies the client if the selected sensor has been changed
-*/
-
-/*
- \property QSensorExplorer::selectedSensorItem
- Returns the current selected sensor item.
-*/
-QSensorItem* QSensorExplorer::selectedSensorItem()
-{
- return _selectedSensorItem;
-}
-
-/*
- \fn QSensorExplorer::setSelectedSensorItem(QSensorItem* selitem)
- Sets the QSensorItem \a selitem as the current selected QSensorItem.
-*/
-void QSensorExplorer::setSelectedSensorItem(QSensorItem* selitem)
-{
- if (selitem && _selectedSensorItem != selitem) {
- if (_selectedSensorItem)
- _selectedSensorItem->unSelect();
- _selectedSensorItem = selitem;
- _selectedSensorItem->select();
- emit selectedSensorItemChanged();
- }
-}
-
-QT_END_NAMESPACE
diff --git a/basicsuite/sensorexplorer/imports/explorer.h b/basicsuite/sensorexplorer/imports/explorer.h
deleted file mode 100644
index 1eee6c0..0000000
--- a/basicsuite/sensorexplorer/imports/explorer.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSEONSOREXPLORER_H
-#define QSEONSOREXPLORER_H
-
-#include <QtQml/QtQml>
-#include <QtQml/QQmlListProperty>
-#include "sensoritem.h"
-
-QT_BEGIN_NAMESPACE
-
-class QSensorExplorer : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQmlListProperty<QSensorItem> availableSensors READ availableSensors NOTIFY availableSensorsChanged)
- Q_PROPERTY(QSensorItem* selectedSensorItem READ selectedSensorItem WRITE setSelectedSensorItem NOTIFY selectedSensorItemChanged)
-public:
- QSensorExplorer(QObject* parent = 0);
- virtual ~QSensorExplorer();
-
-private:
- QQmlListProperty<QSensorItem> availableSensors();
- void loadSensors();
- void setSelectedSensorItem(QSensorItem* selitem);
- QSensorItem* selectedSensorItem();
-
-Q_SIGNALS:
- void availableSensorsChanged();
- void selectedSensorItemChanged();
-
-private:
- QList<QSensorItem*> _availableSensors;
- QSensorItem* _selectedSensorItem;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QSensorExplorer)
-
-#endif // QSEONSOREXPLORER_H
diff --git a/basicsuite/sensorexplorer/imports/imports.pro b/basicsuite/sensorexplorer/imports/imports.pro
deleted file mode 100644
index 41a5f18..0000000
--- a/basicsuite/sensorexplorer/imports/imports.pro
+++ /dev/null
@@ -1,24 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-
-TARGET = sensorexplorer
-
-QT += qml sensors
-
-SOURCES = main.cpp \
- explorer.cpp \
- sensoritem.cpp \
- propertyinfo.cpp \
-
-HEADERS = explorer.h \
- sensoritem.h \
- propertyinfo.h \
-
-pluginfiles.files += \
- qmldir \
-
-B2QT_DEPLOYPATH = /data/user/qt/qmlplugins/Explorer
-target.path += $$B2QT_DEPLOYPATH
-pluginfiles.path += $$B2QT_DEPLOYPATH
-
-INSTALLS += target pluginfiles
diff --git a/basicsuite/sensorexplorer/imports/main.cpp b/basicsuite/sensorexplorer/imports/main.cpp
deleted file mode 100644
index 106ca93..0000000
--- a/basicsuite/sensorexplorer/imports/main.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/QQmlExtensionPlugin>
-#include <QtQml/QtQml>
-#include "explorer.h"
-
-QT_BEGIN_NAMESPACE
-
-class SensorExplorerDeclarativeModule : public QQmlExtensionPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface" FILE "plugin.json")
-public:
- virtual void registerTypes(const char *uri)
- {
- Q_ASSERT(QLatin1String(uri) == QLatin1String("Explorer"));
- qmlRegisterType<QSensorExplorer>(uri, 1, 0, "SensorExplorer");
- qmlRegisterType<QSensorItem>(uri, 1, 0, "SensorItem");
- qmlRegisterType<QPropertyInfo>(uri, 1, 0, "PropertyInfo");
- }
-};
-
-QT_END_NAMESPACE
-
-#include "main.moc"
diff --git a/basicsuite/sensorexplorer/imports/plugin.json b/basicsuite/sensorexplorer/imports/plugin.json
deleted file mode 100644
index 0967ef4..0000000
--- a/basicsuite/sensorexplorer/imports/plugin.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/basicsuite/sensorexplorer/imports/propertyinfo.cpp b/basicsuite/sensorexplorer/imports/propertyinfo.cpp
deleted file mode 100644
index b8af5c5..0000000
--- a/basicsuite/sensorexplorer/imports/propertyinfo.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "sensoritem.h"
-#include <QtCore/QDebug>
-#include <QtSensors>
-
-QT_BEGIN_NAMESPACE
-
-/*
- \class QPropertyInfo
- \brief The QPropertyInfo type provides an easy access for reading and writing the property values.
-*/
-
-/*
- Construct a QPropertyInfo object with parent \a parent
-*/
-QPropertyInfo::QPropertyInfo(QObject* parent)
- : QObject(parent)
- , _index(0)
- , _isWriteable(false)
- , _name("")
- , _typeName("")
- , _value("")
-{}
-
-/*
- Construct a QPropertyInfo object with parent \a parent, property name \a name, property index \a index,
- property write access \a writeable, property type \a typeName and property value \a value
-*/
-QPropertyInfo::QPropertyInfo(const QString& name, int index, bool writeable, const QString& typeName, const QString& value, QObject* parent)
- : QObject(parent)
- , _index(index)
- , _isWriteable(writeable)
- , _name(name)
- , _typeName(typeName)
- , _value(value)
-{}
-
-/*
- \property QPropertyInfo::name
- Returns the name of the property
-*/
-QString QPropertyInfo::name()
-{
- return _name;
-}
-
-/*
- \property QPropertyInfo::typeName
- Returns the type of the property
-*/
-QString QPropertyInfo::typeName()
-{
- return _typeName;
-}
-
-/*
- \property QPropertyInfo::value
- Returns the current value of the property
-*/
-QString QPropertyInfo::value()
-{
- return _value;
-}
-
-/*
- \fn void QPropertyInfo::valueChanged()
- Signal that notifies the client if the property value was changed.
-*/
-
-/*
- \fn QPropertyInfo::setValue(const QString& value)
- Sets the value \a value of the property
-*/
-void QPropertyInfo::setValue(const QString& value)
-{
- if (value != _value){
- _value = value;
- emit valueChanged();
- }
-}
-
-/*
- \fn QPropertyInfo::index()
- Returns the meta-data index of the property
-*/
-int QPropertyInfo::index()
-{
- return _index;
-}
-
-/*
- \property QPropertyInfo::isWriteable
- Returns true if the property is writeable false if property is read only
-*/
-bool QPropertyInfo::isWriteable()
-{
- return _isWriteable;
-}
-
-QT_END_NAMESPACE
diff --git a/basicsuite/sensorexplorer/imports/propertyinfo.h b/basicsuite/sensorexplorer/imports/propertyinfo.h
deleted file mode 100644
index 9bcd07e..0000000
--- a/basicsuite/sensorexplorer/imports/propertyinfo.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPROPERTYINFO_H
-#define QPROPERTYINFO_H
-
-#include <QtQml/QtQml>
-#include <QtCore/QString>
-
-QT_BEGIN_NAMESPACE
-
-class QPropertyInfo : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString name READ name CONSTANT)
- Q_PROPERTY(QString typeName READ typeName CONSTANT)
- Q_PROPERTY(QString value READ value NOTIFY valueChanged)
- Q_PROPERTY(bool isWriteable READ isWriteable CONSTANT)
-
-public:
- QPropertyInfo(QObject* parent = 0);
- QPropertyInfo(const QString& name, int index, bool writeable, const QString& typeName, const QString& value, QObject* parent=0);
- QString name();
- QString typeName();
- QString value();
- void setValue(const QString& value);
- int index();
- bool isWriteable();
-
-Q_SIGNALS:
- void valueChanged();
-
-private:
- int _index;
- bool _isWriteable;
- QString _name;
- QString _typeName;
- QString _value;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QPropertyInfo)
-
-#endif // QPROPERTYINFO_H
diff --git a/basicsuite/sensorexplorer/imports/qmldir b/basicsuite/sensorexplorer/imports/qmldir
deleted file mode 100644
index ad67d81..0000000
--- a/basicsuite/sensorexplorer/imports/qmldir
+++ /dev/null
@@ -1,2 +0,0 @@
-module Explorer
-plugin sensorexplorer
diff --git a/basicsuite/sensorexplorer/imports/sensoritem.cpp b/basicsuite/sensorexplorer/imports/sensoritem.cpp
deleted file mode 100644
index ec8eb06..0000000
--- a/basicsuite/sensorexplorer/imports/sensoritem.cpp
+++ /dev/null
@@ -1,322 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "sensoritem.h"
-#include <QtCore/QDebug>
-#include <QtSensors>
-
-QT_BEGIN_NAMESPACE
-
-/*
- \class QSensorItem
- \brief The QSensorItem type provides information about the meta-data from a sensors installed on the system.
-*/
-
-/*
- Construct a QSensorItem object with parent \a parent
-*/
-QSensorItem::QSensorItem(QObject* parent)
- : QObject(parent)
- , _qsensor(0)
-{
-}
-
-/*
- Construct a QSensorItem object with QSensor \a sensor and parent \a parent
-*/
-QSensorItem::QSensorItem(QSensor* sensor, QObject* parent)
- : QObject(parent)
- , _qsensor(sensor)
-{
-}
-
-/*
- Destructor of a QSensorItem
-*/
-QSensorItem::~QSensorItem()
-{
-}
-
-/*
- \fn QSensorItem::startChanged()
- Notifies the client if the sensors has changed its start active status
-*/
-
-/*
- \property QSensorItem::start
- This property starts or stops the sensor
-*/
-bool QSensorItem::start()
-{
- return (_qsensor ? _qsensor->isActive() : false);
-}
-
-void QSensorItem::setStart(bool run)
-{
- if (_qsensor)
- _qsensor->setActive(run);
-}
-
-/*
- \property QSensorItem::id
- Returns the sensor id of the sensor item
-*/
-QString QSensorItem::id()
-{
- return (_qsensor ? (!_qsensor->description().isEmpty() ? _qsensor->description() : _qsensor->identifier()) : "");
-}
-
-/*
- Set the new value \a val to the QPropertyInfo object \a property
-*/
-void QSensorItem::changePropertyValue(QPropertyInfo* property, const QString& val)
-{
- if (_qsensor && _sensorProperties.contains(property)){
- if ( _qsensor->setProperty(property->name().toLatin1().constData(), QVariant(val)))
- updateSensorPropertyValues();
- else
- qWarning() << "new property value couldn't be set";
- }
-}
-
-/*
- Reading the meta-data and activates the sensor.
-*/
-void QSensorItem::select()
-{
- if (_sensorProperties.isEmpty()) {
- // Probe the reading using Qt's meta-object facilities
- //Read properties from reader
- QSensorReading *reading = _qsensor->reading();
- const QMetaObject *mo = reading->metaObject();
- int firstProperty = QSensorReading::staticMetaObject.propertyOffset();
-
- for (int i = firstProperty; i < mo->propertyCount(); ++i) {
- QString typeName = QLatin1String(mo->property(i).typeName());
- int crap = typeName.lastIndexOf("::");
- if (crap != -1)
- typeName = typeName.mid(crap + 2);
-
- QPropertyInfo* pi = new QPropertyInfo(mo->property(i).name()
- , i
- , isWriteable(mo->property(i).name())
- , typeName
- , "-"
- , this);
- _readerProperties.append(pi);
- }
-
- //Read properties from sensor
- const QMetaObject *mo1 = _qsensor->metaObject();
- firstProperty = QSensorReading::staticMetaObject.propertyOffset();
-
- for (int i = firstProperty; i < mo1->propertyCount(); ++i) {
- QString propertyname = mo1->property(i).name();
- if (ignoreProperty(propertyname))
- continue;
-
- QString typeName = QLatin1String(mo1->property(i).typeName());
- int crap = typeName.lastIndexOf("::");
- if (crap != -1)
- typeName = typeName.mid(crap + 2);
-
- QPropertyInfo* pi = new QPropertyInfo(propertyname
- , i
- , isWriteable(propertyname)
- , typeName
- , "-"
- , this);
- _sensorProperties.append(pi);
- }
- updateSensorPropertyValues();
- connect(_qsensor, SIGNAL(readingChanged()), this, SLOT(sensorReadingChanged()));
- }
- connect(_qsensor, SIGNAL(activeChanged()), SIGNAL(startChanged()));
-}
-
-/*
- Unselect the sensor by stopping the sensor.
-*/
-void QSensorItem::unSelect()
-{
- _qsensor->stop();
- disconnect(_qsensor, SIGNAL(activeChanged()), this , SIGNAL(startChanged()));
-}
-
-/*
- Updates the property values from QSensor
-*/
-void QSensorItem::updateSensorPropertyValues()
-{
- if (_qsensor){
- const QMetaObject *mo = _qsensor->metaObject();
- for (int i = 0; i < _sensorProperties.count(); i++){
- QVariant val = mo->property(_sensorProperties[i]->index()).read(_qsensor);
- _sensorProperties[i]->setValue(convertValue(_sensorProperties[i]->typeName(), val));
- }
- }
-}
-
-/*
- \fn QSensorItem::propertiesChanged()
- Notifies the client if the list of the properties was changed
-*/
-
-/*
- Updates the property values from the QSensorReader
-*/
-void QSensorItem::sensorReadingChanged()
-{
- QSensorReading *reading = _qsensor->reading();
- const QMetaObject *mo = reading->metaObject();
- for (int i = 0; i < _readerProperties.count(); i++){
- QVariant val = mo->property(_readerProperties[i]->index()).read(reading);
- _readerProperties[i]->setValue(convertValue(_readerProperties[i]->typeName(), val));
- }
-}
-
-/*
- Returns true if the property with the name \a propertyname should be ignored
-*/
-bool QSensorItem::ignoreProperty(const QString& propertyname)
-{
- if (propertyname == "reading" ||
- propertyname == "active" ||
- propertyname == "identifier" ||
- propertyname == "connectedToBackend" ||
- propertyname == "busy")
- return true;
-
- return false;
-}
-
-/*
- Returns true if the property with the name \a propertyname is writeable
-*/
-bool QSensorItem::isWriteable(const QString& propertyname)
-{
- if (_qsensor){
- const QMetaObject *mo = _qsensor->metaObject();
- int propertyindex = mo->indexOfProperty(propertyname.toLocal8Bit().constData());
- if (propertyindex >= 0){
- QMetaProperty prop = mo->property(propertyindex);
- return prop.isWritable();
- }
- else {
- QSensorReading *reading = _qsensor->reading();
- const QMetaObject *moreader = reading->metaObject();
- propertyindex = moreader->indexOfProperty(propertyname.toLocal8Bit().constData());
- if (propertyindex >= 0){
- QMetaProperty prop = mo->property(propertyindex);
- return prop.isWritable();
- }
- }
- }
-
- return false;
-}
-
-/*
- Convert the variant \a val dependent on the type \a type and returns the converted value as a QString
-*/
-QString QSensorItem::convertValue(const QString& type, const QVariant& val)
-{
- if (type == "LightLevel"){
- switch (val.toInt()) {
- case 1: return "Dark";
- case 2: return "Twilight";
- case 3: return "Light";
- case 4: return "Bright";
- case 5: return "Sunny";
- default: return "Undefined";
- }
- }
- else if (type == "Orientation"){
- switch (val.toInt()) {
- case 1: return "TopUp";
- case 2: return "TopDown";
- case 3: return "LeftUp";
- case 4: return "RightUp";
- case 5: return "FaceUp";
- case 6: return "FaceDown";
- default: return "Undefined";
- }
- }
- else if (type == "qrangelist"){
- qrangelist rangelist = val.value<qrangelist>();
- QStringList ranges;
- foreach (const qrange &r, rangelist) {
- if (r.first == r.second)
- ranges << QString("%1 Hz").arg(r.first);
- else
- ranges << QString("%1-%2 Hz").arg(r.first).arg(r.second);
- }
- if (ranges.count() > 0)
- return ranges.join(", ");
- return "-";
- }
- else if (type == "qoutputrangelist") {
- qoutputrangelist rangelist = val.value<qoutputrangelist>();
- QStringList ranges;
- foreach (const qoutputrange &r, rangelist) {
- ranges << QString("(%1, %2) += %3").arg(r.minimum).arg(r.maximum).arg(r.accuracy);
- }
- if (ranges.count() > 0)
- return ranges.join(", ");
- return "-";
- }
-
- return val.toString();
-}
-
-/*
- \property QSensorItem::properties
- Returns a list of all properties from the sensor
-*/
-QQmlListProperty<QPropertyInfo> QSensorItem::properties()
-{
- _properties.clear();
- _properties.append(_sensorProperties);
- _properties.append(_readerProperties);
- return QQmlListProperty<QPropertyInfo> (this, _properties);
-}
-
-QT_END_NAMESPACE
diff --git a/basicsuite/sensorexplorer/imports/sensoritem.h b/basicsuite/sensorexplorer/imports/sensoritem.h
deleted file mode 100644
index a78af9d..0000000
--- a/basicsuite/sensorexplorer/imports/sensoritem.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSENSORITEM_H
-#define QSENSORITEM_H
-
-#include <QtQml/QtQml>
-#include <QtCore/QString>
-#include "propertyinfo.h"
-
-QT_BEGIN_NAMESPACE
-
-class QSensor;
-class QSensorItem : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(bool start READ start WRITE setStart NOTIFY startChanged)
- Q_PROPERTY(QString id READ id CONSTANT)
- Q_PROPERTY(QQmlListProperty<QPropertyInfo> properties READ properties NOTIFY propertiesChanged)
-public:
- QSensorItem(QObject* parent = 0);
- QSensorItem(QSensor* sensor, QObject* parent = 0);
- virtual ~QSensorItem();
-
-public slots:
- void select();
- void unSelect();
- void changePropertyValue(QPropertyInfo* property, const QString& val);
-
-private slots:
- void sensorReadingChanged();
-
-private:
- QString id();
- bool start();
- void setStart(bool run);
- QQmlListProperty<QPropertyInfo> properties();
- QString convertValue(const QString& type, const QVariant& val);
- bool isWriteable(const QString& propertyname);
- bool ignoreProperty(const QString& propertyname);
- void updateSensorPropertyValues();
-
-Q_SIGNALS:
- void propertiesChanged();
- void startChanged();
-
-private:
- QSensor* _qsensor;
- QList<QPropertyInfo*> _properties;
- QList<QPropertyInfo*> _readerProperties;
- QList<QPropertyInfo*> _sensorProperties;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QSensorItem)
-
-#endif // QSENSORITEM_H
diff --git a/basicsuite/sensorexplorer/main.qml b/basicsuite/sensorexplorer/main.qml
deleted file mode 100644
index 2a58709..0000000
--- a/basicsuite/sensorexplorer/main.qml
+++ /dev/null
@@ -1,224 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Controls 1.0
-import QtSensors 5.0
-
-//! [0]
-import Explorer 1.0
-//! [0]
-
-Item {
- id: root
- width: 800
- height: 1280
-
- Rectangle {
- id: main
- width: root.width
- height: root.height
- anchors.centerIn: parent
-
- //! [1]
- SensorExplorer {
- id: explorer
- }
- //! [1]
-
- Column {
- anchors.fill: parent
- anchors.margins: 8
- spacing: 8
-
- GroupBox {
- id: topBox
- title: qsTr("Available Sensors")
- width: parent.width
- height: main.height * 0.4
-
- TableView {
- id: sensorList
- width: parent.width
- height: parent.height * 0.80
- anchors.top: parent.top
- anchors.topMargin: 22
- //! [2]
- model: explorer.availableSensors
- //! [2]
-
- TableViewColumn { role: "id"; title: qsTr("ID"); width: main.width * 0.7 }
- TableViewColumn { role: "start"; title: qsTr("Running"); width: main.width * 0.15 }
-
- onClicked: {
- explorer.selectedSensorItem = explorer.availableSensors[row]
- //! [3]
- propertyList.model = explorer.selectedSensorItem.properties
- //! [3]
- button.update()
- }
- }
-
- Button {
- id: button
- anchors.top: sensorList.bottom
- anchors.right: parent.right
- anchors.topMargin: 8
- text: qsTr("Start")
- enabled: explorer.selectedSensorItem !== null
-
- function update() {
- text = (explorer.selectedSensorItem !== null ?
- (explorer.selectedSensorItem.start === true ?
- qsTr("Stop") : qsTr("Start")) : qsTr("Start"))
- }
-
- onClicked: {
- if (explorer.selectedSensorItem !== null) {
- //! [5]
- if (text === "Start") {
- explorer.selectedSensorItem.start = true;
- text = "Stop";
- }
- else {
- explorer.selectedSensorItem.start = false;
- text = "Start";
- }
- //! [5]
- }
- }
- }
-
- }
-
- GroupBox {
- title: qsTr("Properties")
- width: parent.width
- height: main.height - topBox.height - 30
- enabled: explorer.selectedSensorItem != null
-
- TableView {
- id: propertyList
- property PropertyInfo selectedItem: null
-
- anchors.fill: parent
- anchors.topMargin: 22
-
- TableViewColumn { role: "name"; title: qsTr("Name"); width: 140 }
- TableViewColumn { role: "value"; title: qsTr("Value"); width: 140 }
-
- onClicked: {
- selectedItem = model[row]
- }
-
- itemDelegate: {
- if (selectedItem && selectedItem.isWriteable)
- return editableDelegate;
- return readOnlyDelegate;
- }
-
- Component {
- id: readOnlyDelegate
- Item {
- Text {
- width: parent.width
- anchors.margins: 4
- anchors.left: parent.left
- anchors.verticalCenter: parent.verticalCenter
- elide: styleData.elideMode
- text: styleData.value
- color: propertyList.model[styleData.row].isWriteable ?
- styleData.textColor : Qt.lighter(styleData.textColor)
- }
- }
- }
-
- Component {
- id: editableDelegate
- Item {
- Text {
- width: parent.width
- anchors.margins: 4
- anchors.left: parent.left
- anchors.verticalCenter: parent.verticalCenter
- elide: styleData.elideMode
- text: styleData.value
- color: styleData.textColor
- visible: !styleData.selected || styleData.column === 0
- }
- Loader { // Initialize text editor lazily to improve performance
- id: loaderEditor
- anchors.margins: 4
- anchors.left: parent.left
- anchors.verticalCenter: parent.verticalCenter
- Connections {
- target: loaderEditor.item
- onAccepted: {
- //! [4]
- explorer.selectedSensorItem.changePropertyValue(propertyList.selectedItem, loaderEditor.item.text);
- //! [4]
- }
- }
-
- // Load the editor for selected 'Value' cell
- sourceComponent: (styleData.selected && styleData.column === 1) ? editor : null
-
- Component {
- id: editor
- TextInput { // ### TODO - this needs to utilize a virtual keyboard
- id: textinput
- color: styleData.textColor
- text: styleData.value
- MouseArea {
- id: mouseArea
- anchors.fill: parent
- hoverEnabled: true
- onClicked: textinput.forceActiveFocus()
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/sensorexplorer/preview_l.jpg b/basicsuite/sensorexplorer/preview_l.jpg
deleted file mode 100644
index 59809ea..0000000
--- a/basicsuite/sensorexplorer/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/sensorexplorer/sensorexplorer.pro b/basicsuite/sensorexplorer/sensorexplorer.pro
deleted file mode 100644
index 22ef5b8..0000000
--- a/basicsuite/sensorexplorer/sensorexplorer.pro
+++ /dev/null
@@ -1,6 +0,0 @@
-TEMPLATE = subdirs
-CONFIG += ordered
-SUBDIRS += \
- imports \
- app.pro
-
diff --git a/basicsuite/sensorexplorer/title.txt b/basicsuite/sensorexplorer/title.txt
deleted file mode 100644
index 64de850..0000000
--- a/basicsuite/sensorexplorer/title.txt
+++ /dev/null
@@ -1 +0,0 @@
-999. Sensor Explorer
diff --git a/basicsuite/sensors/1.png b/basicsuite/sensors/1.png
deleted file mode 100644
index 8dd146b..0000000
--- a/basicsuite/sensors/1.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/sensors/2.png b/basicsuite/sensors/2.png
deleted file mode 100644
index 362abaf..0000000
--- a/basicsuite/sensors/2.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/sensors/3.png b/basicsuite/sensors/3.png
deleted file mode 100644
index c8d3f8c..0000000
--- a/basicsuite/sensors/3.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/sensors/Accelbubble.qml b/basicsuite/sensors/Accelbubble.qml
deleted file mode 100644
index cff693b..0000000
--- a/basicsuite/sensors/Accelbubble.qml
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: For any questions to Digia, please use the contact form at
-** http://www.qt.io
-**
-** This file is part of the examples of the Qt Enterprise Embedded.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-import QtSensors 5.0
-
-Rectangle {
- id: area
- color: "lightblue"
- border.width: 1
- border.color: "darkblue"
- property real velocityX: 0
- property real velocityY: 0
-
- // Calculate effective rotation
- function getRotation() {
- var rot = rotation
- var newParent = parent
-
- while (newParent) {
- rot += newParent.rotation
- newParent = newParent.parent
- }
- return rot%360
- }
-
- function updatePosition() {
- var actualRotation = getRotation();
-
- // Transform accelerometer readings according
- // to actual rotation of item
- if (actualRotation == 0) {
- velocityX -= accel.reading.x
- velocityY += accel.reading.y
- } else if (actualRotation == 90 || actualRotation == -270) {
- velocityX += accel.reading.y
- velocityY += accel.reading.x
- } else if (actualRotation == 180 || actualRotation == -180) {
- velocityX += accel.reading.x
- velocityY -= accel.reading.y
- } else if (actualRotation == 270 || actualRotation == -90) {
- velocityX -= accel.reading.y
- velocityY -= accel.reading.x
- } else {
- console.debug("The screen rotation of the device has to be a multiple of 90 degrees.")
- }
-
- velocityX *= 0.95
- velocityY *= 0.95
-
- var newX = bubble.x + velocityX
- var newY = bubble.y + velocityY
- var right = area.width - bubble.width
- var bottom = area.height - bubble.height
-
- if (newX < 0) {
- newX = 0
- velocityX = -velocityX * 0.9
- }
- if (newY < 0) {
- newY = 0
- velocityY = -velocityY * 0.9
- }
-
- if (newX > right) {
- newX = right
- velocityX = -velocityX * 0.9
- }
- if (newY > bottom) {
- newY = bottom
- velocityY = -velocityY * 0.9
- }
-
- bubble.x = newX
- bubble.y = newY
- }
-
- Accelerometer {
- id: accel
- active:true
- }
-
- Component.onCompleted: timer.running = true
-
- Timer {
- id: timer
- interval: 16
- running: false
- repeat: true
- onTriggered: updatePosition()
- }
-
- Image {
- id: bubble
- source: "bluebubble.png"
- smooth: true
- x: parent.width/2 - bubble.width/2
- y: parent.height/2 - bubble.height/2
- }
-}
diff --git a/basicsuite/sensors/Light.qml b/basicsuite/sensors/Light.qml
deleted file mode 100644
index c92dabc..0000000
--- a/basicsuite/sensors/Light.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: For any questions to Digia, please use the contact form at
-** http://www.qt.io
-**
-** This file is part of the examples of the Qt Enterprise Embedded.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-import QtSensors 5.0
-
-Rectangle {
- id: bg
- Image {
- id: avatar
- width: parent.width * 0.9
- height: parent.height * 0.9
- fillMode: Image.PreserveAspectFit
- anchors.centerIn: parent
- }
- Text {
- id: illuminanceLevel
- font.pointSize: 20
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 60
- }
-
- AmbientLightSensor {
- active: true
- onReadingChanged: {
- if (reading.lightLevel === AmbientLightReading.Dark) {
- avatar.source = "3.png"
- bg.color = "#1947A3"
- } else if (reading.lightLevel === AmbientLightReading.Twilight
- || reading.lightLevel === AmbientLightReading.Light) {
- avatar.source = "2.png"
- bg.color = "steelblue"
- } else if (reading.lightLevel === AmbientLightReading.Bright
- || reading.lightLevel === AmbientLightReading.Sunny) {
- avatar.source = "1.png"
- bg.color = "#FFFF75"
- } else {
- avatar.text = "Unknown light level"
- }
- }
- }
-
- LightSensor {
- active: true
- onReadingChanged: {
- illuminanceLevel.text = "Illuminance: " + reading.illuminance.toFixed(2);
- }
- }
-}
diff --git a/basicsuite/sensors/bluebubble.png b/basicsuite/sensors/bluebubble.png
deleted file mode 100644
index f96126e..0000000
--- a/basicsuite/sensors/bluebubble.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/sensors/description.txt b/basicsuite/sensors/description.txt
deleted file mode 100644
index e306066..0000000
--- a/basicsuite/sensors/description.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Demonstrates using the accelerometer and light sensors in a QML application.
-
-Tilting the device moves the bubble around, based on readings from the accelerometer sensor. For the light sensor, exposing the device to different lighting conditions changes the displayed image.
diff --git a/basicsuite/sensors/exclude.txt b/basicsuite/sensors/exclude.txt
deleted file mode 100644
index 3945bcb..0000000
--- a/basicsuite/sensors/exclude.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-all
-
diff --git a/basicsuite/sensors/main.qml b/basicsuite/sensors/main.qml
deleted file mode 100644
index 71af99d..0000000
--- a/basicsuite/sensors/main.qml
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: For any questions to Digia, please use the contact form at
-** http://www.qt.io
-**
-** This file is part of the examples of the Qt Enterprise Embedded.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-import QtSensors 5.0
-import QtSensors 5.0 as Sensors
-
-Rectangle {
- id: root
- anchors.fill: parent
-
- Component {
- id: sensorExample
- Rectangle {
- id: main
- width: root.width
- height: root.height
- anchors.centerIn: parent
- color: "blue"
- border.width: 1
- Accelbubble {
- id: bubble
- width: parent.width / 2
- height: parent.height
- }
- Light {
- anchors.left: bubble.right
- width: parent.width / 2
- height: parent.height
- }
-
- }
- }
-
- Component {
- id: message
- Rectangle {
- width: root.width
- height: root.height
- color: "black"
- Text {
- font.pixelSize: 80
- width: parent.width * 0.8
- anchors.centerIn: parent
- color: "white"
- text: "It appears that this device doesn't provide the required sensors!"
- wrapMode: Text.WordWrap
- }
- }
- }
-
- Loader {
- id: pageLoader
- anchors.centerIn: parent
- }
-
- Component.onCompleted: {
- var typesList = Sensors.QmlSensors.sensorTypes();
- var count = 0
- for (var i = 0; i < typesList.length; ++i) {
- if (typesList[i] == "QAccelerometer")
- count++
- if (typesList[i] == "QLightSensor")
- count++
- }
-
- if (count > 1)
- pageLoader.sourceComponent = sensorExample
- else
- pageLoader.sourceComponent = message
- }
-}
diff --git a/basicsuite/sensors/preview_l.jpg b/basicsuite/sensors/preview_l.jpg
deleted file mode 100644
index 9d0d88c..0000000
--- a/basicsuite/sensors/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/sensors/sensors.pro b/basicsuite/sensors/sensors.pro
deleted file mode 100644
index 0b431b8..0000000
--- a/basicsuite/sensors/sensors.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-TARGET = sensors
-
-include(../shared/shared.pri)
-b2qtdemo_deploy_defaults()
-
-content.files = \
- *.qml \
- *.png
-content.path = $$DESTPATH
-
-OTHER_FILES += $${content.files}
-
-INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/sensors/title.txt b/basicsuite/sensors/title.txt
deleted file mode 100644
index a3a5b97..0000000
--- a/basicsuite/sensors/title.txt
+++ /dev/null
@@ -1 +0,0 @@
-140. Sensors Demo
diff --git a/basicsuite/webengine/content/common/ddg.png b/basicsuite/webengine/content/common/ddg.png
deleted file mode 100644
index 06ebe7c..0000000
--- a/basicsuite/webengine/content/common/ddg.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/common/open-sans.css b/basicsuite/webengine/content/common/open-sans.css
deleted file mode 100644
index 6342492..0000000
--- a/basicsuite/webengine/content/common/open-sans.css
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Open Sans @font-face kit */
-
-/* BEGIN Light */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/Light/OpenSans-Light.eot');
- src: url('opensans/Light/OpenSans-Light.eot?#iefix') format('embedded-opentype'),
- url('opensans/Light/OpenSans-Light.woff') format('woff'),
- url('opensans/Light/OpenSans-Light.ttf') format('truetype'),
- url('opensans/Light/OpenSans-Light.svg#OpenSansLight') format('svg');
- font-weight: 300;
- font-style: normal;
-}
-/* END Light */
-
-/* BEGIN Light Italic */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/LightItalic/OpenSans-LightItalic.eot');
- src: url('opensans/LightItalic/OpenSans-LightItalic.eot?#iefix') format('embedded-opentype'),
- url('opensans/LightItalic/OpenSans-LightItalic.woff') format('woff'),
- url('opensans/LightItalic/OpenSans-LightItalic.ttf') format('truetype'),
- url('opensans/LightItalic/OpenSans-LightItalic.svg#OpenSansLightItalic') format('svg');
- font-weight: 300;
- font-style: italic;
-}
-/* END Light Italic */
-
-/* BEGIN Regular */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/Regular/OpenSans-Regular.eot');
- src: url('opensans/Regular/OpenSans-Regular.eot?#iefix') format('embedded-opentype'),
- url('opensans/Regular/OpenSans-Regular.woff') format('woff'),
- url('opensans/Regular/OpenSans-Regular.ttf') format('truetype'),
- url('opensans/Regular/OpenSans-Regular.svg#OpenSansRegular') format('svg');
- font-weight: normal;
- font-style: normal;
-}
-/* END Regular */
-
-/* BEGIN Italic */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/Italic/OpenSans-Italic.eot');
- src: url('opensans/Italic/OpenSans-Italic.eot?#iefix') format('embedded-opentype'),
- url('opensans/Italic/OpenSans-Italic.woff') format('woff'),
- url('opensans/Italic/OpenSans-Italic.ttf') format('truetype'),
- url('opensans/Italic/OpenSans-Italic.svg#OpenSansItalic') format('svg');
- font-weight: normal;
- font-style: italic;
-}
-/* END Italic */
-
-/* BEGIN Semibold */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/Semibold/OpenSans-Semibold.eot');
- src: url('opensans/Semibold/OpenSans-Semibold.eot?#iefix') format('embedded-opentype'),
- url('opensans/Semibold/OpenSans-Semibold.woff') format('woff'),
- url('opensans/Semibold/OpenSans-Semibold.ttf') format('truetype'),
- url('opensans/Semibold/OpenSans-Semibold.svg#OpenSansSemibold') format('svg');
- font-weight: 600;
- font-style: normal;
-}
-/* END Semibold */
-
-/* BEGIN Semibold Italic */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/SemiboldItalic/OpenSans-SemiboldItalic.eot');
- src: url('opensans/SemiboldItalic/OpenSans-SemiboldItalic.eot?#iefix') format('embedded-opentype'),
- url('opensans/SemiboldItalic/OpenSans-SemiboldItalic.woff') format('woff'),
- url('opensans/SemiboldItalic/OpenSans-SemiboldItalic.ttf') format('truetype'),
- url('opensans/SemiboldItalic/OpenSans-SemiboldItalic.svg#OpenSansSemiboldItalic') format('svg');
- font-weight: 600;
- font-style: italic;
-}
-/* END Semibold Italic */
-
-/* BEGIN Bold */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/Bold/OpenSans-Bold.eot');
- src: url('opensans/Bold/OpenSans-Bold.eot?#iefix') format('embedded-opentype'),
- url('opensans/Bold/OpenSans-Bold.woff') format('woff'),
- url('opensans/Bold/OpenSans-Bold.ttf') format('truetype'),
- url('opensans/Bold/OpenSans-Bold.svg#OpenSansBold') format('svg');
- font-weight: bold;
- font-style: normal;
-}
-/* END Bold */
-
-/* BEGIN Bold Italic */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/BoldItalic/OpenSans-BoldItalic.eot');
- src: url('opensans/BoldItalic/OpenSans-BoldItalic.eot?#iefix') format('embedded-opentype'),
- url('opensans/BoldItalic/OpenSans-BoldItalic.woff') format('woff'),
- url('opensans/BoldItalic/OpenSans-BoldItalic.ttf') format('truetype'),
- url('opensans/BoldItalic/OpenSans-BoldItalic.svg#OpenSansBoldItalic') format('svg');
- font-weight: bold;
- font-style: italic;
-}
-/* END Bold Italic */
-
-/* BEGIN Extrabold */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/ExtraBold/OpenSans-ExtraBold.eot');
- src: url('opensans/ExtraBold/OpenSans-ExtraBold.eot?#iefix') format('embedded-opentype'),
- url('opensans/ExtraBold/OpenSans-ExtraBold.woff') format('woff'),
- url('opensans/ExtraBold/OpenSans-ExtraBold.ttf') format('truetype'),
- url('opensans/ExtraBold/OpenSans-ExtraBold.svg#OpenSansExtrabold') format('svg');
- font-weight: 800;
- font-style: normal;
-}
-/* END Extrabold */
-
-/* BEGIN Extrabold Italic */
-@font-face {
- font-family: 'Open Sans';
- src: url('opensans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot');
- src: url('opensans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot?#iefix') format('embedded-opentype'),
- url('opensans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff') format('woff'),
- url('opensans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.ttf') format('truetype'),
- url('opensans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.svg#OpenSansExtraboldItalic') format('svg');
- font-weight: 800;
- font-style: italic;
-}
-/* END Extrabold Italic */
diff --git a/basicsuite/webengine/content/common/opensans/Light/OpenSans-Light.woff b/basicsuite/webengine/content/common/opensans/Light/OpenSans-Light.woff
deleted file mode 100644
index 937323d..0000000
--- a/basicsuite/webengine/content/common/opensans/Light/OpenSans-Light.woff
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/common/opensans/Regular/OpenSans-Regular.woff b/basicsuite/webengine/content/common/opensans/Regular/OpenSans-Regular.woff
deleted file mode 100644
index bd0f824..0000000
--- a/basicsuite/webengine/content/common/opensans/Regular/OpenSans-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/common/osm.png b/basicsuite/webengine/content/common/osm.png
deleted file mode 100644
index d6390aa..0000000
--- a/basicsuite/webengine/content/common/osm.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/common/qt-io.png b/basicsuite/webengine/content/common/qt-io.png
deleted file mode 100644
index 1596e73..0000000
--- a/basicsuite/webengine/content/common/qt-io.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/common/reddit.png b/basicsuite/webengine/content/common/reddit.png
deleted file mode 100644
index 5f6aaef..0000000
--- a/basicsuite/webengine/content/common/reddit.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/common/style.css b/basicsuite/webengine/content/common/style.css
deleted file mode 100644
index ceecf60..0000000
--- a/basicsuite/webengine/content/common/style.css
+++ /dev/null
@@ -1,84 +0,0 @@
-a, a:link, a:active, a:visited {
- text-decoration:none;
-}
-
-body {
- margin: 2px;
- background-color: black;
- font-family: "Open Sans";
- font-weight: 300;
- color: white;
-}
-
-h1 {
- font-size: 56px;
- font-weight: 500;
- margin: 0.7em;
- text-align: center;
-}
-
-.bookmark {
- margin-top: 4px;
- padding-top: 9%;
- padding-bottom: 2%;
- -webkit-filter: grayscale(80%);
- transition: -webkit-filter 0.5s;
-}
-.bookmark:hover {
-/* -webkit-filter: none;*/
- -webkit-filter: saturate(130%);
-}
-.bookmark span{
- font-size: 48px;
- color: #eee;
- margin-left: 10%;
- text-shadow: black 6px 4px 8px ;
- background: rgba(160, 160, 160,0.3);
- padding: 5px;
- border-radius: 0.2em;
-}
-/*
- * url(attr()) is not really such a good combo. expand by hand
- */
-#qt-io {
- background-image: url("qt-io.png");
- background-size: 100% auto;
-}
-#youtube-tv {
- background-image: url("youtube-tv.png");
- background-size: 100% auto;
-}
-#osm {
- background-image: url("osm.png");
- background-size: 100% auto;
-}
-#ddg {
- background-image: url("ddg.png");
- background-position: 0% 25%;
- background-size: 100% auto;
-}
-#reddit {
- background-image: url("reddit.png");
- background-size: 100% auto;
-}
-/* Flexbox stuff */
-#links-container {
- display:flex;
- flex-direction: column;
-}
-#examples-container {
- display:flex;
- flex-direction: row;
-}
-.example {
- flex-grow: 1;
- transition: flex-grow 0.5s;
- width: 15%;
- margin:2px;
-}
-.example:hover {
- flex-grow: 3;
-}
-.example_image{
- width: 100%;
-}
diff --git a/basicsuite/webengine/content/common/youtube-tv.png b/basicsuite/webengine/content/common/youtube-tv.png
deleted file mode 100644
index 489167e..0000000
--- a/basicsuite/webengine/content/common/youtube-tv.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/csstetrahedron/index.html b/basicsuite/webengine/content/csstetrahedron/index.html
deleted file mode 100644
index 540890b..0000000
--- a/basicsuite/webengine/content/csstetrahedron/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
- <title>A tetrahedron built with CSS 3D transforms</title>
- <link rel="stylesheet" href="style.css" />
-</head>
-<body bgcolor="black">
-<div id="header"></div>
-<article id="viewport">
- <section id="pyramid">
- <div></div>
- <div></div>
- <div></div>
- <div></div>
- </section>
-</article>
-<script language="javascript">
-var container = document.getElementById("header");
-container.innerHTML = "<div style=\"font-family: monospace; font-size: 13px; margin: 5em auto 0px; padding: 2em; width: 600px; "
- + "height 100px; text-align: center; background-color: rgb(238, 238, 238);\">" + navigator.userAgent + "</div>";
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/basicsuite/webengine/content/csstetrahedron/screenshot.png b/basicsuite/webengine/content/csstetrahedron/screenshot.png
deleted file mode 100644
index 1c1283f..0000000
--- a/basicsuite/webengine/content/csstetrahedron/screenshot.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/csstetrahedron/style.css b/basicsuite/webengine/content/csstetrahedron/style.css
deleted file mode 100644
index 70d872a..0000000
--- a/basicsuite/webengine/content/csstetrahedron/style.css
+++ /dev/null
@@ -1,109 +0,0 @@
-#pyramid {
- position: relative;
- margin: 0px auto;
- height: 350px;
- width: 100px;
- -webkit-transform-style: preserve-3d;
- -webkit-animation: spin 10s linear infinite;
- -webkit-transform-origin: 116px 200px 116px;
-
- -moz-transform-style: preserve-3d;
- -moz-animation: spin 10s linear infinite;
- -moz-transform-origin: 116px 200px 116px;
-
- -ms-transform-style: preserve-3d;
- -ms-animation: spin 10s linear infinite;
- -ms-transform-origin: 116px 200px 116px;
-
- transform-style: preserve-3d;
- animation: spin 10s linear infinite;
- transform-origin: 116px 200px 116px;
-
-}
-
-@-webkit-keyframes spin {
- from {
- -webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
- }
- to {
- -webkit-transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg);
- }
-}
-
-@-moz-keyframes spin {
- from {
- -moz-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
- }
- to {
- -moz-transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg);
- }
-}
-
-@-ms-keyframes spin {
- from {
- -ms-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
- }
- to {
- -ms-transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg);
- }
-}
-
-@keyframes spin {
- from {
- transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
- }
- to {
- transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg);
- }
-}
-
-#pyramid > div {
- position: absolute;
- border-style: solid;
- border-width: 200px 0 200px 346px;
- -webkit-transform-origin: 0 0;
- -moz-transform-origin: 0 0;
- -ms-transform-origin: 0 0;
- transform-origin: 0 0;
-}
-
-/* Put some text on each face */
-#pyramid > div:after {
- position: absolute;
- content: "QtWebEngine";
- color: #fff;
- left: -250px;
- text-align: center;
-}
-
-#pyramid > div:first-child {
- border-color: transparent transparent transparent rgba(40, 150, 10, 0.6);
- -webkit-transform: rotateY(-19.5deg) rotateX(180deg) translateY(-400px);
- -moz-transform: rotateY(-19.5deg) rotateX(180deg) translateY(-400px);
- -ms-transform: rotateY(-19.5deg) rotateX(180deg) translateY(-400px);
- transform: rotateY(-19.5deg) rotateX(180deg) translateY(-400px);
-}
-
-#pyramid > div:nth-child(2) {
- border-color: transparent transparent transparent rgba(30, 120, 10, 0.6);
- -webkit-transform: rotateY(90deg) rotateZ(60deg) rotateX(180deg) translateY(-400px);
- -moz-transform: rotateY(90deg) rotateZ(60deg) rotateX(180deg) translateY(-400px);
- -ms-transform: rotateY(90deg) rotateZ(60deg) rotateX(180deg) translateY(-400px);
- transform: rotateY(90deg) rotateZ(60deg) rotateX(180deg) translateY(-400px);
-}
-
-#pyramid > div:nth-child(3) {
- border-color: transparent transparent transparent rgba(20, 100, 10, 0.9);
- -webkit-transform: rotateX(60deg) rotateY(19.5deg);
- -moz-transform: rotateX(60deg) rotateY(19.5deg);
- -ms-transform: rotateX(60deg) rotateY(19.5deg);
- transform: rotateX(60deg) rotateY(19.5deg);
-}
-
-#pyramid > div:nth-child(4) {
- border-color: transparent transparent transparent rgba(10, 80, 10, 0.8);
- -webkit-transform: rotateX(-60deg) rotateY(19.5deg) translateX(-116px) translateY(-200px) translateZ(326px);
- -moz-transform: rotateX(-60deg) rotateY(19.5deg) translateX(-116px) translateY(-200px) translateZ(326px);
- -ms-transform: rotateX(-60deg) rotateY(19.5deg) translateX(-116px) translateY(-200px) translateZ(326px);
- transform: rotateX(-60deg) rotateY(19.5deg) translateX(-116px) translateY(-200px) translateZ(326px);
-}
diff --git a/basicsuite/webengine/content/index.html b/basicsuite/webengine/content/index.html
deleted file mode 100644
index 9610cbf..0000000
--- a/basicsuite/webengine/content/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset=utf-8 />
- <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
- <title>Qt WebEngine Demo</title>
- <link rel="stylesheet" type="text/css" href="common/open-sans.css">
- <link rel="stylesheet" type="text/css" href="common/style.css">
- </head>
- <body>
- <div id="links-container">
- <a href="http://www.qt.io"><div class="bookmark" id="qt-io"><span>The Qt Company</span></div></a>
- <a href="https://www.youtube.com/tv"><div class="bookmark" id="youtube-tv"><span>YouTube TV</span></div></a>
- <a href="http://www.openstreetmap.org"><div class="bookmark" id="osm"><span>OpenStreetMap</span></div></a>
- <a href="http://www.duckduckgo.com"><div class="bookmark" id="ddg"><span>DuckDuckGo</span></div></a>
- <a href="http://www.reddit.com"><div class="bookmark" id="reddit"><span>Reddit</span></div></a>
- </div>
- <h1>Offline demos</h1>
- <div id="examples-container">
-<!-- <div class="example"><a href="../content/webgl/helloqt.html"><img class="example_image" src="../content/webgl/screenshot.png"></a></div> -->
- <div class="example"><a href="../content/csstetrahedron/index.html"><img class="example_image" src="../content/csstetrahedron/screenshot.png"></a></div>
- <div class="example"><a href="../content/rubiks/index.html"><img class="example_image" src="../content/rubiks/screenshot.png"></a></div>
- <div class="example"><a href="../content/morphingcubes/index.html"><img class="example_image" src="../content/morphingcubes/screenshot.png"></a></div>
- </div>
- </body>
-</html>
diff --git a/basicsuite/webengine/content/morphingcubes/index.html b/basicsuite/webengine/content/morphingcubes/index.html
deleted file mode 100644
index a5731f1..0000000
--- a/basicsuite/webengine/content/morphingcubes/index.html
+++ /dev/null
@@ -1,286 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-
-<html lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
- <title>Morphing Power Cubes</title>
- <style type="text/css" media="screen">
- body {
- background-color: black;
- color: white;
- font-family: 'Lucida Grande', Verdana, Arial;
- font-size: 12px;
- background-image: -webkit-gradient(radial,
- 50% 500, 1,
- 50% 500, 400,
- from(rgba(255, 255, 255, 0.3)),
- to(rgba(255, 255, 255, 0)));
- background-repeat: no-repeat;
- }
-
- #container {
- width: 100%;
- height: 700px;
- -webkit-perspective: 800; /* For compatibility with iPhone 3.0, we leave off the units here */
- -webkit-perspective-origin: 50% 225px;
- }
- #stage {
- width: 100%;
- height: 100%;
- -webkit-transition: -webkit-transform 2s;
- -webkit-transform-style: preserve-3d;
- }
-
- #shape {
- position: relative;
- top: 160px;
- margin: 0 auto;
- height: 200px;
- width: 200px;
- -webkit-transform-style: preserve-3d;
- }
-
- .plane {
- position: absolute;
- height: 200px;
- width: 200px;
- border: 1px solid white;
- -webkit-border-radius: 12px;
- -webkit-box-sizing: border-box;
- text-align: center;
- font-family: Times, serif;
- font-size: 124pt;
- color: black;
- background-color: rgba(255, 255, 255, 0.6);
- -webkit-transition: -webkit-transform 2s, opacity 2s;
- -webkit-backface-visibility: hidden;
- }
-
- #shape.backfaces .plane {
- -webkit-backface-visibility: visible;
- }
-
- #shape {
- -webkit-animation: spin 8s infinite linear;
- }
-
- @-webkit-keyframes spin {
- from { -webkit-transform: rotateY(0); }
- to { -webkit-transform: rotateY(-360deg); }
- }
-
- /* ---------- cube styles ------------- */
- .cube > .one {
- opacity: 0.5;
- -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateX(90deg) translateZ(100px);
- }
-
- .cube > .two {
- opacity: 0.5;
- -webkit-transform: scale3d(1.2, 1.2, 1.2) translateZ(100px);
- }
-
- .cube > .three {
- opacity: 0.5;
- -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateY(90deg) translateZ(100px);
- }
-
- .cube > .four {
- opacity: 0.5;
- -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateY(180deg) translateZ(100px);
- }
-
- .cube > .five {
- opacity: 0.5;
- -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateY(-90deg) translateZ(100px);
- }
-
- .cube > .six {
- opacity: 0.5;
- -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateX(-90deg) translateZ(100px) rotate(180deg);
- }
-
-
- .cube > .seven {
- -webkit-transform: scale3d(0.8, 0.8, 0.8) rotateX(90deg) translateZ(100px) rotate(180deg);
- }
-
- .cube > .eight {
- -webkit-transform: scale3d(0.8, 0.8, 0.8) translateZ(100px);
- }
-
- .cube > .nine {
- -webkit-transform: scale3d(0.8, 0.8, 0.8) rotateY(90deg) translateZ(100px);
- }
-
- .cube > .ten {
- -webkit-transform: scale3d(0.8, 0.8, 0.8) rotateY(180deg) translateZ(100px);
- }
-
- .cube > .eleven {
- -webkit-transform: scale3d(0.8, 0.8, 0.8) rotateY(-90deg) translateZ(100px);
- }
-
- .cube > .twelve {
- -webkit-transform: scale3d(0.8, 0.8, 0.8) rotateX(-90deg) translateZ(100px);
- }
-
- /* ---------- ring styles ------------- */
- .ring > .one {
- -webkit-transform: translateZ(380px);
- }
-
- .ring > .two {
- -webkit-transform: rotateY(30deg) translateZ(380px);
- }
-
- .ring > .three {
- -webkit-transform: rotateY(60deg) translateZ(380px);
- }
-
- .ring > .four {
- -webkit-transform: rotateY(90deg) translateZ(380px);
- }
-
- .ring > .five {
- -webkit-transform: rotateY(120deg) translateZ(380px);
- }
-
- .ring > .six {
- -webkit-transform: rotateY(150deg) translateZ(380px);
- }
-
- .ring > .seven {
- -webkit-transform: rotateY(180deg) translateZ(380px);
- }
-
- .ring > .eight {
- -webkit-transform: rotateY(210deg) translateZ(380px);
- }
-
- .ring > .nine {
- -webkit-transform: rotateY(-120deg) translateZ(380px);
- }
-
- .ring > .ten {
- -webkit-transform: rotateY(-90deg) translateZ(380px);
- }
-
- .ring > .eleven {
- -webkit-transform: rotateY(300deg) translateZ(380px);
- }
-
- .ring > .twelve {
- -webkit-transform: rotateY(330deg) translateZ(380px);
- }
-
- .controls {
- width: 80%;
- margin: 0 auto;
- padding: 5px 20px;
- -webkit-border-radius: 12px;
- background-color: rgba(255, 255, 255, 0.5);
- }
- .controls > div {
- margin: 10px;
- }
- </style>
- <script type="text/javascript" charset="utf-8">
- function hasClassName(inElement, inClassName)
- {
- var regExp = new RegExp('(?:^|\\s+)' + inClassName + '(?:\\s+|$)');
- return regExp.test(inElement.className);
- }
-
- function addClassName(inElement, inClassName)
- {
- if (!hasClassName(inElement, inClassName))
- inElement.className = [inElement.className, inClassName].join(' ');
- }
-
- function removeClassName(inElement, inClassName)
- {
- if (hasClassName(inElement, inClassName)) {
- var regExp = new RegExp('(?:^|\\s+)' + inClassName + '(?:\\s+|$)', 'g');
- var curClasses = inElement.className;
- inElement.className = curClasses.replace(regExp, ' ');
- }
- }
-
- function toggleClassName(inElement, inClassName)
- {
- if (hasClassName(inElement, inClassName))
- removeClassName(inElement, inClassName);
- else
- addClassName(inElement, inClassName);
- }
- function toggleShape()
- {
- var shape = document.getElementById('shape');
- if (hasClassName(shape, 'ring')) {
- removeClassName(shape, 'ring');
- addClassName(shape, 'cube');
- } else {
- removeClassName(shape, 'cube');
- addClassName(shape, 'ring');
- }
- // Move the ring back in Z so it's not so in-your-face.
- var stage = document.getElementById('stage');
- if (hasClassName(shape, 'ring'))
- stage.style.webkitTransform = 'translateZ(-200px)';
- else
- stage.style.webkitTransform = '';
- }
- function toggleBackfaces()
- {
- var backfacesVisible = document.getElementById('backfaces').checked;
- var shape = document.getElementById('shape');
- if (backfacesVisible)
- addClassName(shape, 'backfaces');
- else
- removeClassName(shape, 'backfaces');
- }
- </script>
-</head>
-<body>
-
- <div class="controls">
- <h1>Animations, Transitions and 3D Transforms</h1>
- <p>This demo shows some more interesting content using 3D transforms, animations and transitions.
- Note that you can still select the text on the the elements, even while they are rotating. Transforms elements remain
- fully interactive.</p>
- <p>Click Toggle Shape to switch between nested cubes and one big ring. Note how the planes move smoothly to their new locations,
- even while the whole shape is rotating. You can even interrupt this transition by clicking again, and they move back smoothly.</p>
- <p>Toggle the Backfaces Visible checkbox to turn backfaces on and off using <code>-webkit-backface-visibility</code>.</p>
- <div><button onclick="toggleShape()">Toggle Shape</button></div>
- <div><input type="checkbox" id="backfaces" onclick="toggleBackfaces()" checked><label for="backfaces">Backfaces visible</label></div>
- </div>
-
- <div id="container">
- <div id="stage">
- <div id="shape" class="cube backfaces">
- <div class="plane one">1</div>
- <div class="plane two">2</div>
- <div class="plane three">3</div>
- <div class="plane four">4</div>
- <div class="plane five">5</div>
- <div class="plane six">6</div>
- <div class="plane seven">7</div>
- <div class="plane eight">8</div>
- <div class="plane nine">9</div>
- <div class="plane ten">10</div>
- <div class="plane eleven">11</div>
- <div class="plane twelve">12</div>
- </div>
- </div>
- </div>
- <div id="footer"></div>
- <script language="javascript">
- var container = document.getElementById("footer");
- container.innerHTML = "<div style=\"font-family: monospace; font-size: 15px; margin: 0px auto 0px; padding: 2em; width: 600px; "
- + "height 100px; text-align: center; color: black; background-color: rgb(238, 238, 238);\">" + navigator.userAgent + "</div>";
- </script>
-</body>
-</html>
diff --git a/basicsuite/webengine/content/morphingcubes/screenshot.png b/basicsuite/webengine/content/morphingcubes/screenshot.png
deleted file mode 100644
index 9d36114..0000000
--- a/basicsuite/webengine/content/morphingcubes/screenshot.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/rubiks/css/style.css b/basicsuite/webengine/content/rubiks/css/style.css
deleted file mode 100644
index a636bb0..0000000
--- a/basicsuite/webengine/content/rubiks/css/style.css
+++ /dev/null
@@ -1,36 +0,0 @@
-html, body {
- height: 100%;
- margin: 0px;
-}
-
-body {
- background-color: #000;
- color: white;
- text-shadow: 0px 1px 1px black;
- text-align: center;
- font-family: sans-serif;
-}
-
-h1 {
- text-align: center;
- margin-top: 0px;
- padding-top: 1em;
-}
-
-footer {
- position: fixed;
- text-align: center;
- width: 100%;
- left: 0px;
- bottom: 3px;
- font-size: 90%;
-}
-
-a {
- color: white;
-}
-
-.face {
- border: 2px solid black;
- border-radius: 10px;
-}
diff --git a/basicsuite/webengine/content/rubiks/index.html b/basicsuite/webengine/content/rubiks/index.html
deleted file mode 100644
index 993b523..0000000
--- a/basicsuite/webengine/content/rubiks/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!doctype html>
-<!--
-
-Copyright (c) 2012 Ondřej Žára http://ondras.zarovi.cz
-This demo is released under the BSD license:
-http://opensource.org/licenses/bsd-license.php
-
--->
-
-<html>
- <head>
- <meta charset="utf-8" />
- <title>Rubik's cube :: CSS 3D Transformations demo</title>
- <script src="js/oz.js"></script>
- <script src="js/css3.oz.js"></script>
- <script src="js/rubik.js"></script>
- <script src="js/quaternion.js"></script>
- <link rel="stylesheet" href="css/style.css" />
- <meta name="viewport" content="width=device-width" />
- <meta name="apple-mobile-web-app-capable" content="yes" />
- </head>
- <body onload="new Rubik()">
- <h1>CSS 3D Rubik's cube</h1>
- </body>
-</html>
diff --git a/basicsuite/webengine/content/rubiks/js/css3.oz.js b/basicsuite/webengine/content/rubiks/js/css3.oz.js
deleted file mode 100644
index d8ad6d9..0000000
--- a/basicsuite/webengine/content/rubiks/js/css3.oz.js
+++ /dev/null
@@ -1,28 +0,0 @@
-OZ.CSS3 = {
- getProperty: function(property) {
- var prefix = this.getPrefix(this._normalize(property));
- if (prefix === null) { return null; }
- return (prefix ? "-" + prefix.toLowerCase() + "-" : "") + property;
- },
- set: function(node, prop, value) {
- prop = this._normalize(prop);
- var prefix = this.getPrefix(prop);
- if (prefix === null) { return false; }
- var p = (prefix ? prefix + prop.charAt(0).toUpperCase() + prop.substring(1) : prop);
- node.style[p] = value;
- return true;
- },
- getPrefix: function(property) {
- var prefixes = ["", "ms", "Webkit", "O", "Moz"];
- for (var i=0;i<prefixes.length;i++) {
- var p = prefixes[i];
- var prop = (p ? p + property.charAt(0).toUpperCase() + property.substring(1) : property);
- if (prop in this._node.style) { return p; }
- }
- return null;
- },
- _normalize: function(property) {
- return property.replace(/-([a-z])/g, function(match, letter) { return letter.toUpperCase(); });
- },
- _node: OZ.DOM.elm("div")
-}
diff --git a/basicsuite/webengine/content/rubiks/js/oz.js b/basicsuite/webengine/content/rubiks/js/oz.js
deleted file mode 100644
index b821c04..0000000
--- a/basicsuite/webengine/content/rubiks/js/oz.js
+++ /dev/null
@@ -1,334 +0,0 @@
-/* (c) 2007 - now() Ondrej Zara, 1.7 */
-var OZ = {
- $:function(x) { return typeof(x) == "string" ? document.getElementById(x) : x; },
- select: function(x) { return document.querySelectorAll(x); },
- opera:!!window.opera,
- ie:!!document.attachEvent && !window.opera,
- gecko:!!document.getAnonymousElementByAttribute,
- webkit:!!navigator.userAgent.match(/webkit/i),
- khtml:!!navigator.userAgent.match(/khtml/i) || !!navigator.userAgent.match(/konqueror/i),
- Event:{
- _id:0,
- _byName:{},
- _byID:{},
- add:function(elm,event,cb) {
- var id = OZ.Event._id++;
- var element = OZ.$(elm);
- var fnc = (element && element.attachEvent ? function() { return cb.apply(element,arguments); } : cb);
- var rec = [element,event,fnc];
- var parts = event.split(" ");
- while (parts.length) {
- var e = parts.pop();
- if (element) {
- if (element.addEventListener) {
- element.addEventListener(e,fnc,false);
- } else if (element.attachEvent) {
- element.attachEvent("on"+e,fnc);
- }
- }
- if (!(e in OZ.Event._byName)) { OZ.Event._byName[e] = {}; }
- OZ.Event._byName[e][id] = rec;
- }
- OZ.Event._byID[id] = rec;
- return id;
- },
- remove:function(id) {
- var rec = OZ.Event._byID[id];
- if (!rec) { return; }
- var elm = rec[0];
- var parts = rec[1].split(" ");
- while (parts.length) {
- var e = parts.pop();
- if (elm) {
- if (elm.removeEventListener) {
- elm.removeEventListener(e,rec[2],false);
- } else if (elm.detachEvent) {
- elm.detachEvent("on"+e,rec[2]);
- }
- }
- delete OZ.Event._byName[e][id];
- }
- delete OZ.Event._byID[id];
- },
- stop:function(e) { e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; },
- prevent:function(e) { e.preventDefault ? e.preventDefault() : e.returnValue = false; },
- target:function(e) { return e.target || e.srcElement; }
- },
- Class:function() {
- var c = function() {
- var init = arguments.callee.prototype.init;
- if (init) { init.apply(this,arguments); }
- };
- c.implement = function(parent) {
- for (var p in parent.prototype) { this.prototype[p] = parent.prototype[p]; }
- return this;
- };
- c.extend = function(parent) {
- var tmp = function(){};
- tmp.prototype = parent.prototype;
- this.prototype = new tmp();
- this.prototype.constructor = this;
- return this;
- };
- c.prototype.bind = function(fnc) { return fnc.bind(this); };
- c.prototype.dispatch = function(type, data) {
- var obj = {
- type:type,
- target:this,
- timeStamp:(new Date()).getTime(),
- data:data
- }
- var tocall = [];
- var list = OZ.Event._byName[type];
- for (var id in list) {
- var item = list[id];
- if (!item[0] || item[0] == this) { tocall.push(item[2]); }
- }
- var len = tocall.length;
- for (var i=0;i<len;i++) { tocall[i](obj); }
- }
- return c;
- },
- DOM:{
- elm:function(name, opts) {
- var elm = document.createElement(name);
- for (var p in opts) {
- var val = opts[p];
- if (p == "class") { p = "className"; }
- if (p in elm) { elm[p] = val; }
- }
- OZ.Style.set(elm, opts);
- return elm;
- },
- text:function(str) { return document.createTextNode(str); },
- clear:function(node) { while (node.firstChild) {node.removeChild(node.firstChild);} },
- pos:function(elm) { /* relative to _viewport_ */
- var cur = OZ.$(elm);
- var html = cur.ownerDocument.documentElement;
- var parent = cur.parentNode;
- var x = y = 0;
- if (cur == html) { return [x,y]; }
- while (1) {
- if (OZ.Style.get(cur,"position") == "fixed") {
- x += cur.offsetLeft;
- y += cur.offsetTop;
- return [x,y];
- }
-
- if (OZ.opera && (parent == html || OZ.Style.get(cur,"display") != "block")) { } else {
- x -= parent.scrollLeft;
- y -= parent.scrollTop;
- }
- if (parent == cur.offsetParent || cur.parentNode == html) {
- x += cur.offsetLeft;
- y += cur.offsetTop;
- cur = parent;
- }
-
- if (parent == html) { return [x,y]; }
- parent = parent.parentNode;
- }
- },
- scroll:function() {
- var x = document.documentElement.scrollLeft || document.body.scrollLeft || 0;
- var y = document.documentElement.scrollTop || document.body.scrollTop || 0;
- return [x,y];
- },
- win:function(avail) {
- return (avail ? [window.innerWidth,window.innerHeight] : [document.documentElement.clientWidth,document.documentElement.clientHeight]);
- },
- hasClass:function(node, className) {
- var cn = OZ.$(node).className;
- var arr = (cn ? cn.split(" ") : []);
- return (arr.indexOf(className) != -1);
- },
- addClass:function(node,className) {
- if (OZ.DOM.hasClass(node, className)) { return; }
- var cn = OZ.$(node).className;
- var arr = (cn ? cn.split(" ") : []);
- arr.push(className);
- OZ.$(node).className = arr.join(" ");
- },
- removeClass:function(node, className) {
- if (!OZ.DOM.hasClass(node, className)) { return; }
- var cn = OZ.$(node).className;
- var arr = (cn ? cn.split(" ") : []);
- var arr = arr.filter(function($){ return $ != className; });
- OZ.$(node).className = arr.join(" ");
- },
- append:function() {
- if (arguments.length == 1) {
- var arr = arguments[0];
- var root = OZ.$(arr[0]);
- for (var i=1;i<arr.length;i++) { root.appendChild(OZ.$(arr[i])); }
- } else for (var i=0;i<arguments.length;i++) { OZ.DOM.append(arguments[i]); }
- }
- },
- Style:{
- get:function(elm, prop) {
- if (document.defaultView && document.defaultView.getComputedStyle) {
- try {
- var cs = elm.ownerDocument.defaultView.getComputedStyle(elm,"");
- } catch(e) {
- return false;
- }
- if (!cs) { return false; }
- return cs[prop];
- } else {
- return elm.currentStyle[prop];
- }
- },
- set:function(elm, obj) {
- for (var p in obj) {
- var val = obj[p];
- if (p == "opacity" && OZ.ie) {
- p = "filter";
- val = "alpha(opacity="+Math.round(100*val)+")";
- elm.style.zoom = 1;
- } else if (p == "float") {
- p = (OZ.ie ? "styleFloat" : "cssFloat");
- }
- if (p in elm.style) { elm.style[p] = val; }
- }
- }
- },
- Request:function(url, callback, options) {
- var o = {data:false, method:"get", headers:{}, xml:false}
- for (var p in options) { o[p] = options[p]; }
- o.method = o.method.toUpperCase();
-
- var xhr = false;
- if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); }
- else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
- else { return false; }
- xhr.open(o.method, url, true);
- xhr.onreadystatechange = function() {
- if (xhr.readyState != 4) { return; }
- if (!callback) { return; }
- var data = (o.xml ? xhr.responseXML : xhr.responseText);
- var headers = {};
- var h = xhr.getAllResponseHeaders();
- if (h) {
- h = h.split(/[\r\n]/);
- for (var i=0;i<h.length;i++) if (h[i]) {
- var v = h[i].match(/^([^:]+): *(.*)$/);
- headers[v[1]] = v[2];
- }
- }
- callback(data,xhr.status,headers);
- };
- if (o.method == "POST") { xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); }
- for (var p in o.headers) { xhr.setRequestHeader(p,o.headers[p]); }
- xhr.send(o.data || null);
- return xhr;
- }
-}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function(thisObj) {
- var fn = this;
- var args = Array.prototype.slice.call(arguments, 1);
- return function() {
- return fn.apply(thisObj, args.concat(Array.prototype.slice.call(arguments)));
- }
- }
-};
-
-if (!Array.prototype.indexOf) {
- Array.prototype.indexOf = function(item, from) {
- var len = this.length;
- var i = from || 0;
- if (i < 0) { i += len; }
- for (;i<len;i++) {
- if (i in this && this[i] === item) { return i; }
- }
- return -1;
- }
-}
-if (!Array.indexOf) {
- Array.indexOf = function(obj, item, from) { return Array.prototype.indexOf.call(obj, item, from); }
-}
-
-if (!Array.prototype.lastIndexOf) {
- Array.prototype.lastIndexOf = function(item, from) {
- var len = this.length;
- var i = from || len-1;
- if (i < 0) { i += len; }
- for (;i>-1;i--) {
- if (i in this && this[i] === item) { return i; }
- }
- return -1;
- }
-}
-if (!Array.lastIndexOf) {
- Array.lastIndexOf = function(obj, item, from) { return Array.prototype.lastIndexOf.call(obj, item, from); }
-}
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function(cb, _this) {
- var len = this.length;
- for (var i=0;i<len;i++) {
- if (i in this) { cb.call(_this, this[i], i, this); }
- }
- }
-}
-if (!Array.forEach) {
- Array.forEach = function(obj, cb, _this) { Array.prototype.forEach.call(obj, cb, _this); }
-}
-
-if (!Array.prototype.every) {
- Array.prototype.every = function(cb, _this) {
- var len = this.length;
- for (var i=0;i<len;i++) {
- if (i in this && !cb.call(_this, this[i], i, this)) { return false; }
- }
- return true;
- }
-}
-if (!Array.every) {
- Array.every = function(obj, cb, _this) { return Array.prototype.every.call(obj, cb, _this); }
-}
-
-if (!Array.prototype.some) {
- Array.prototype.some = function(cb, _this) {
- var len = this.length;
- for (var i=0;i<len;i++) {
- if (i in this && cb.call(_this, this[i], i, this)) { return true; }
- }
- return false;
- }
-}
-if (!Array.some) {
- Array.some = function(obj, cb, _this) { return Array.prototype.some.call(obj, cb, _this); }
-}
-
-if (!Array.prototype.map) {
- Array.prototype.map = function(cb, _this) {
- var len = this.length;
- var res = new Array(len);
- for (var i=0;i<len;i++) {
- if (i in this) { res[i] = cb.call(_this, this[i], i, this); }
- }
- return res;
- }
-}
-if (!Array.map) {
- Array.map = function(obj, cb, _this) { return Array.prototype.map.call(obj, cb, _this); }
-}
-
-if (!Array.prototype.filter) {
- Array.prototype.filter = function(cb, _this) {
- var len = this.length;
- var res = [];
- for (var i=0;i<len;i++) {
- if (i in this) {
- var val = this[i];
- if (cb.call(_this, val, i, this)) { res.push(val); }
- }
- }
- return res;
- }
-}
-if (!Array.filter) {
- Array.filter = function(obj, cb, _this) { return Array.prototype.filter.call(obj, cb, _this); }
-}
diff --git a/basicsuite/webengine/content/rubiks/js/quaternion.js b/basicsuite/webengine/content/rubiks/js/quaternion.js
deleted file mode 100644
index a44cfea..0000000
--- a/basicsuite/webengine/content/rubiks/js/quaternion.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var Quaternion = OZ.Class();
-
-Quaternion.fromRotation = function(axis, angle) {
- var DEG2RAD = Math.PI/180;
- var a = angle * DEG2RAD;
-
- var sin = Math.sin(a/2);
- var cos = Math.cos(a/2);
-
- return new this(
- axis[0]*sin, axis[1]*sin, axis[2]*sin,
- cos
- );
-}
-
-Quaternion.fromUnit = function() {
- return new this(0, 0, 0, 1);
-}
-
-Quaternion.prototype.init = function(x, y, z, w) {
- this.x = x;
- this.y = y;
- this.z = z;
- this.w = w;
-}
-
-Quaternion.prototype.normalize = function() {
- var norm = Math.sqrt(this.x*this.x + this.y*this.y + this.z*this.z + this.w*this.w);
- return new this.constructor(this.x/norm, this.y/norm, this.z/norm, this.w/norm);
-}
-
-Quaternion.prototype.conjugate = function() {
- return new this.constructor(-this.x, -this.y, -this.z, this.w);
-}
-
-Quaternion.prototype.toString = function() {
- return [this.x, this.y, this.z, this.w].toString(", ");
-}
-
-Quaternion.prototype.multiply = function(q) {
- var p = this;
-
- var x = p.w*q.x + p.x*q.w + p.y*q.z - p.z*q.y;
- var y = p.w*q.y + p.y*q.w + p.z*q.x - p.x*q.z;
- var z = p.w*q.z + p.z*q.w + p.x*q.y - p.y*q.x;
- var w = p.w*q.w - p.x*q.x - p.y*q.y - p.z*q.z;
-
- return new this.constructor(x, y, z, w);
-}
-
-Quaternion.prototype.toAxis = function() {
- return [this.x, this.y, this.z];
-}
-
-Quaternion.prototype.toAngle = function() {
- var RAD2DEG = 180/Math.PI;
- return RAD2DEG * 2 * Math.acos(this.w);
-}
-
-Quaternion.prototype.toRotation = function() {
- var axis = this.toAxis();
- var angle = this.toAngle();
- return "rotate3d(" + axis[0].toFixed(10) + "," + axis[1].toFixed(10) + "," + axis[2].toFixed(10) + "," + angle.toFixed(10) + "deg)";
-}
-
-Quaternion.prototype.toRotations = function() {
- var RAD2DEG = 180/Math.PI;
-
- var x = RAD2DEG * Math.atan2(2*(this.w*this.x + this.y*this.z), 1 - 2*(this.x*this.x + this.y*this.y));
- var y = RAD2DEG * Math.asin(2*(this.w*this.y - this.x*this.z));
- var z = RAD2DEG * Math.atan2(2*(this.w*this.z + this.x*this.y), 1 - 2*(this.y*this.y + this.z*this.z));
-
- if (x < 0) { x += 360; }
- if (y < 0) { y += 360; }
- if (z < 0) { z += 360; }
-
- return "rotateX(" + x.toFixed(10) + "deg) rotateY(" + y.toFixed(10) + "deg) rotate(" + z.toFixed(10) + "deg)";
-}
diff --git a/basicsuite/webengine/content/rubiks/js/rubik.js b/basicsuite/webengine/content/rubiks/js/rubik.js
deleted file mode 100644
index 72dbae7..0000000
--- a/basicsuite/webengine/content/rubiks/js/rubik.js
+++ /dev/null
@@ -1,492 +0,0 @@
-Array.prototype.clone = function() {
- var c = [];
- var len = this.length;
- for (var i=0;i<len;i++) { c.push(this[i]); }
- return c;
-}
-
-Array.prototype.random = function() {
- return this[Math.floor(Math.random()*this.length)];
-}
-
-var Face = OZ.Class();
-Face.SIZE = 100;
-Face.LEFT = 0;
-Face.RIGHT = 1;
-Face.TOP = 2;
-Face.BOTTOM = 3;
-Face.FRONT = 4;
-Face.BACK = 5;
-
-Face.ROTATION = [
- [Face.TOP, Face.FRONT, Face.BOTTOM, Face.BACK].reverse(),
- [Face.LEFT, Face.BACK, Face.RIGHT, Face.FRONT].reverse(),
- [Face.LEFT, Face.BOTTOM, Face.RIGHT, Face.TOP].reverse()
-];
-
-Face.prototype.init = function(cube, type) {
- this._cube = cube;
- this._type = type;
- this._color = null;
- this._node = OZ.DOM.elm("div", {className:"face face"+type, width:Face.SIZE+"px", height:Face.SIZE+"px", position:"absolute", left:"0px", top:"0px"});
- OZ.CSS3.set(this._node, "box-sizing", "border-box");
- OZ.CSS3.set(this._node, "backface-visibility", "hidden");
-
- switch (type) {
- case Face.LEFT:
- OZ.CSS3.set(this._node, "transform-origin", "100% 50%");
- OZ.CSS3.set(this._node, "transform", "translate3d(-"+Face.SIZE+"px, 0px, 0px) rotateY(-90deg)");
- break;
- case Face.RIGHT:
- OZ.CSS3.set(this._node, "transform-origin", "0% 50%");
- OZ.CSS3.set(this._node, "transform", "translate3d("+Face.SIZE+"px, 0px, 0px) rotateY(90deg)");
- break;
- case Face.TOP:
- OZ.CSS3.set(this._node, "transform-origin", "50% 100%");
- OZ.CSS3.set(this._node, "transform", "translate3d(0px, -"+Face.SIZE+"px, 0px) rotateX(90deg)");
- break;
- case Face.BOTTOM:
- OZ.CSS3.set(this._node, "transform-origin", "50% 0%");
- OZ.CSS3.set(this._node, "transform", "translate3d(0px, "+Face.SIZE+"px, 0px) rotateX(-90deg)");
- break;
- case Face.FRONT:
- break;
- case Face.BACK:
- OZ.CSS3.set(this._node, "transform", "translate3d(0px, 0px, -"+Face.SIZE+"px) rotateY(180deg)");
- break;
- }
-}
-
-Face.prototype.getCube = function() {
- return this._cube;
-}
-
-Face.prototype.getNode = function() {
- return this._node;
-}
-
-Face.prototype.getType = function() {
- return this._type;
-}
-
-Face.prototype.setColor = function(color) {
- this._color = color;
- this._node.style.backgroundColor = color;
-}
-
-Face.prototype.getColor = function() {
- return this._color;
-}
-
-var Cube = OZ.Class();
-Cube.prototype.init = function(position) {
- this._rotation = null;
- this._position = position;
- this._node = OZ.DOM.elm("div", {className:"cube", position:"absolute", width:Face.SIZE+"px", height:Face.SIZE+"px"});
- this._faces = {};
- this._tmpFaces = {};
- OZ.CSS3.set(this._node, "transform-style", "preserve-3d");
-
- this._update();
-}
-
-Cube.prototype.getFaces = function() {
- return this._faces;
-}
-
-Cube.prototype.setFace = function(type, color) {
- if (!(type in this._faces)) {
- var face = new Face(this, type);
- this._node.appendChild(face.getNode());
- this._faces[type] = face;
- }
- this._faces[type].setColor(color);
-}
-
-Cube.prototype.setRotation = function(rotation) {
- this._rotation = rotation;
- this._update();
-}
-
-Cube.prototype.complete = function() {
- for (var i=0;i<6;i++) {
- if (i in this._faces) { continue; }
- this.addFace(i, "black");
- }
-}
-
-Cube.prototype.prepareColorChange = function(sourceCube, rotation) {
- this._tmpFaces = {};
- var sourceFaces = sourceCube.getFaces();
- for (var p in sourceFaces) {
- var sourceType = parseInt(p);
- var targetType = this._rotateType(sourceType, rotation);
- this._tmpFaces[targetType] = sourceFaces[sourceType].getColor();
- }
-}
-
-Cube.prototype.commitColorChange = function() {
- var parent = this._node.parentNode;
- parent.removeChild(this._node);
-
- OZ.DOM.clear(this._node);
- this._faces = {};
- for (var p in this._tmpFaces) {
- var type = parseInt(p);
- this.setFace(type, this._tmpFaces[p]);
- }
- this._tmpFaces = {};
-
- this._rotation = null;
- this._update();
- parent.appendChild(this._node);
-}
-
-Cube.prototype._rotateType = function(type, rotation) {
- for (var i=0;i<3;i++) {
- if (!rotation[i]) { continue; }
- var faces = Face.ROTATION[i];
- var index = faces.indexOf(type);
- if (index == -1) { continue; } /* no rotation available */
- index = (index + rotation[i] + faces.length) % faces.length;
- return faces[index];
- }
-
- return type;
-}
-
-Cube.prototype._update = function() {
- var transform = "";
- transform += "translate3d("+(-Face.SIZE/2)+"px, "+(-Face.SIZE/2)+"px, "+(-Face.SIZE/2)+"px) ";
- if (this._rotation) { transform += this._rotation + " "; }
-
- var half = Math.floor(Rubik.SIZE/2);
- var x = this._position[0];
- var y = this._position[1];
- var z = -this._position[2];
- x -= half;
- y -= half;
- z += half + 1/2;
- transform += "translate3d("+(x*Face.SIZE)+"px, "+(y*Face.SIZE)+"px, "+(z*Face.SIZE)+"px)";
-
- var prop = OZ.CSS3.getProperty("transform");
- var val = this._rotation ? prop + " 300ms" : "";
- OZ.CSS3.set(this._node, "transition", val);
-
- OZ.CSS3.set(this._node, "transform", transform);
-}
-
-Cube.prototype.getPosition = function() {
- return this._position;
-}
-
-Cube.prototype.getNode = function() {
- return this._node;
-}
-
-Cube.prototype.getFaces = function() {
- return this._faces;
-}
-
-var Rubik = OZ.Class();
-Rubik.SIZE = 3;
-Rubik.prototype.init = function() {
- this._cubes = [];
- this._faces = [];
- this._faceNodes = [];
- this._help = {};
- this._drag = {
- ec: [],
- mouse: [],
- face: null
- };
-
- this._rotation = Quaternion.fromRotation([1, 0, 0], -35).multiply(Quaternion.fromRotation([0, 1, 0], 45));
- this._node = OZ.DOM.elm("div", {position:"absolute", left:"50%", top:"55%", width:"0px", height:"0px"});
- document.body.appendChild(this._node);
-
- OZ.CSS3.set(document.body, "perspective", "460px");
- OZ.CSS3.set(this._node, "transform-style", "preserve-3d");
-
- this._build();
- this._update();
- OZ.Event.add(document.body, "mousedown touchstart", this._dragStart.bind(this));
-
- setTimeout(this.randomize.bind(this), 500);
-}
-
-Rubik.prototype.randomize = function() {
- var remain = 10;
- var cb = function() {
- remain--;
- if (remain > 0) {
- this._rotateRandom();
- } else {
- OZ.Event.remove(e);
-
- this._help.a = OZ.DOM.elm("p", {innerHTML:"Drag or swipe the background to rotate the whole cube."});
- this._help.b = OZ.DOM.elm("p", {innerHTML:"Drag or swipe the cube to rotate its layers."});
- document.body.appendChild(this._help.a);
- document.body.appendChild(this._help.b);
- OZ.CSS3.set(this._help.a, "transition", "opacity 500ms");
- OZ.CSS3.set(this._help.b, "transition", "opacity 500ms");
-
- }
- }
- var e = OZ.Event.add(null, "rotated", cb.bind(this));
- this._rotateRandom();
-}
-
-Rubik.prototype._rotateRandom = function() {
- var method = "_rotate" + ["X", "Y", "Z"].random();
- var dir = [-1, 1].random();
- var layer = Math.floor(Math.random()*Rubik.SIZE);
- this[method](dir, layer);
-}
-
-Rubik.prototype._update = function() {
- OZ.CSS3.set(this._node, "transform", "translateZ(" + (-Face.SIZE/2 - Face.SIZE) + "px) " + this._rotation.toRotation() + " translateZ("+(Face.SIZE/2)+"px)");
-}
-
-Rubik.prototype._eventToFace = function(e) {
- if (document.elementFromPoint) {
- e = (e.touches ? e.touches[0] : e);
- var node = document.elementFromPoint(e.clientX, e.clientY);
- } else {
- var node = OZ.Event.target(e);
- }
- var index = this._faceNodes.indexOf(node);
- if (index == -1) { return null; }
- return this._faces[index];
-}
-
-Rubik.prototype._dragStart = function(e) {
- this._faces = [];
- this._faceNodes = [];
- for (var i=0;i<this._cubes.length;i++) {
- var faces = this._cubes[i].getFaces();
- for (var p in faces) {
- this._faces.push(faces[p]);
- this._faceNodes.push(faces[p].getNode());
- }
- }
-
- OZ.Event.prevent(e);
- this._drag.face = this._eventToFace(e);
- e = (e.touches ? e.touches[0] : e);
- this._drag.mouse = [e.clientX, e.clientY];
-
- this._drag.ec.push(OZ.Event.add(document.body, "mousemove touchmove", this._dragMove.bind(this)));
- this._drag.ec.push(OZ.Event.add(document.body, "mouseup touchend", this._dragEnd.bind(this)));
-}
-
-Rubik.prototype._dragMove = function(e) {
- if (e.touches && e.touches.length > 1) { return; }
-
- if (this._drag.face) { /* check second face for rotation */
- var thisFace = this._eventToFace(e);
- if (!thisFace || thisFace == this._drag.face) { return; }
- this._dragEnd();
- this._rotate(this._drag.face, thisFace);
- } else { /* rotate cube */
- e = (e.touches ? e.touches[0] : e);
- var mouse = [e.clientX, e.clientY];
- var dx = mouse[0] - this._drag.mouse[0];
- var dy = mouse[1] - this._drag.mouse[1];
- var norm = Math.sqrt(dx*dx+dy*dy);
- if (!norm) { return; }
- var N = [-dy/norm, dx/norm];
-
- this._drag.mouse = mouse;
- this._rotation = Quaternion.fromRotation([N[0], N[1], 0], norm/2).multiply(this._rotation);
- this._update();
- }
-}
-
-Rubik.prototype._dragEnd = function(e) {
- while (this._drag.ec.length) { OZ.Event.remove(this._drag.ec.pop()); }
-
- if (!this._drag.face && this._help.a) {
- this._help.a.style.opacity = 0;
- this._help.a = null;
- }
-}
-
-Rubik.prototype._rotate = function(face1, face2) {
- var t1 = face1.getType();
- var t2 = face2.getType();
- var pos1 = face1.getCube().getPosition();
- var pos2 = face2.getCube().getPosition();
-
- /* find difference between cubes */
- var diff = 0;
- var diffIndex = -1;
- for (var i=0;i<3;i++) {
- var d = pos1[i]-pos2[i];
- if (d) {
- if (diffIndex != -1) { return; } /* different in >1 dimensions */
- diff = (d > 0 ? 1 : -1);
- diffIndex = i;
- }
- }
-
- if (t1 == t2) { /* same face => diffIndex != -1 */
- switch (t1) {
- case Face.FRONT:
- case Face.BACK:
- var coef = (t1 == Face.FRONT ? 1 : -1);
- if (diffIndex == 0) { this._rotateY(coef*diff, pos1[1]); } else { this._rotateX(coef*diff, pos1[0]); }
- break;
-
- case Face.LEFT:
- case Face.RIGHT:
- var coef = (t1 == Face.LEFT ? 1 : -1);
- if (diffIndex == 2) { this._rotateY(-coef*diff, pos1[1]); } else { this._rotateZ(coef*diff, pos1[2]); }
- break;
-
- case Face.TOP:
- case Face.BOTTOM:
- var coef = (t1 == Face.TOP ? 1 : -1);
- if (diffIndex == 0) { this._rotateZ(-coef*diff, pos1[2]); } else { this._rotateX(-coef*diff, pos1[0]); }
- break;
- }
- return;
- }
-
- switch (t1) { /* different face => same cube, diffIndex == 1 */
- case Face.FRONT:
- case Face.BACK:
- var coef = (t1 == Face.FRONT ? 1 : -1);
- if (t2 == Face.LEFT) { this._rotateY(1 * coef, pos1[1]); }
- if (t2 == Face.RIGHT) { this._rotateY(-1 * coef, pos1[1]); }
- if (t2 == Face.TOP) { this._rotateX(1 * coef, pos1[0]); }
- if (t2 == Face.BOTTOM) { this._rotateX(-1 * coef, pos1[0]); }
- break;
-
- case Face.LEFT:
- case Face.RIGHT:
- var coef = (t1 == Face.LEFT ? 1 : -1);
- if (t2 == Face.FRONT) { this._rotateY(-1 * coef, pos1[1]); }
- if (t2 == Face.BACK) { this._rotateY(1 * coef, pos1[1]); }
- if (t2 == Face.TOP) { this._rotateZ(1 * coef, pos1[2]); }
- if (t2 == Face.BOTTOM) { this._rotateZ(-1 * coef, pos1[2]); }
- break;
-
- case Face.TOP:
- case Face.BOTTOM:
- var coef = (t1 == Face.TOP ? 1 : -1);
- if (t2 == Face.FRONT) { this._rotateX(-1 * coef, pos1[0]); }
- if (t2 == Face.BACK) { this._rotateX(1 * coef, pos1[0]); }
- if (t2 == Face.LEFT) { this._rotateZ(-1 * coef, pos1[2]); }
- if (t2 == Face.RIGHT) { this._rotateZ(1 * coef, pos1[2]); }
- break;
- }
-
-}
-
-Rubik.prototype._rotateX = function(dir, layer) {
- var cubes = [];
- for (var i=0;i<Rubik.SIZE*Rubik.SIZE;i++) {
- cubes.push(this._cubes[layer + i*Rubik.SIZE]);
- }
- this._rotateCubes(cubes, [dir, 0, 0]);
-}
-
-Rubik.prototype._rotateY = function(dir, layer) {
- var cubes = [];
- for (var i=0;i<Rubik.SIZE;i++) {
- for (var j=0;j<Rubik.SIZE;j++) {
- cubes.push(this._cubes[j + layer*Rubik.SIZE + i*Rubik.SIZE*Rubik.SIZE]);
- }
- }
- this._rotateCubes(cubes, [0, -dir, 0]);
-}
-
-Rubik.prototype._rotateZ = function(dir, layer) {
- var cubes = [];
- var offset = layer * Rubik.SIZE * Rubik.SIZE;
- for (var i=0;i<Rubik.SIZE*Rubik.SIZE;i++) {
- cubes.push(this._cubes[offset+i]);
- }
- this._rotateCubes(cubes, [0, 0, dir]);
-}
-
-Rubik.prototype._rotateCubes = function(cubes, rotation) {
- var suffixes = ["X", "Y", ""];
-
- var prefix = OZ.CSS3.getPrefix("transition");
- if (prefix === null) {
- this._finalizeRotation(cubes, rotation);
- } else {
- var cb = function() {
- OZ.Event.remove(e);
- this._finalizeRotation(cubes, rotation);
- }
- var e = OZ.Event.add(document.body, "webkitTransitionEnd transitionend MSTransitionEnd oTransitionEnd", cb.bind(this));
-
- var str = "";
- for (var i=0;i<3;i++) {
- if (!rotation[i]) { continue; }
- str = "rotate" + suffixes[i] + "(" + (90*rotation[i]) + "deg)";
- }
- for (var i=0;i<cubes.length;i++) { cubes[i].setRotation(str); }
- }
-
-}
-
-/**
- * Remap colors
- */
-Rubik.prototype._finalizeRotation = function(cubes, rotation) {
- var direction = 0;
- for (var i=0;i<3;i++) {
- if (rotation[i]) { direction = rotation[i]; }
- }
-
- if (rotation[0]) { direction *= -1; } /* FIXME wtf */
-
- var half = Math.floor(Rubik.SIZE/2);
-
- for (var i=0;i<cubes.length;i++) {
- var x = i % Rubik.SIZE - half;
- var y = Math.floor(i / Rubik.SIZE) - half;
-
- var source = [y*direction + half, -x*direction + half];
- var sourceIndex = source[0] + Rubik.SIZE*source[1];
-
- cubes[i].prepareColorChange(cubes[sourceIndex], rotation);
- }
-
- for (var i=0;i<cubes.length;i++) { cubes[i].commitColorChange(); }
-
- setTimeout(function() {
- if (this._help.b) {
- this._help.b.style.opacity = 0;
- this._help.b = null;
- }
-
- this.dispatch("rotated");
- }.bind(this), 100);
-}
-
-Rubik.prototype._build = function() {
- for (var z=0;z<Rubik.SIZE;z++) {
- for (var y=0;y<Rubik.SIZE;y++) {
- for (var x=0;x<Rubik.SIZE;x++) {
- var cube = new Cube([x, y, z]);
- this._cubes.push(cube);
-
- if (z == 0) { cube.setFace(Face.FRONT, "red"); }
- if (z == 2) { cube.setFace(Face.BACK, "blue"); }
-
- if (x == 0) { cube.setFace(Face.LEFT, "green"); }
- if (x == 2) { cube.setFace(Face.RIGHT, "yellow"); }
-
- if (y == 0) { cube.setFace(Face.TOP, "cyan"); }
- if (y == 2) { cube.setFace(Face.BOTTOM, "teal"); }
- this._node.appendChild(cube.getNode());
- }
- }
- }
-
-}
diff --git a/basicsuite/webengine/content/rubiks/screenshot.png b/basicsuite/webengine/content/rubiks/screenshot.png
deleted file mode 100644
index 45b0e37..0000000
--- a/basicsuite/webengine/content/rubiks/screenshot.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/webgl/helloqt.html b/basicsuite/webengine/content/webgl/helloqt.html
deleted file mode 100644
index 95f0a44..0000000
--- a/basicsuite/webengine/content/webgl/helloqt.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
- <style>
- body {
- margin: 0px;
- overflow: hidden;
- background-color: black;
- }
- canvas {
-/* -webkit-transform: scale3d(2.0, 2.0, 1.0);
- -webkit-transform-origin: 0 0 0;
- -moz-transform: scale3d(2.0, 2.0, 1.0);
- -moz-transform-origin: 0 0 0;*/
- }
- </style>
- </head>
-
- <body>
- <div id="container"></div>
- <script src="three.min.js"></script>
- <script id="vsChecker" type="x-shader/x-vertex">
-varying vec2 vUv;
-void main()
-{
- vUv = uv;
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
-}
- </script>
- <script id="fsChecker" type="x-shader/x-fragment">
-varying vec2 vUv;
-uniform float dy;
-void main()
-{
- vec3 c = vec3(0.0);
- float x = 4.0 * vUv.x;
- float y = 4.0 * vUv.y + dy;
- if (fract(x) > 0.5 ^^ fract(y) > 0.5)
- c = vec3(1.0);
- gl_FragColor = vec4(c, 1.0);
-}
- </script>
- <script src="qtlogo.js"></script>
- <script src="helloqt.js"></script>
- </body>
-
-</html>
diff --git a/basicsuite/webengine/content/webgl/helloqt.js b/basicsuite/webengine/content/webgl/helloqt.js
deleted file mode 100644
index b514628..0000000
--- a/basicsuite/webengine/content/webgl/helloqt.js
+++ /dev/null
@@ -1,223 +0,0 @@
-var shadow = false;
-
-var container = document.getElementById("container");
-var camera = null;
-var scene;
-var renderer;
-var cbTexture;
-var cbScene;
-var cbCamera;
-var cbUniforms = {
- dy: { type: "f", value: 0 }
-};
-var cb;
-var logo;
-var spotlight;
-
-var viewSize = {
- w: 0,
- h: 0,
- update: function () {
- viewSize.w = window.innerWidth;// / 2;
- viewSize.h = window.innerHeight;// / 2;
- }
-};
-
-var onResize = function (event) {
- viewSize.update();
- if (!camera) {
- camera = new THREE.PerspectiveCamera(60, viewSize.w / viewSize.h, 0.01, 100);
- } else {
- camera.aspect = viewSize.w / viewSize.h;
- camera.updateProjectionMatrix();
- }
- renderer.setSize(viewSize.w, viewSize.h);
-};
-
-var setupCheckerboard = function () {
- cbTexture = new THREE.WebGLRenderTarget(512, 512,
- { minFilter: THREE.LinearFilter,
- magFilter: THREE.LinearFilter,
- format: THREE.RGBFormat });
- cbScene = new THREE.Scene();
- cbCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, -100, 100);
- var geom = new THREE.PlaneGeometry(2, 2);
- var material = new THREE.ShaderMaterial({
- uniforms: cbUniforms,
- vertexShader: document.getElementById("vsChecker").textContent,
- fragmentShader: document.getElementById("fsChecker").textContent
- });
- var mesh = new THREE.Mesh(geom, material);
- cbScene.add(mesh);
-};
-
-var renderCheckerboard = function () {
- cbUniforms.dy.value += 0.01;
- renderer.render(cbScene, cbCamera, cbTexture, true);
-};
-
-var generateLogo = function () {
- var geom = new THREE.Geometry();
- var idx = 0;
- for (var i = 0; i < qtlogo.length; i += 18) {
- geom.vertices.push(new THREE.Vector3(qtlogo[i], qtlogo[i+1], qtlogo[i+2]));
- var n1 = new THREE.Vector3(qtlogo[i+3], qtlogo[i+4], qtlogo[i+5]);
- geom.vertices.push(new THREE.Vector3(qtlogo[i+6], qtlogo[i+7], qtlogo[i+8]));
- var n2 = new THREE.Vector3(qtlogo[i+9], qtlogo[i+10], qtlogo[i+11]);
- geom.vertices.push(new THREE.Vector3(qtlogo[i+12], qtlogo[i+13], qtlogo[i+14]));
- var n3 = new THREE.Vector3(qtlogo[i+15], qtlogo[i+16], qtlogo[i+17]);
- geom.faces.push(new THREE.Face3(idx, idx+1, idx+2, [n1, n2, n3]));
- idx += 3;
- }
- return geom;
-};
-
-var setupScene = function () {
- if (shadow)
- renderer.shadowMapEnabled = true;
-
- setupCheckerboard();
- var geom = new THREE.PlaneGeometry(4, 4);
- var material = new THREE.MeshPhongMaterial({ ambient: 0x060606,
- color: 0x40B000,
- specular: 0x03AA00,
- shininess: 10,
- map: cbTexture });
- cb = new THREE.Mesh(geom, material);
- if (shadow)
- cb.receiveShadow = true;
-// cb.rotation.x = -Math.PI / 3;
- scene.add(cb);
-
- geom = generateLogo();
- material = new THREE.MeshPhongMaterial({ ambient: 0x060606,
- color: 0x40B000,
- specular: 0x03AA00,
- shininess: 10 });
- logo = new THREE.Mesh(geom, material);
- logo.position.z = 2;
- logo.rotation.x = Math.PI;
- if (shadow)
- logo.castShadow = true;
- scene.add(logo);
-
- spotlight = new THREE.SpotLight(0xFFFFFF);
- spotlight.position.set(0, 0.5, 4);
- scene.add(spotlight);
-
- if (shadow) {
- spotlight.castShadow = true;
- spotlight.shadowCameraNear = 0.01;
- spotlight.shadowCameraFar = 100;
- spotlight.shadowDarkness = 0.5;
- spotlight.shadowMapWidth = 1024;
- spotlight.shadowMapHeight = 1024;
- }
-
- camera.position.z = 4;
-};
-
-var render = function () {
- requestAnimationFrame(render);
- renderCheckerboard();
- renderer.render(scene, camera);
- logo.rotation.y += 0.01;
-};
-
-var pointerState = {
- x: 0,
- y: 0,
- active: false,
- touchId: 0
-};
-
-var onMouseDown = function (e) {
- e.preventDefault();
- if (pointerState.active)
- return;
-
- if (e.changedTouches) {
- var t = e.changedTouches[0];
- pointerState.touchId = t.identifier;
- pointerState.x = t.clientX;
- pointerState.y = t.clientY;
- } else {
- pointerState.x = e.clientX;
- pointerState.y = e.clientY;
- }
- pointerState.active = true;
-};
-
-var onMouseUp = function (e) {
- e.preventDefault();
- if (!pointerState.active)
- return;
-
- if (e.changedTouches) {
- for (var i = 0; i < e.changedTouches.length; ++i)
- if (e.changedTouches[i].identifier == pointerState.touchId) {
- pointerState.active = false;
- break;
- }
- } else {
- pointerState.active = false;
- }
-};
-
-var onMouseMove = function (e) {
- e.preventDefault();
- if (!pointerState.active)
- return;
-
- var x, y;
- if (e.changedTouches) {
- for (var i = 0; i < e.changedTouches.length; ++i)
- if (e.changedTouches[i].identifier == pointerState.touchId) {
- x = e.changedTouches[i].clientX;
- y = e.changedTouches[i].clientY;
- break;
- }
- } else {
- x = e.clientX;
- y = e.clientY;
- }
- if (x === undefined)
- return;
-
- var dx = x - pointerState.x;
- var dy = y - pointerState.y;
- pointerState.x = x;
- pointerState.y = y;
- dx /= 100;
- dy /= -100;
- spotlight.target.position.set(spotlight.target.position.x + dx,
- spotlight.target.position.y + dy,
- 0);
-};
-
-var main = function () {
- scene = new THREE.Scene();
- try {
- renderer = new THREE.WebGLRenderer({ antialias: false /*true*/ });
- } catch (e) {
- console.log("Could not create WebGLRenderer.");
- container.innerHTML = noWebGLMessage= "<div style=\"font-family: monospace; font-size: 13px; margin: 5em auto 0px; padding: 2em; width: 400px; "
- + "height 100px; text-align: center; background-color: rgb(238, 238, 238);\">WebGLRenderer could not be created.</div>";
- return;
- }
-
- container.appendChild(renderer.domElement);
- onResize();
- window.addEventListener("resize", onResize);
- window.addEventListener("mousedown", onMouseDown);
- window.addEventListener("touchstart", onMouseDown);
- window.addEventListener("mouseup", onMouseUp);
- window.addEventListener("touchend", onMouseUp);
- window.addEventListener("touchcancel", onMouseUp);
- window.addEventListener("mousemove", onMouseMove);
- window.addEventListener("touchmove", onMouseMove);
- setupScene();
- render();
-};
-
-main();
diff --git a/basicsuite/webengine/content/webgl/qtlogo.js b/basicsuite/webengine/content/webgl/qtlogo.js
deleted file mode 100644
index e2eba96..0000000
--- a/basicsuite/webengine/content/webgl/qtlogo.js
+++ /dev/null
@@ -1,2468 +0,0 @@
-var qtlogo = [
-0.060000,-0.140000,-0.050000,0.000000,0.000000,-1.000000,
--0.140000,0.060000,-0.050000,0.000000,0.000000,-1.000000,
-0.140000,-0.060000,-0.050000,0.000000,0.000000,-1.000000,
--0.060000,0.140000,-0.050000,0.000000,0.000000,-1.000000,
-0.140000,-0.060000,-0.050000,0.000000,0.000000,-1.000000,
--0.140000,0.060000,-0.050000,0.000000,0.000000,-1.000000,
--0.140000,0.060000,0.050000,0.000000,0.000000,1.000000,
-0.060000,-0.140000,0.050000,0.000000,0.000000,1.000000,
-0.140000,-0.060000,0.050000,0.000000,0.000000,1.000000,
-0.140000,-0.060000,0.050000,0.000000,0.000000,1.000000,
--0.060000,0.140000,0.050000,0.000000,0.000000,1.000000,
--0.140000,0.060000,0.050000,0.000000,0.000000,1.000000,
-0.080000,0.000000,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.080000,-0.050000,0.000000,0.000000,-1.000000,
-0.300000,0.220000,-0.050000,0.000000,0.000000,-1.000000,
-0.220000,0.300000,-0.050000,0.000000,0.000000,-1.000000,
-0.300000,0.220000,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.080000,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.080000,0.050000,0.000000,0.000000,1.000000,
-0.080000,0.000000,0.050000,0.000000,0.000000,1.000000,
-0.300000,0.220000,0.050000,0.000000,0.000000,1.000000,
-0.300000,0.220000,0.050000,0.000000,0.000000,1.000000,
-0.220000,0.300000,0.050000,0.000000,0.000000,1.000000,
-0.000000,0.080000,0.050000,0.000000,0.000000,1.000000,
-0.060000,-0.140000,0.050000,0.707107,-0.707107,0.000000,
-0.060000,-0.140000,-0.050000,0.707107,-0.707107,0.000000,
-0.140000,-0.060000,0.050000,0.707107,-0.707107,0.000000,
-0.140000,-0.060000,-0.050000,0.707107,-0.707107,0.000000,
-0.140000,-0.060000,0.050000,0.707107,-0.707107,0.000000,
-0.060000,-0.140000,-0.050000,0.707107,-0.707107,0.000000,
-0.140000,-0.060000,0.050000,0.707107,0.707107,0.000000,
-0.140000,-0.060000,-0.050000,0.707107,0.707107,0.000000,
--0.060000,0.140000,0.050000,0.707107,0.707107,0.000000,
--0.060000,0.140000,-0.050000,0.707107,0.707107,0.000000,
--0.060000,0.140000,0.050000,0.707107,0.707107,0.000000,
-0.140000,-0.060000,-0.050000,0.707107,0.707107,0.000000,
--0.060000,0.140000,0.050000,-0.707107,0.707107,0.000000,
--0.060000,0.140000,-0.050000,-0.707107,0.707107,0.000000,
--0.140000,0.060000,0.050000,-0.707107,0.707107,0.000000,
--0.140000,0.060000,-0.050000,-0.707107,0.707107,0.000000,
--0.140000,0.060000,0.050000,-0.707107,0.707107,0.000000,
--0.060000,0.140000,-0.050000,-0.707107,0.707107,0.000000,
--0.140000,0.060000,0.050000,-0.707107,-0.707107,0.000000,
--0.140000,0.060000,-0.050000,-0.707107,-0.707107,0.000000,
-0.060000,-0.140000,0.050000,-0.707107,-0.707107,0.000000,
-0.060000,-0.140000,-0.050000,-0.707107,-0.707107,0.000000,
-0.060000,-0.140000,0.050000,-0.707107,-0.707107,0.000000,
--0.140000,0.060000,-0.050000,-0.707107,-0.707107,0.000000,
-0.080000,0.000000,0.050000,0.707107,-0.707107,0.000000,
-0.080000,0.000000,-0.050000,0.707107,-0.707107,0.000000,
-0.300000,0.220000,0.050000,0.707107,-0.707107,0.000000,
-0.300000,0.220000,-0.050000,0.707107,-0.707107,0.000000,
-0.300000,0.220000,0.050000,0.707107,-0.707107,0.000000,
-0.080000,0.000000,-0.050000,0.707107,-0.707107,0.000000,
-0.300000,0.220000,0.050000,0.707107,0.707107,0.000000,
-0.300000,0.220000,-0.050000,0.707107,0.707107,0.000000,
-0.220000,0.300000,0.050000,0.707107,0.707107,0.000000,
-0.220000,0.300000,-0.050000,0.707107,0.707107,0.000000,
-0.220000,0.300000,0.050000,0.707107,0.707107,0.000000,
-0.300000,0.220000,-0.050000,0.707107,0.707107,0.000000,
-0.220000,0.300000,0.050000,-0.707107,0.707107,0.000000,
-0.220000,0.300000,-0.050000,-0.707107,0.707107,0.000000,
-0.000000,0.080000,0.050000,-0.707107,0.707107,0.000000,
-0.000000,0.080000,-0.050000,-0.707107,0.707107,0.000000,
-0.000000,0.080000,0.050000,-0.707107,0.707107,0.000000,
-0.220000,0.300000,-0.050000,-0.707107,0.707107,0.000000,
-0.000000,0.300000,-0.050000,0.000000,0.000000,-1.000000,
-0.018837,0.299408,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.200000,-0.050000,0.000000,0.000000,-1.000000,
-0.012558,0.199605,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.200000,-0.050000,0.000000,0.000000,-1.000000,
-0.018837,0.299408,-0.050000,0.000000,0.000000,-1.000000,
-0.018837,0.299408,0.050000,0.000000,0.000000,1.000000,
-0.000000,0.300000,0.050000,0.000000,0.000000,1.000000,
-0.000000,0.200000,0.050000,0.000000,0.000000,1.000000,
-0.000000,0.200000,0.050000,0.000000,0.000000,1.000000,
-0.012558,0.199605,0.050000,0.000000,0.000000,1.000000,
-0.018837,0.299408,0.050000,0.000000,0.000000,1.000000,
-0.000000,0.200000,0.050000,-0.031411,-0.999507,0.000000,
-0.000000,0.200000,-0.050000,-0.031411,-0.999507,0.000000,
-0.012558,0.199605,0.050000,-0.031411,-0.999507,0.000000,
-0.012558,0.199605,-0.050000,-0.031411,-0.999507,0.000000,
-0.012558,0.199605,0.050000,-0.031411,-0.999507,0.000000,
-0.000000,0.200000,-0.050000,-0.031411,-0.999507,0.000000,
-0.018837,0.299408,0.050000,0.031411,0.999507,0.000000,
-0.018837,0.299408,-0.050000,0.031411,0.999507,0.000000,
-0.000000,0.300000,0.050000,0.031411,0.999507,0.000000,
-0.000000,0.300000,-0.050000,0.031411,0.999507,0.000000,
-0.000000,0.300000,0.050000,0.031411,0.999507,0.000000,
-0.018837,0.299408,-0.050000,0.031411,0.999507,0.000000,
-0.018837,0.299408,-0.050000,0.000000,0.000000,-1.000000,
-0.037600,0.297634,-0.050000,0.000000,0.000000,-1.000000,
-0.012558,0.199605,-0.050000,0.000000,0.000000,-1.000000,
-0.025067,0.198423,-0.050000,0.000000,0.000000,-1.000000,
-0.012558,0.199605,-0.050000,0.000000,0.000000,-1.000000,
-0.037600,0.297634,-0.050000,0.000000,0.000000,-1.000000,
-0.037600,0.297634,0.050000,0.000000,0.000000,1.000000,
-0.018837,0.299408,0.050000,0.000000,0.000000,1.000000,
-0.012558,0.199605,0.050000,0.000000,0.000000,1.000000,
-0.012558,0.199605,0.050000,0.000000,0.000000,1.000000,
-0.025067,0.198423,0.050000,0.000000,0.000000,1.000000,
-0.037600,0.297634,0.050000,0.000000,0.000000,1.000000,
-0.012558,0.199605,0.050000,-0.094107,-0.995562,0.000000,
-0.012558,0.199605,-0.050000,-0.094107,-0.995562,0.000000,
-0.025067,0.198423,0.050000,-0.094107,-0.995562,0.000000,
-0.025067,0.198423,-0.050000,-0.094107,-0.995562,0.000000,
-0.025067,0.198423,0.050000,-0.094107,-0.995562,0.000000,
-0.012558,0.199605,-0.050000,-0.094107,-0.995562,0.000000,
-0.037600,0.297634,0.050000,0.094108,0.995562,0.000000,
-0.037600,0.297634,-0.050000,0.094108,0.995562,0.000000,
-0.018837,0.299408,0.050000,0.094108,0.995562,0.000000,
-0.018837,0.299408,-0.050000,0.094108,0.995562,0.000000,
-0.018837,0.299408,0.050000,0.094108,0.995562,0.000000,
-0.037600,0.297634,-0.050000,0.094108,0.995562,0.000000,
-0.037600,0.297634,-0.050000,0.000000,0.000000,-1.000000,
-0.056214,0.294686,-0.050000,0.000000,0.000000,-1.000000,
-0.025067,0.198423,-0.050000,0.000000,0.000000,-1.000000,
-0.037476,0.196457,-0.050000,0.000000,0.000000,-1.000000,
-0.025067,0.198423,-0.050000,0.000000,0.000000,-1.000000,
-0.056214,0.294686,-0.050000,0.000000,0.000000,-1.000000,
-0.056214,0.294686,0.050000,0.000000,0.000000,1.000000,
-0.037600,0.297634,0.050000,0.000000,0.000000,1.000000,
-0.025067,0.198423,0.050000,0.000000,0.000000,1.000000,
-0.025067,0.198423,0.050000,0.000000,0.000000,1.000000,
-0.037476,0.196457,0.050000,0.000000,0.000000,1.000000,
-0.056214,0.294686,0.050000,0.000000,0.000000,1.000000,
-0.025067,0.198423,0.050000,-0.156436,-0.987688,0.000000,
-0.025067,0.198423,-0.050000,-0.156436,-0.987688,0.000000,
-0.037476,0.196457,0.050000,-0.156436,-0.987688,0.000000,
-0.037476,0.196457,-0.050000,-0.156436,-0.987688,0.000000,
-0.037476,0.196457,0.050000,-0.156436,-0.987688,0.000000,
-0.025067,0.198423,-0.050000,-0.156436,-0.987688,0.000000,
-0.056214,0.294686,0.050000,0.156435,0.987688,0.000000,
-0.056214,0.294686,-0.050000,0.156435,0.987688,0.000000,
-0.037600,0.297634,0.050000,0.156435,0.987688,0.000000,
-0.037600,0.297634,-0.050000,0.156435,0.987688,0.000000,
-0.037600,0.297634,0.050000,0.156435,0.987688,0.000000,
-0.056214,0.294686,-0.050000,0.156435,0.987688,0.000000,
-0.056214,0.294686,-0.050000,0.000000,0.000000,-1.000000,
-0.074607,0.290575,-0.050000,0.000000,0.000000,-1.000000,
-0.037476,0.196457,-0.050000,0.000000,0.000000,-1.000000,
-0.049738,0.193717,-0.050000,0.000000,0.000000,-1.000000,
-0.037476,0.196457,-0.050000,0.000000,0.000000,-1.000000,
-0.074607,0.290575,-0.050000,0.000000,0.000000,-1.000000,
-0.074607,0.290575,0.050000,0.000000,0.000000,1.000000,
-0.056214,0.294686,0.050000,0.000000,0.000000,1.000000,
-0.037476,0.196457,0.050000,0.000000,0.000000,1.000000,
-0.037476,0.196457,0.050000,0.000000,0.000000,1.000000,
-0.049738,0.193717,0.050000,0.000000,0.000000,1.000000,
-0.074607,0.290575,0.050000,0.000000,0.000000,1.000000,
-0.037476,0.196457,0.050000,-0.218143,-0.975917,0.000000,
-0.037476,0.196457,-0.050000,-0.218143,-0.975917,0.000000,
-0.049738,0.193717,0.050000,-0.218143,-0.975917,0.000000,
-0.049738,0.193717,-0.050000,-0.218143,-0.975917,0.000000,
-0.049738,0.193717,0.050000,-0.218143,-0.975917,0.000000,
-0.037476,0.196457,-0.050000,-0.218143,-0.975917,0.000000,
-0.074607,0.290575,0.050000,0.218142,0.975917,0.000000,
-0.074607,0.290575,-0.050000,0.218142,0.975917,0.000000,
-0.056214,0.294686,0.050000,0.218142,0.975917,0.000000,
-0.056214,0.294686,-0.050000,0.218142,0.975917,0.000000,
-0.056214,0.294686,0.050000,0.218142,0.975917,0.000000,
-0.074607,0.290575,-0.050000,0.218142,0.975917,0.000000,
-0.074607,0.290575,-0.050000,0.000000,0.000000,-1.000000,
-0.092705,0.285317,-0.050000,0.000000,0.000000,-1.000000,
-0.049738,0.193717,-0.050000,0.000000,0.000000,-1.000000,
-0.061803,0.190211,-0.050000,0.000000,0.000000,-1.000000,
-0.049738,0.193717,-0.050000,0.000000,0.000000,-1.000000,
-0.092705,0.285317,-0.050000,0.000000,0.000000,-1.000000,
-0.092705,0.285317,0.050000,0.000000,0.000000,1.000000,
-0.074607,0.290575,0.050000,0.000000,0.000000,1.000000,
-0.049738,0.193717,0.050000,0.000000,0.000000,1.000000,
-0.049738,0.193717,0.050000,0.000000,0.000000,1.000000,
-0.061803,0.190211,0.050000,0.000000,0.000000,1.000000,
-0.092705,0.285317,0.050000,0.000000,0.000000,1.000000,
-0.049738,0.193717,0.050000,-0.278990,-0.960294,0.000000,
-0.049738,0.193717,-0.050000,-0.278990,-0.960294,0.000000,
-0.061803,0.190211,0.050000,-0.278990,-0.960294,0.000000,
-0.061803,0.190211,-0.050000,-0.278990,-0.960294,0.000000,
-0.061803,0.190211,0.050000,-0.278990,-0.960294,0.000000,
-0.049738,0.193717,-0.050000,-0.278990,-0.960294,0.000000,
-0.092705,0.285317,0.050000,0.278991,0.960294,0.000000,
-0.092705,0.285317,-0.050000,0.278991,0.960294,0.000000,
-0.074607,0.290575,0.050000,0.278991,0.960294,0.000000,
-0.074607,0.290575,-0.050000,0.278991,0.960294,0.000000,
-0.074607,0.290575,0.050000,0.278991,0.960294,0.000000,
-0.092705,0.285317,-0.050000,0.278991,0.960294,0.000000,
-0.092705,0.285317,-0.050000,0.000000,0.000000,-1.000000,
-0.110437,0.278933,-0.050000,0.000000,0.000000,-1.000000,
-0.061803,0.190211,-0.050000,0.000000,0.000000,-1.000000,
-0.073625,0.185955,-0.050000,0.000000,0.000000,-1.000000,
-0.061803,0.190211,-0.050000,0.000000,0.000000,-1.000000,
-0.110437,0.278933,-0.050000,0.000000,0.000000,-1.000000,
-0.110437,0.278933,0.050000,0.000000,0.000000,1.000000,
-0.092705,0.285317,0.050000,0.000000,0.000000,1.000000,
-0.061803,0.190211,0.050000,0.000000,0.000000,1.000000,
-0.061803,0.190211,0.050000,0.000000,0.000000,1.000000,
-0.073625,0.185955,0.050000,0.000000,0.000000,1.000000,
-0.110437,0.278933,0.050000,0.000000,0.000000,1.000000,
-0.061803,0.190211,0.050000,-0.338738,-0.940881,0.000000,
-0.061803,0.190211,-0.050000,-0.338738,-0.940881,0.000000,
-0.073625,0.185955,0.050000,-0.338738,-0.940881,0.000000,
-0.073625,0.185955,-0.050000,-0.338738,-0.940881,0.000000,
-0.073625,0.185955,0.050000,-0.338738,-0.940881,0.000000,
-0.061803,0.190211,-0.050000,-0.338738,-0.940881,0.000000,
-0.110437,0.278933,0.050000,0.338738,0.940881,0.000000,
-0.110437,0.278933,-0.050000,0.338738,0.940881,0.000000,
-0.092705,0.285317,0.050000,0.338738,0.940881,0.000000,
-0.092705,0.285317,-0.050000,0.338738,0.940881,0.000000,
-0.092705,0.285317,0.050000,0.338738,0.940881,0.000000,
-0.110437,0.278933,-0.050000,0.338738,0.940881,0.000000,
-0.110437,0.278933,-0.050000,0.000000,0.000000,-1.000000,
-0.127734,0.271448,-0.050000,0.000000,0.000000,-1.000000,
-0.073625,0.185955,-0.050000,0.000000,0.000000,-1.000000,
-0.085156,0.180965,-0.050000,0.000000,0.000000,-1.000000,
-0.073625,0.185955,-0.050000,0.000000,0.000000,-1.000000,
-0.127734,0.271448,-0.050000,0.000000,0.000000,-1.000000,
-0.127734,0.271448,0.050000,0.000000,0.000000,1.000000,
-0.110437,0.278933,0.050000,0.000000,0.000000,1.000000,
-0.073625,0.185955,0.050000,0.000000,0.000000,1.000000,
-0.073625,0.185955,0.050000,0.000000,0.000000,1.000000,
-0.085156,0.180965,0.050000,0.000000,0.000000,1.000000,
-0.127734,0.271448,0.050000,0.000000,0.000000,1.000000,
-0.073625,0.185955,0.050000,-0.397148,-0.917754,0.000000,
-0.073625,0.185955,-0.050000,-0.397148,-0.917754,0.000000,
-0.085156,0.180965,0.050000,-0.397148,-0.917754,0.000000,
-0.085156,0.180965,-0.050000,-0.397148,-0.917754,0.000000,
-0.085156,0.180965,0.050000,-0.397148,-0.917754,0.000000,
-0.073625,0.185955,-0.050000,-0.397148,-0.917754,0.000000,
-0.127734,0.271448,0.050000,0.397148,0.917755,0.000000,
-0.127734,0.271448,-0.050000,0.397148,0.917755,0.000000,
-0.110437,0.278933,0.050000,0.397148,0.917755,0.000000,
-0.110437,0.278933,-0.050000,0.397148,0.917755,0.000000,
-0.110437,0.278933,0.050000,0.397148,0.917755,0.000000,
-0.127734,0.271448,-0.050000,0.397148,0.917755,0.000000,
-0.127734,0.271448,-0.050000,0.000000,0.000000,-1.000000,
-0.144526,0.262892,-0.050000,0.000000,0.000000,-1.000000,
-0.085156,0.180965,-0.050000,0.000000,0.000000,-1.000000,
-0.096351,0.175261,-0.050000,0.000000,0.000000,-1.000000,
-0.085156,0.180965,-0.050000,0.000000,0.000000,-1.000000,
-0.144526,0.262892,-0.050000,0.000000,0.000000,-1.000000,
-0.144526,0.262892,0.050000,0.000000,0.000000,1.000000,
-0.127734,0.271448,0.050000,0.000000,0.000000,1.000000,
-0.085156,0.180965,0.050000,0.000000,0.000000,1.000000,
-0.085156,0.180965,0.050000,0.000000,0.000000,1.000000,
-0.096351,0.175261,0.050000,0.000000,0.000000,1.000000,
-0.144526,0.262892,0.050000,0.000000,0.000000,1.000000,
-0.085156,0.180965,0.050000,-0.453990,-0.891007,0.000000,
-0.085156,0.180965,-0.050000,-0.453990,-0.891007,0.000000,
-0.096351,0.175261,0.050000,-0.453990,-0.891007,0.000000,
-0.096351,0.175261,-0.050000,-0.453990,-0.891007,0.000000,
-0.096351,0.175261,0.050000,-0.453990,-0.891007,0.000000,
-0.085156,0.180965,-0.050000,-0.453990,-0.891007,0.000000,
-0.144526,0.262892,0.050000,0.453991,0.891006,0.000000,
-0.144526,0.262892,-0.050000,0.453991,0.891006,0.000000,
-0.127734,0.271448,0.050000,0.453991,0.891006,0.000000,
-0.127734,0.271448,-0.050000,0.453991,0.891006,0.000000,
-0.127734,0.271448,0.050000,0.453991,0.891006,0.000000,
-0.144526,0.262892,-0.050000,0.453991,0.891006,0.000000,
-0.144526,0.262892,-0.050000,0.000000,0.000000,-1.000000,
-0.160748,0.253298,-0.050000,0.000000,0.000000,-1.000000,
-0.096351,0.175261,-0.050000,0.000000,0.000000,-1.000000,
-0.107165,0.168866,-0.050000,0.000000,0.000000,-1.000000,
-0.096351,0.175261,-0.050000,0.000000,0.000000,-1.000000,
-0.160748,0.253298,-0.050000,0.000000,0.000000,-1.000000,
-0.160748,0.253298,0.050000,0.000000,0.000000,1.000000,
-0.144526,0.262892,0.050000,0.000000,0.000000,1.000000,
-0.096351,0.175261,0.050000,0.000000,0.000000,1.000000,
-0.096351,0.175261,0.050000,0.000000,0.000000,1.000000,
-0.107165,0.168866,0.050000,0.000000,0.000000,1.000000,
-0.160748,0.253298,0.050000,0.000000,0.000000,1.000000,
-0.096351,0.175261,0.050000,-0.509041,-0.860742,0.000000,
-0.096351,0.175261,-0.050000,-0.509041,-0.860742,0.000000,
-0.107165,0.168866,0.050000,-0.509041,-0.860742,0.000000,
-0.107165,0.168866,-0.050000,-0.509041,-0.860742,0.000000,
-0.107165,0.168866,0.050000,-0.509041,-0.860742,0.000000,
-0.096351,0.175261,-0.050000,-0.509041,-0.860742,0.000000,
-0.160748,0.253298,0.050000,0.509041,0.860742,0.000000,
-0.160748,0.253298,-0.050000,0.509041,0.860742,0.000000,
-0.144526,0.262892,0.050000,0.509041,0.860742,0.000000,
-0.144526,0.262892,-0.050000,0.509041,0.860742,0.000000,
-0.144526,0.262892,0.050000,0.509041,0.860742,0.000000,
-0.160748,0.253298,-0.050000,0.509041,0.860742,0.000000,
-0.160748,0.253298,-0.050000,0.000000,0.000000,-1.000000,
-0.176336,0.242705,-0.050000,0.000000,0.000000,-1.000000,
-0.107165,0.168866,-0.050000,0.000000,0.000000,-1.000000,
-0.117557,0.161803,-0.050000,0.000000,0.000000,-1.000000,
-0.107165,0.168866,-0.050000,0.000000,0.000000,-1.000000,
-0.176336,0.242705,-0.050000,0.000000,0.000000,-1.000000,
-0.176336,0.242705,0.050000,0.000000,0.000000,1.000000,
-0.160748,0.253298,0.050000,0.000000,0.000000,1.000000,
-0.107165,0.168866,0.050000,0.000000,0.000000,1.000000,
-0.107165,0.168866,0.050000,0.000000,0.000000,1.000000,
-0.117557,0.161803,0.050000,0.000000,0.000000,1.000000,
-0.176336,0.242705,0.050000,0.000000,0.000000,1.000000,
-0.107165,0.168866,0.050000,-0.562083,-0.827081,0.000000,
-0.107165,0.168866,-0.050000,-0.562083,-0.827081,0.000000,
-0.117557,0.161803,0.050000,-0.562083,-0.827081,0.000000,
-0.117557,0.161803,-0.050000,-0.562083,-0.827081,0.000000,
-0.117557,0.161803,0.050000,-0.562083,-0.827081,0.000000,
-0.107165,0.168866,-0.050000,-0.562083,-0.827081,0.000000,
-0.176336,0.242705,0.050000,0.562084,0.827080,0.000000,
-0.176336,0.242705,-0.050000,0.562084,0.827080,0.000000,
-0.160748,0.253298,0.050000,0.562084,0.827080,0.000000,
-0.160748,0.253298,-0.050000,0.562084,0.827080,0.000000,
-0.160748,0.253298,0.050000,0.562084,0.827080,0.000000,
-0.176336,0.242705,-0.050000,0.562084,0.827080,0.000000,
-0.176336,0.242705,-0.050000,0.000000,0.000000,-1.000000,
-0.191227,0.231154,-0.050000,0.000000,0.000000,-1.000000,
-0.117557,0.161803,-0.050000,0.000000,0.000000,-1.000000,
-0.127485,0.154103,-0.050000,0.000000,0.000000,-1.000000,
-0.117557,0.161803,-0.050000,0.000000,0.000000,-1.000000,
-0.191227,0.231154,-0.050000,0.000000,0.000000,-1.000000,
-0.191227,0.231154,0.050000,0.000000,0.000000,1.000000,
-0.176336,0.242705,0.050000,0.000000,0.000000,1.000000,
-0.117557,0.161803,0.050000,0.000000,0.000000,1.000000,
-0.117557,0.161803,0.050000,0.000000,0.000000,1.000000,
-0.127485,0.154103,0.050000,0.000000,0.000000,1.000000,
-0.191227,0.231154,0.050000,0.000000,0.000000,1.000000,
-0.117557,0.161803,0.050000,-0.612907,-0.790155,0.000000,
-0.117557,0.161803,-0.050000,-0.612907,-0.790155,0.000000,
-0.127485,0.154103,0.050000,-0.612907,-0.790155,0.000000,
-0.127485,0.154103,-0.050000,-0.612907,-0.790155,0.000000,
-0.127485,0.154103,0.050000,-0.612907,-0.790155,0.000000,
-0.117557,0.161803,-0.050000,-0.612907,-0.790155,0.000000,
-0.191227,0.231154,0.050000,0.612907,0.790155,0.000000,
-0.191227,0.231154,-0.050000,0.612907,0.790155,0.000000,
-0.176336,0.242705,0.050000,0.612907,0.790155,0.000000,
-0.176336,0.242705,-0.050000,0.612907,0.790155,0.000000,
-0.176336,0.242705,0.050000,0.612907,0.790155,0.000000,
-0.191227,0.231154,-0.050000,0.612907,0.790155,0.000000,
-0.191227,0.231154,-0.050000,0.000000,0.000000,-1.000000,
-0.205364,0.218691,-0.050000,0.000000,0.000000,-1.000000,
-0.127485,0.154103,-0.050000,0.000000,0.000000,-1.000000,
-0.136909,0.145794,-0.050000,0.000000,0.000000,-1.000000,
-0.127485,0.154103,-0.050000,0.000000,0.000000,-1.000000,
-0.205364,0.218691,-0.050000,0.000000,0.000000,-1.000000,
-0.205364,0.218691,0.050000,0.000000,0.000000,1.000000,
-0.191227,0.231154,0.050000,0.000000,0.000000,1.000000,
-0.127485,0.154103,0.050000,0.000000,0.000000,1.000000,
-0.127485,0.154103,0.050000,0.000000,0.000000,1.000000,
-0.136909,0.145794,0.050000,0.000000,0.000000,1.000000,
-0.205364,0.218691,0.050000,0.000000,0.000000,1.000000,
-0.127485,0.154103,0.050000,-0.661312,-0.750111,0.000000,
-0.127485,0.154103,-0.050000,-0.661312,-0.750111,0.000000,
-0.136909,0.145794,0.050000,-0.661312,-0.750111,0.000000,
-0.136909,0.145794,-0.050000,-0.661312,-0.750111,0.000000,
-0.136909,0.145794,0.050000,-0.661312,-0.750111,0.000000,
-0.127485,0.154103,-0.050000,-0.661312,-0.750111,0.000000,
-0.205364,0.218691,0.050000,0.661312,0.750111,0.000000,
-0.205364,0.218691,-0.050000,0.661312,0.750111,0.000000,
-0.191227,0.231154,0.050000,0.661312,0.750111,0.000000,
-0.191227,0.231154,-0.050000,0.661312,0.750111,0.000000,
-0.191227,0.231154,0.050000,0.661312,0.750111,0.000000,
-0.205364,0.218691,-0.050000,0.661312,0.750111,0.000000,
-0.205364,0.218691,-0.050000,0.000000,0.000000,-1.000000,
-0.218691,0.205364,-0.050000,0.000000,0.000000,-1.000000,
-0.136909,0.145794,-0.050000,0.000000,0.000000,-1.000000,
-0.145794,0.136909,-0.050000,0.000000,0.000000,-1.000000,
-0.136909,0.145794,-0.050000,0.000000,0.000000,-1.000000,
-0.218691,0.205364,-0.050000,0.000000,0.000000,-1.000000,
-0.218691,0.205364,0.050000,0.000000,0.000000,1.000000,
-0.205364,0.218691,0.050000,0.000000,0.000000,1.000000,
-0.136909,0.145794,0.050000,0.000000,0.000000,1.000000,
-0.136909,0.145794,0.050000,0.000000,0.000000,1.000000,
-0.145794,0.136909,0.050000,0.000000,0.000000,1.000000,
-0.218691,0.205364,0.050000,0.000000,0.000000,1.000000,
-0.136909,0.145794,0.050000,-0.707107,-0.707107,0.000000,
-0.136909,0.145794,-0.050000,-0.707107,-0.707107,0.000000,
-0.145794,0.136909,0.050000,-0.707107,-0.707107,0.000000,
-0.145794,0.136909,-0.050000,-0.707107,-0.707107,0.000000,
-0.145794,0.136909,0.050000,-0.707107,-0.707107,0.000000,
-0.136909,0.145794,-0.050000,-0.707107,-0.707107,0.000000,
-0.218691,0.205364,0.050000,0.707107,0.707107,0.000000,
-0.218691,0.205364,-0.050000,0.707107,0.707107,0.000000,
-0.205364,0.218691,0.050000,0.707107,0.707107,0.000000,
-0.205364,0.218691,-0.050000,0.707107,0.707107,0.000000,
-0.205364,0.218691,0.050000,0.707107,0.707107,0.000000,
-0.218691,0.205364,-0.050000,0.707107,0.707107,0.000000,
-0.218691,0.205364,-0.050000,0.000000,0.000000,-1.000000,
-0.231154,0.191227,-0.050000,0.000000,0.000000,-1.000000,
-0.145794,0.136909,-0.050000,0.000000,0.000000,-1.000000,
-0.154103,0.127485,-0.050000,0.000000,0.000000,-1.000000,
-0.145794,0.136909,-0.050000,0.000000,0.000000,-1.000000,
-0.231154,0.191227,-0.050000,0.000000,0.000000,-1.000000,
-0.231154,0.191227,0.050000,0.000000,0.000000,1.000000,
-0.218691,0.205364,0.050000,0.000000,0.000000,1.000000,
-0.145794,0.136909,0.050000,0.000000,0.000000,1.000000,
-0.145794,0.136909,0.050000,0.000000,0.000000,1.000000,
-0.154103,0.127485,0.050000,0.000000,0.000000,1.000000,
-0.231154,0.191227,0.050000,0.000000,0.000000,1.000000,
-0.145794,0.136909,0.050000,-0.750111,-0.661312,0.000000,
-0.145794,0.136909,-0.050000,-0.750111,-0.661312,0.000000,
-0.154103,0.127485,0.050000,-0.750111,-0.661312,0.000000,
-0.154103,0.127485,-0.050000,-0.750111,-0.661312,0.000000,
-0.154103,0.127485,0.050000,-0.750111,-0.661312,0.000000,
-0.145794,0.136909,-0.050000,-0.750111,-0.661312,0.000000,
-0.231154,0.191227,0.050000,0.750111,0.661312,0.000000,
-0.231154,0.191227,-0.050000,0.750111,0.661312,0.000000,
-0.218691,0.205364,0.050000,0.750111,0.661312,0.000000,
-0.218691,0.205364,-0.050000,0.750111,0.661312,0.000000,
-0.218691,0.205364,0.050000,0.750111,0.661312,0.000000,
-0.231154,0.191227,-0.050000,0.750111,0.661312,0.000000,
-0.231154,0.191227,-0.050000,0.000000,0.000000,-1.000000,
-0.242705,0.176336,-0.050000,0.000000,0.000000,-1.000000,
-0.154103,0.127485,-0.050000,0.000000,0.000000,-1.000000,
-0.161803,0.117557,-0.050000,0.000000,0.000000,-1.000000,
-0.154103,0.127485,-0.050000,0.000000,0.000000,-1.000000,
-0.242705,0.176336,-0.050000,0.000000,0.000000,-1.000000,
-0.242705,0.176336,0.050000,0.000000,0.000000,1.000000,
-0.231154,0.191227,0.050000,0.000000,0.000000,1.000000,
-0.154103,0.127485,0.050000,0.000000,0.000000,1.000000,
-0.154103,0.127485,0.050000,0.000000,0.000000,1.000000,
-0.161803,0.117557,0.050000,0.000000,0.000000,1.000000,
-0.242705,0.176336,0.050000,0.000000,0.000000,1.000000,
-0.154103,0.127485,0.050000,-0.790155,-0.612907,0.000000,
-0.154103,0.127485,-0.050000,-0.790155,-0.612907,0.000000,
-0.161803,0.117557,0.050000,-0.790155,-0.612907,0.000000,
-0.161803,0.117557,-0.050000,-0.790155,-0.612907,0.000000,
-0.161803,0.117557,0.050000,-0.790155,-0.612907,0.000000,
-0.154103,0.127485,-0.050000,-0.790155,-0.612907,0.000000,
-0.242705,0.176336,0.050000,0.790155,0.612907,0.000000,
-0.242705,0.176336,-0.050000,0.790155,0.612907,0.000000,
-0.231154,0.191227,0.050000,0.790155,0.612907,0.000000,
-0.231154,0.191227,-0.050000,0.790155,0.612907,0.000000,
-0.231154,0.191227,0.050000,0.790155,0.612907,0.000000,
-0.242705,0.176336,-0.050000,0.790155,0.612907,0.000000,
-0.242705,0.176336,-0.050000,0.000000,0.000000,-1.000000,
-0.253298,0.160748,-0.050000,0.000000,0.000000,-1.000000,
-0.161803,0.117557,-0.050000,0.000000,0.000000,-1.000000,
-0.168866,0.107165,-0.050000,0.000000,0.000000,-1.000000,
-0.161803,0.117557,-0.050000,0.000000,0.000000,-1.000000,
-0.253298,0.160748,-0.050000,0.000000,0.000000,-1.000000,
-0.253298,0.160748,0.050000,0.000000,0.000000,1.000000,
-0.242705,0.176336,0.050000,0.000000,0.000000,1.000000,
-0.161803,0.117557,0.050000,0.000000,0.000000,1.000000,
-0.161803,0.117557,0.050000,0.000000,0.000000,1.000000,
-0.168866,0.107165,0.050000,0.000000,0.000000,1.000000,
-0.253298,0.160748,0.050000,0.000000,0.000000,1.000000,
-0.161803,0.117557,0.050000,-0.827081,-0.562083,0.000000,
-0.161803,0.117557,-0.050000,-0.827081,-0.562083,0.000000,
-0.168866,0.107165,0.050000,-0.827081,-0.562083,0.000000,
-0.168866,0.107165,-0.050000,-0.827081,-0.562083,0.000000,
-0.168866,0.107165,0.050000,-0.827081,-0.562083,0.000000,
-0.161803,0.117557,-0.050000,-0.827081,-0.562083,0.000000,
-0.253298,0.160748,0.050000,0.827080,0.562084,0.000000,
-0.253298,0.160748,-0.050000,0.827080,0.562084,0.000000,
-0.242705,0.176336,0.050000,0.827080,0.562084,0.000000,
-0.242705,0.176336,-0.050000,0.827080,0.562084,0.000000,
-0.242705,0.176336,0.050000,0.827080,0.562084,0.000000,
-0.253298,0.160748,-0.050000,0.827080,0.562084,0.000000,
-0.253298,0.160748,-0.050000,0.000000,0.000000,-1.000000,
-0.262892,0.144526,-0.050000,0.000000,0.000000,-1.000000,
-0.168866,0.107165,-0.050000,0.000000,0.000000,-1.000000,
-0.175261,0.096351,-0.050000,0.000000,0.000000,-1.000000,
-0.168866,0.107165,-0.050000,0.000000,0.000000,-1.000000,
-0.262892,0.144526,-0.050000,0.000000,0.000000,-1.000000,
-0.262892,0.144526,0.050000,0.000000,0.000000,1.000000,
-0.253298,0.160748,0.050000,0.000000,0.000000,1.000000,
-0.168866,0.107165,0.050000,0.000000,0.000000,1.000000,
-0.168866,0.107165,0.050000,0.000000,0.000000,1.000000,
-0.175261,0.096351,0.050000,0.000000,0.000000,1.000000,
-0.262892,0.144526,0.050000,0.000000,0.000000,1.000000,
-0.168866,0.107165,0.050000,-0.860742,-0.509041,0.000000,
-0.168866,0.107165,-0.050000,-0.860742,-0.509041,0.000000,
-0.175261,0.096351,0.050000,-0.860742,-0.509041,0.000000,
-0.175261,0.096351,-0.050000,-0.860742,-0.509041,0.000000,
-0.175261,0.096351,0.050000,-0.860742,-0.509041,0.000000,
-0.168866,0.107165,-0.050000,-0.860742,-0.509041,0.000000,
-0.262892,0.144526,0.050000,0.860742,0.509041,0.000000,
-0.262892,0.144526,-0.050000,0.860742,0.509041,0.000000,
-0.253298,0.160748,0.050000,0.860742,0.509041,0.000000,
-0.253298,0.160748,-0.050000,0.860742,0.509041,0.000000,
-0.253298,0.160748,0.050000,0.860742,0.509041,0.000000,
-0.262892,0.144526,-0.050000,0.860742,0.509041,0.000000,
-0.262892,0.144526,-0.050000,0.000000,0.000000,-1.000000,
-0.271448,0.127734,-0.050000,0.000000,0.000000,-1.000000,
-0.175261,0.096351,-0.050000,0.000000,0.000000,-1.000000,
-0.180965,0.085156,-0.050000,0.000000,0.000000,-1.000000,
-0.175261,0.096351,-0.050000,0.000000,0.000000,-1.000000,
-0.271448,0.127734,-0.050000,0.000000,0.000000,-1.000000,
-0.271448,0.127734,0.050000,0.000000,0.000000,1.000000,
-0.262892,0.144526,0.050000,0.000000,0.000000,1.000000,
-0.175261,0.096351,0.050000,0.000000,0.000000,1.000000,
-0.175261,0.096351,0.050000,0.000000,0.000000,1.000000,
-0.180965,0.085156,0.050000,0.000000,0.000000,1.000000,
-0.271448,0.127734,0.050000,0.000000,0.000000,1.000000,
-0.175261,0.096351,0.050000,-0.891007,-0.453991,0.000000,
-0.175261,0.096351,-0.050000,-0.891007,-0.453991,0.000000,
-0.180965,0.085156,0.050000,-0.891007,-0.453991,0.000000,
-0.180965,0.085156,-0.050000,-0.891007,-0.453991,0.000000,
-0.180965,0.085156,0.050000,-0.891007,-0.453991,0.000000,
-0.175261,0.096351,-0.050000,-0.891007,-0.453991,0.000000,
-0.271448,0.127734,0.050000,0.891006,0.453991,0.000000,
-0.271448,0.127734,-0.050000,0.891006,0.453991,0.000000,
-0.262892,0.144526,0.050000,0.891006,0.453991,0.000000,
-0.262892,0.144526,-0.050000,0.891006,0.453991,0.000000,
-0.262892,0.144526,0.050000,0.891006,0.453991,0.000000,
-0.271448,0.127734,-0.050000,0.891006,0.453991,0.000000,
-0.271448,0.127734,-0.050000,0.000000,0.000000,-1.000000,
-0.278933,0.110437,-0.050000,0.000000,0.000000,-1.000000,
-0.180965,0.085156,-0.050000,0.000000,0.000000,-1.000000,
-0.185955,0.073625,-0.050000,0.000000,0.000000,-1.000000,
-0.180965,0.085156,-0.050000,0.000000,0.000000,-1.000000,
-0.278933,0.110437,-0.050000,0.000000,0.000000,-1.000000,
-0.278933,0.110437,0.050000,0.000000,0.000000,1.000000,
-0.271448,0.127734,0.050000,0.000000,0.000000,1.000000,
-0.180965,0.085156,0.050000,0.000000,0.000000,1.000000,
-0.180965,0.085156,0.050000,0.000000,0.000000,1.000000,
-0.185955,0.073625,0.050000,0.000000,0.000000,1.000000,
-0.278933,0.110437,0.050000,0.000000,0.000000,1.000000,
-0.180965,0.085156,0.050000,-0.917755,-0.397148,0.000000,
-0.180965,0.085156,-0.050000,-0.917755,-0.397148,0.000000,
-0.185955,0.073625,0.050000,-0.917755,-0.397148,0.000000,
-0.185955,0.073625,-0.050000,-0.917755,-0.397148,0.000000,
-0.185955,0.073625,0.050000,-0.917755,-0.397148,0.000000,
-0.180965,0.085156,-0.050000,-0.917755,-0.397148,0.000000,
-0.278933,0.110437,0.050000,0.917755,0.397148,0.000000,
-0.278933,0.110437,-0.050000,0.917755,0.397148,0.000000,
-0.271448,0.127734,0.050000,0.917755,0.397148,0.000000,
-0.271448,0.127734,-0.050000,0.917755,0.397148,0.000000,
-0.271448,0.127734,0.050000,0.917755,0.397148,0.000000,
-0.278933,0.110437,-0.050000,0.917755,0.397148,0.000000,
-0.278933,0.110437,-0.050000,0.000000,0.000000,-1.000000,
-0.285317,0.092705,-0.050000,0.000000,0.000000,-1.000000,
-0.185955,0.073625,-0.050000,0.000000,0.000000,-1.000000,
-0.190211,0.061803,-0.050000,0.000000,0.000000,-1.000000,
-0.185955,0.073625,-0.050000,0.000000,0.000000,-1.000000,
-0.285317,0.092705,-0.050000,0.000000,0.000000,-1.000000,
-0.285317,0.092705,0.050000,0.000000,0.000000,1.000000,
-0.278933,0.110437,0.050000,0.000000,0.000000,1.000000,
-0.185955,0.073625,0.050000,0.000000,0.000000,1.000000,
-0.185955,0.073625,0.050000,0.000000,0.000000,1.000000,
-0.190211,0.061803,0.050000,0.000000,0.000000,1.000000,
-0.285317,0.092705,0.050000,0.000000,0.000000,1.000000,
-0.185955,0.073625,0.050000,-0.940881,-0.338738,0.000000,
-0.185955,0.073625,-0.050000,-0.940881,-0.338738,0.000000,
-0.190211,0.061803,0.050000,-0.940881,-0.338738,0.000000,
-0.190211,0.061803,-0.050000,-0.940881,-0.338738,0.000000,
-0.190211,0.061803,0.050000,-0.940881,-0.338738,0.000000,
-0.185955,0.073625,-0.050000,-0.940881,-0.338738,0.000000,
-0.285317,0.092705,0.050000,0.940881,0.338738,0.000000,
-0.285317,0.092705,-0.050000,0.940881,0.338738,0.000000,
-0.278933,0.110437,0.050000,0.940881,0.338738,0.000000,
-0.278933,0.110437,-0.050000,0.940881,0.338738,0.000000,
-0.278933,0.110437,0.050000,0.940881,0.338738,0.000000,
-0.285317,0.092705,-0.050000,0.940881,0.338738,0.000000,
-0.285317,0.092705,-0.050000,0.000000,0.000000,-1.000000,
-0.290575,0.074607,-0.050000,0.000000,0.000000,-1.000000,
-0.190211,0.061803,-0.050000,0.000000,0.000000,-1.000000,
-0.193717,0.049738,-0.050000,0.000000,0.000000,-1.000000,
-0.190211,0.061803,-0.050000,0.000000,0.000000,-1.000000,
-0.290575,0.074607,-0.050000,0.000000,0.000000,-1.000000,
-0.290575,0.074607,0.050000,0.000000,0.000000,1.000000,
-0.285317,0.092705,0.050000,0.000000,0.000000,1.000000,
-0.190211,0.061803,0.050000,0.000000,0.000000,1.000000,
-0.190211,0.061803,0.050000,0.000000,0.000000,1.000000,
-0.193717,0.049738,0.050000,0.000000,0.000000,1.000000,
-0.290575,0.074607,0.050000,0.000000,0.000000,1.000000,
-0.190211,0.061803,0.050000,-0.960294,-0.278991,0.000000,
-0.190211,0.061803,-0.050000,-0.960294,-0.278991,0.000000,
-0.193717,0.049738,0.050000,-0.960294,-0.278991,0.000000,
-0.193717,0.049738,-0.050000,-0.960294,-0.278991,0.000000,
-0.193717,0.049738,0.050000,-0.960294,-0.278991,0.000000,
-0.190211,0.061803,-0.050000,-0.960294,-0.278991,0.000000,
-0.290575,0.074607,0.050000,0.960294,0.278991,0.000000,
-0.290575,0.074607,-0.050000,0.960294,0.278991,0.000000,
-0.285317,0.092705,0.050000,0.960294,0.278991,0.000000,
-0.285317,0.092705,-0.050000,0.960294,0.278991,0.000000,
-0.285317,0.092705,0.050000,0.960294,0.278991,0.000000,
-0.290575,0.074607,-0.050000,0.960294,0.278991,0.000000,
-0.290575,0.074607,-0.050000,0.000000,0.000000,-1.000000,
-0.294686,0.056214,-0.050000,0.000000,0.000000,-1.000000,
-0.193717,0.049738,-0.050000,0.000000,0.000000,-1.000000,
-0.196457,0.037476,-0.050000,0.000000,0.000000,-1.000000,
-0.193717,0.049738,-0.050000,0.000000,0.000000,-1.000000,
-0.294686,0.056214,-0.050000,0.000000,0.000000,-1.000000,
-0.294686,0.056214,0.050000,0.000000,0.000000,1.000000,
-0.290575,0.074607,0.050000,0.000000,0.000000,1.000000,
-0.193717,0.049738,0.050000,0.000000,0.000000,1.000000,
-0.193717,0.049738,0.050000,0.000000,0.000000,1.000000,
-0.196457,0.037476,0.050000,0.000000,0.000000,1.000000,
-0.294686,0.056214,0.050000,0.000000,0.000000,1.000000,
-0.193717,0.049738,0.050000,-0.975917,-0.218143,0.000000,
-0.193717,0.049738,-0.050000,-0.975917,-0.218143,0.000000,
-0.196457,0.037476,0.050000,-0.975917,-0.218143,0.000000,
-0.196457,0.037476,-0.050000,-0.975917,-0.218143,0.000000,
-0.196457,0.037476,0.050000,-0.975917,-0.218143,0.000000,
-0.193717,0.049738,-0.050000,-0.975917,-0.218143,0.000000,
-0.294686,0.056214,0.050000,0.975917,0.218142,0.000000,
-0.294686,0.056214,-0.050000,0.975917,0.218142,0.000000,
-0.290575,0.074607,0.050000,0.975917,0.218142,0.000000,
-0.290575,0.074607,-0.050000,0.975917,0.218142,0.000000,
-0.290575,0.074607,0.050000,0.975917,0.218142,0.000000,
-0.294686,0.056214,-0.050000,0.975917,0.218142,0.000000,
-0.294686,0.056214,-0.050000,0.000000,0.000000,-1.000000,
-0.297634,0.037600,-0.050000,0.000000,0.000000,-1.000000,
-0.196457,0.037476,-0.050000,0.000000,0.000000,-1.000000,
-0.198423,0.025067,-0.050000,0.000000,0.000000,-1.000000,
-0.196457,0.037476,-0.050000,0.000000,0.000000,-1.000000,
-0.297634,0.037600,-0.050000,0.000000,0.000000,-1.000000,
-0.297634,0.037600,0.050000,0.000000,0.000000,1.000000,
-0.294686,0.056214,0.050000,0.000000,0.000000,1.000000,
-0.196457,0.037476,0.050000,0.000000,0.000000,1.000000,
-0.196457,0.037476,0.050000,0.000000,0.000000,1.000000,
-0.198423,0.025067,0.050000,0.000000,0.000000,1.000000,
-0.297634,0.037600,0.050000,0.000000,0.000000,1.000000,
-0.196457,0.037476,0.050000,-0.987688,-0.156436,0.000000,
-0.196457,0.037476,-0.050000,-0.987688,-0.156436,0.000000,
-0.198423,0.025067,0.050000,-0.987688,-0.156436,0.000000,
-0.198423,0.025067,-0.050000,-0.987688,-0.156436,0.000000,
-0.198423,0.025067,0.050000,-0.987688,-0.156436,0.000000,
-0.196457,0.037476,-0.050000,-0.987688,-0.156436,0.000000,
-0.297634,0.037600,0.050000,0.987688,0.156435,0.000000,
-0.297634,0.037600,-0.050000,0.987688,0.156435,0.000000,
-0.294686,0.056214,0.050000,0.987688,0.156435,0.000000,
-0.294686,0.056214,-0.050000,0.987688,0.156435,0.000000,
-0.294686,0.056214,0.050000,0.987688,0.156435,0.000000,
-0.297634,0.037600,-0.050000,0.987688,0.156435,0.000000,
-0.297634,0.037600,-0.050000,0.000000,0.000000,-1.000000,
-0.299408,0.018837,-0.050000,0.000000,0.000000,-1.000000,
-0.198423,0.025067,-0.050000,0.000000,0.000000,-1.000000,
-0.199605,0.012558,-0.050000,0.000000,0.000000,-1.000000,
-0.198423,0.025067,-0.050000,0.000000,0.000000,-1.000000,
-0.299408,0.018837,-0.050000,0.000000,0.000000,-1.000000,
-0.299408,0.018837,0.050000,0.000000,0.000000,1.000000,
-0.297634,0.037600,0.050000,0.000000,0.000000,1.000000,
-0.198423,0.025067,0.050000,0.000000,0.000000,1.000000,
-0.198423,0.025067,0.050000,0.000000,0.000000,1.000000,
-0.199605,0.012558,0.050000,0.000000,0.000000,1.000000,
-0.299408,0.018837,0.050000,0.000000,0.000000,1.000000,
-0.198423,0.025067,0.050000,-0.995562,-0.094107,0.000000,
-0.198423,0.025067,-0.050000,-0.995562,-0.094107,0.000000,
-0.199605,0.012558,0.050000,-0.995562,-0.094107,0.000000,
-0.199605,0.012558,-0.050000,-0.995562,-0.094107,0.000000,
-0.199605,0.012558,0.050000,-0.995562,-0.094107,0.000000,
-0.198423,0.025067,-0.050000,-0.995562,-0.094107,0.000000,
-0.299408,0.018837,0.050000,0.995562,0.094108,0.000000,
-0.299408,0.018837,-0.050000,0.995562,0.094108,0.000000,
-0.297634,0.037600,0.050000,0.995562,0.094108,0.000000,
-0.297634,0.037600,-0.050000,0.995562,0.094108,0.000000,
-0.297634,0.037600,0.050000,0.995562,0.094108,0.000000,
-0.299408,0.018837,-0.050000,0.995562,0.094108,0.000000,
-0.299408,0.018837,-0.050000,0.000000,0.000000,-1.000000,
-0.300000,-0.000000,-0.050000,0.000000,0.000000,-1.000000,
-0.199605,0.012558,-0.050000,0.000000,0.000000,-1.000000,
-0.200000,-0.000000,-0.050000,0.000000,0.000000,-1.000000,
-0.199605,0.012558,-0.050000,0.000000,0.000000,-1.000000,
-0.300000,-0.000000,-0.050000,0.000000,0.000000,-1.000000,
-0.300000,-0.000000,0.050000,0.000000,0.000000,1.000000,
-0.299408,0.018837,0.050000,0.000000,0.000000,1.000000,
-0.199605,0.012558,0.050000,0.000000,0.000000,1.000000,
-0.199605,0.012558,0.050000,0.000000,0.000000,1.000000,
-0.200000,-0.000000,0.050000,0.000000,0.000000,1.000000,
-0.300000,-0.000000,0.050000,0.000000,0.000000,1.000000,
-0.199605,0.012558,0.050000,-0.999507,-0.031411,0.000000,
-0.199605,0.012558,-0.050000,-0.999507,-0.031411,0.000000,
-0.200000,-0.000000,0.050000,-0.999507,-0.031411,0.000000,
-0.200000,-0.000000,-0.050000,-0.999507,-0.031411,0.000000,
-0.200000,-0.000000,0.050000,-0.999507,-0.031411,0.000000,
-0.199605,0.012558,-0.050000,-0.999507,-0.031411,0.000000,
-0.300000,-0.000000,0.050000,0.999507,0.031411,0.000000,
-0.300000,-0.000000,-0.050000,0.999507,0.031411,0.000000,
-0.299408,0.018837,0.050000,0.999507,0.031411,0.000000,
-0.299408,0.018837,-0.050000,0.999507,0.031411,0.000000,
-0.299408,0.018837,0.050000,0.999507,0.031411,0.000000,
-0.300000,-0.000000,-0.050000,0.999507,0.031411,0.000000,
-0.300000,-0.000000,-0.050000,0.000000,0.000000,-1.000000,
-0.299408,-0.018837,-0.050000,0.000000,0.000000,-1.000000,
-0.200000,-0.000000,-0.050000,0.000000,0.000000,-1.000000,
-0.199605,-0.012558,-0.050000,0.000000,0.000000,-1.000000,
-0.200000,-0.000000,-0.050000,0.000000,0.000000,-1.000000,
-0.299408,-0.018837,-0.050000,0.000000,0.000000,-1.000000,
-0.299408,-0.018837,0.050000,0.000000,0.000000,1.000000,
-0.300000,-0.000000,0.050000,0.000000,0.000000,1.000000,
-0.200000,-0.000000,0.050000,0.000000,0.000000,1.000000,
-0.200000,-0.000000,0.050000,0.000000,0.000000,1.000000,
-0.199605,-0.012558,0.050000,0.000000,0.000000,1.000000,
-0.299408,-0.018837,0.050000,0.000000,0.000000,1.000000,
-0.200000,-0.000000,0.050000,-0.999507,0.031411,0.000000,
-0.200000,-0.000000,-0.050000,-0.999507,0.031411,0.000000,
-0.199605,-0.012558,0.050000,-0.999507,0.031411,0.000000,
-0.199605,-0.012558,-0.050000,-0.999507,0.031411,0.000000,
-0.199605,-0.012558,0.050000,-0.999507,0.031411,0.000000,
-0.200000,-0.000000,-0.050000,-0.999507,0.031411,0.000000,
-0.299408,-0.018837,0.050000,0.999507,-0.031411,0.000000,
-0.299408,-0.018837,-0.050000,0.999507,-0.031411,0.000000,
-0.300000,-0.000000,0.050000,0.999507,-0.031411,0.000000,
-0.300000,-0.000000,-0.050000,0.999507,-0.031411,0.000000,
-0.300000,-0.000000,0.050000,0.999507,-0.031411,0.000000,
-0.299408,-0.018837,-0.050000,0.999507,-0.031411,0.000000,
-0.299408,-0.018837,-0.050000,0.000000,0.000000,-1.000000,
-0.297634,-0.037600,-0.050000,0.000000,0.000000,-1.000000,
-0.199605,-0.012558,-0.050000,0.000000,0.000000,-1.000000,
-0.198423,-0.025067,-0.050000,0.000000,0.000000,-1.000000,
-0.199605,-0.012558,-0.050000,0.000000,0.000000,-1.000000,
-0.297634,-0.037600,-0.050000,0.000000,0.000000,-1.000000,
-0.297634,-0.037600,0.050000,0.000000,0.000000,1.000000,
-0.299408,-0.018837,0.050000,0.000000,0.000000,1.000000,
-0.199605,-0.012558,0.050000,0.000000,0.000000,1.000000,
-0.199605,-0.012558,0.050000,0.000000,0.000000,1.000000,
-0.198423,-0.025067,0.050000,0.000000,0.000000,1.000000,
-0.297634,-0.037600,0.050000,0.000000,0.000000,1.000000,
-0.199605,-0.012558,0.050000,-0.995562,0.094107,0.000000,
-0.199605,-0.012558,-0.050000,-0.995562,0.094107,0.000000,
-0.198423,-0.025067,0.050000,-0.995562,0.094107,0.000000,
-0.198423,-0.025067,-0.050000,-0.995562,0.094107,0.000000,
-0.198423,-0.025067,0.050000,-0.995562,0.094107,0.000000,
-0.199605,-0.012558,-0.050000,-0.995562,0.094107,0.000000,
-0.297634,-0.037600,0.050000,0.995562,-0.094108,0.000000,
-0.297634,-0.037600,-0.050000,0.995562,-0.094108,0.000000,
-0.299408,-0.018837,0.050000,0.995562,-0.094108,0.000000,
-0.299408,-0.018837,-0.050000,0.995562,-0.094108,0.000000,
-0.299408,-0.018837,0.050000,0.995562,-0.094108,0.000000,
-0.297634,-0.037600,-0.050000,0.995562,-0.094108,0.000000,
-0.297634,-0.037600,-0.050000,0.000000,0.000000,-1.000000,
-0.294686,-0.056214,-0.050000,0.000000,0.000000,-1.000000,
-0.198423,-0.025067,-0.050000,0.000000,0.000000,-1.000000,
-0.196457,-0.037476,-0.050000,0.000000,0.000000,-1.000000,
-0.198423,-0.025067,-0.050000,0.000000,0.000000,-1.000000,
-0.294686,-0.056214,-0.050000,0.000000,0.000000,-1.000000,
-0.294686,-0.056214,0.050000,0.000000,0.000000,1.000000,
-0.297634,-0.037600,0.050000,0.000000,0.000000,1.000000,
-0.198423,-0.025067,0.050000,0.000000,0.000000,1.000000,
-0.198423,-0.025067,0.050000,0.000000,0.000000,1.000000,
-0.196457,-0.037476,0.050000,0.000000,0.000000,1.000000,
-0.294686,-0.056214,0.050000,0.000000,0.000000,1.000000,
-0.198423,-0.025067,0.050000,-0.987688,0.156436,0.000000,
-0.198423,-0.025067,-0.050000,-0.987688,0.156436,0.000000,
-0.196457,-0.037476,0.050000,-0.987688,0.156436,0.000000,
-0.196457,-0.037476,-0.050000,-0.987688,0.156436,0.000000,
-0.196457,-0.037476,0.050000,-0.987688,0.156436,0.000000,
-0.198423,-0.025067,-0.050000,-0.987688,0.156436,0.000000,
-0.294686,-0.056214,0.050000,0.987688,-0.156435,0.000000,
-0.294686,-0.056214,-0.050000,0.987688,-0.156435,0.000000,
-0.297634,-0.037600,0.050000,0.987688,-0.156435,0.000000,
-0.297634,-0.037600,-0.050000,0.987688,-0.156435,0.000000,
-0.297634,-0.037600,0.050000,0.987688,-0.156435,0.000000,
-0.294686,-0.056214,-0.050000,0.987688,-0.156435,0.000000,
-0.294686,-0.056214,-0.050000,0.000000,0.000000,-1.000000,
-0.290575,-0.074607,-0.050000,0.000000,0.000000,-1.000000,
-0.196457,-0.037476,-0.050000,0.000000,0.000000,-1.000000,
-0.193717,-0.049738,-0.050000,0.000000,0.000000,-1.000000,
-0.196457,-0.037476,-0.050000,0.000000,0.000000,-1.000000,
-0.290575,-0.074607,-0.050000,0.000000,0.000000,-1.000000,
-0.290575,-0.074607,0.050000,0.000000,0.000000,1.000000,
-0.294686,-0.056214,0.050000,0.000000,0.000000,1.000000,
-0.196457,-0.037476,0.050000,0.000000,0.000000,1.000000,
-0.196457,-0.037476,0.050000,0.000000,0.000000,1.000000,
-0.193717,-0.049738,0.050000,0.000000,0.000000,1.000000,
-0.290575,-0.074607,0.050000,0.000000,0.000000,1.000000,
-0.196457,-0.037476,0.050000,-0.975917,0.218143,0.000000,
-0.196457,-0.037476,-0.050000,-0.975917,0.218143,0.000000,
-0.193717,-0.049738,0.050000,-0.975917,0.218143,0.000000,
-0.193717,-0.049738,-0.050000,-0.975917,0.218143,0.000000,
-0.193717,-0.049738,0.050000,-0.975917,0.218143,0.000000,
-0.196457,-0.037476,-0.050000,-0.975917,0.218143,0.000000,
-0.290575,-0.074607,0.050000,0.975917,-0.218142,0.000000,
-0.290575,-0.074607,-0.050000,0.975917,-0.218142,0.000000,
-0.294686,-0.056214,0.050000,0.975917,-0.218142,0.000000,
-0.294686,-0.056214,-0.050000,0.975917,-0.218142,0.000000,
-0.294686,-0.056214,0.050000,0.975917,-0.218142,0.000000,
-0.290575,-0.074607,-0.050000,0.975917,-0.218142,0.000000,
-0.290575,-0.074607,-0.050000,0.000000,0.000000,-1.000000,
-0.285317,-0.092705,-0.050000,0.000000,0.000000,-1.000000,
-0.193717,-0.049738,-0.050000,0.000000,0.000000,-1.000000,
-0.190211,-0.061803,-0.050000,0.000000,0.000000,-1.000000,
-0.193717,-0.049738,-0.050000,0.000000,0.000000,-1.000000,
-0.285317,-0.092705,-0.050000,0.000000,0.000000,-1.000000,
-0.285317,-0.092705,0.050000,0.000000,0.000000,1.000000,
-0.290575,-0.074607,0.050000,0.000000,0.000000,1.000000,
-0.193717,-0.049738,0.050000,0.000000,0.000000,1.000000,
-0.193717,-0.049738,0.050000,0.000000,0.000000,1.000000,
-0.190211,-0.061803,0.050000,0.000000,0.000000,1.000000,
-0.285317,-0.092705,0.050000,0.000000,0.000000,1.000000,
-0.193717,-0.049738,0.050000,-0.960294,0.278991,0.000000,
-0.193717,-0.049738,-0.050000,-0.960294,0.278991,0.000000,
-0.190211,-0.061803,0.050000,-0.960294,0.278991,0.000000,
-0.190211,-0.061803,-0.050000,-0.960294,0.278991,0.000000,
-0.190211,-0.061803,0.050000,-0.960294,0.278991,0.000000,
-0.193717,-0.049738,-0.050000,-0.960294,0.278991,0.000000,
-0.285317,-0.092705,0.050000,0.960293,-0.278993,0.000000,
-0.285317,-0.092705,-0.050000,0.960293,-0.278993,0.000000,
-0.290575,-0.074607,0.050000,0.960293,-0.278993,0.000000,
-0.290575,-0.074607,-0.050000,0.960293,-0.278993,0.000000,
-0.290575,-0.074607,0.050000,0.960293,-0.278993,0.000000,
-0.285317,-0.092705,-0.050000,0.960293,-0.278993,0.000000,
-0.285317,-0.092705,-0.050000,0.000000,0.000000,-1.000000,
-0.278933,-0.110437,-0.050000,0.000000,0.000000,-1.000000,
-0.190211,-0.061803,-0.050000,0.000000,0.000000,-1.000000,
-0.185955,-0.073625,-0.050000,0.000000,0.000000,-1.000000,
-0.190211,-0.061803,-0.050000,0.000000,0.000000,-1.000000,
-0.278933,-0.110437,-0.050000,0.000000,0.000000,-1.000000,
-0.278933,-0.110437,0.050000,0.000000,0.000000,1.000000,
-0.285317,-0.092705,0.050000,0.000000,0.000000,1.000000,
-0.190211,-0.061803,0.050000,0.000000,0.000000,1.000000,
-0.190211,-0.061803,0.050000,0.000000,0.000000,1.000000,
-0.185955,-0.073625,0.050000,0.000000,0.000000,1.000000,
-0.278933,-0.110437,0.050000,0.000000,0.000000,1.000000,
-0.190211,-0.061803,0.050000,-0.940881,0.338738,0.000000,
-0.190211,-0.061803,-0.050000,-0.940881,0.338738,0.000000,
-0.185955,-0.073625,0.050000,-0.940881,0.338738,0.000000,
-0.185955,-0.073625,-0.050000,-0.940881,0.338738,0.000000,
-0.185955,-0.073625,0.050000,-0.940881,0.338738,0.000000,
-0.190211,-0.061803,-0.050000,-0.940881,0.338738,0.000000,
-0.278933,-0.110437,0.050000,0.940881,-0.338737,0.000000,
-0.278933,-0.110437,-0.050000,0.940881,-0.338737,0.000000,
-0.285317,-0.092705,0.050000,0.940881,-0.338737,0.000000,
-0.285317,-0.092705,-0.050000,0.940881,-0.338737,0.000000,
-0.285317,-0.092705,0.050000,0.940881,-0.338737,0.000000,
-0.278933,-0.110437,-0.050000,0.940881,-0.338737,0.000000,
-0.278933,-0.110437,-0.050000,0.000000,0.000000,-1.000000,
-0.271448,-0.127734,-0.050000,0.000000,0.000000,-1.000000,
-0.185955,-0.073625,-0.050000,0.000000,0.000000,-1.000000,
-0.180965,-0.085156,-0.050000,0.000000,0.000000,-1.000000,
-0.185955,-0.073625,-0.050000,0.000000,0.000000,-1.000000,
-0.271448,-0.127734,-0.050000,0.000000,0.000000,-1.000000,
-0.271448,-0.127734,0.050000,0.000000,0.000000,1.000000,
-0.278933,-0.110437,0.050000,0.000000,0.000000,1.000000,
-0.185955,-0.073625,0.050000,0.000000,0.000000,1.000000,
-0.185955,-0.073625,0.050000,0.000000,0.000000,1.000000,
-0.180965,-0.085156,0.050000,0.000000,0.000000,1.000000,
-0.271448,-0.127734,0.050000,0.000000,0.000000,1.000000,
-0.185955,-0.073625,0.050000,-0.917755,0.397148,0.000000,
-0.185955,-0.073625,-0.050000,-0.917755,0.397148,0.000000,
-0.180965,-0.085156,0.050000,-0.917755,0.397148,0.000000,
-0.180965,-0.085156,-0.050000,-0.917755,0.397148,0.000000,
-0.180965,-0.085156,0.050000,-0.917755,0.397148,0.000000,
-0.185955,-0.073625,-0.050000,-0.917755,0.397148,0.000000,
-0.271448,-0.127734,0.050000,0.917754,-0.397148,0.000000,
-0.271448,-0.127734,-0.050000,0.917754,-0.397148,0.000000,
-0.278933,-0.110437,0.050000,0.917754,-0.397148,0.000000,
-0.278933,-0.110437,-0.050000,0.917754,-0.397148,0.000000,
-0.278933,-0.110437,0.050000,0.917754,-0.397148,0.000000,
-0.271448,-0.127734,-0.050000,0.917754,-0.397148,0.000000,
-0.271448,-0.127734,-0.050000,0.000000,0.000000,-1.000000,
-0.262892,-0.144526,-0.050000,0.000000,0.000000,-1.000000,
-0.180965,-0.085156,-0.050000,0.000000,0.000000,-1.000000,
-0.175261,-0.096351,-0.050000,0.000000,0.000000,-1.000000,
-0.180965,-0.085156,-0.050000,0.000000,0.000000,-1.000000,
-0.262892,-0.144526,-0.050000,0.000000,0.000000,-1.000000,
-0.262892,-0.144526,0.050000,0.000000,0.000000,1.000000,
-0.271448,-0.127734,0.050000,0.000000,0.000000,1.000000,
-0.180965,-0.085156,0.050000,0.000000,0.000000,1.000000,
-0.180965,-0.085156,0.050000,0.000000,0.000000,1.000000,
-0.175261,-0.096351,0.050000,0.000000,0.000000,1.000000,
-0.262892,-0.144526,0.050000,0.000000,0.000000,1.000000,
-0.180965,-0.085156,0.050000,-0.891007,0.453991,0.000000,
-0.180965,-0.085156,-0.050000,-0.891007,0.453991,0.000000,
-0.175261,-0.096351,0.050000,-0.891007,0.453991,0.000000,
-0.175261,-0.096351,-0.050000,-0.891007,0.453991,0.000000,
-0.175261,-0.096351,0.050000,-0.891007,0.453991,0.000000,
-0.180965,-0.085156,-0.050000,-0.891007,0.453991,0.000000,
-0.262892,-0.144526,0.050000,0.891007,-0.453990,0.000000,
-0.262892,-0.144526,-0.050000,0.891007,-0.453990,0.000000,
-0.271448,-0.127734,0.050000,0.891007,-0.453990,0.000000,
-0.271448,-0.127734,-0.050000,0.891007,-0.453990,0.000000,
-0.271448,-0.127734,0.050000,0.891007,-0.453990,0.000000,
-0.262892,-0.144526,-0.050000,0.891007,-0.453990,0.000000,
-0.262892,-0.144526,-0.050000,0.000000,0.000000,-1.000000,
-0.253298,-0.160748,-0.050000,0.000000,0.000000,-1.000000,
-0.175261,-0.096351,-0.050000,0.000000,0.000000,-1.000000,
-0.168866,-0.107165,-0.050000,0.000000,0.000000,-1.000000,
-0.175261,-0.096351,-0.050000,0.000000,0.000000,-1.000000,
-0.253298,-0.160748,-0.050000,0.000000,0.000000,-1.000000,
-0.253298,-0.160748,0.050000,0.000000,0.000000,1.000000,
-0.262892,-0.144526,0.050000,0.000000,0.000000,1.000000,
-0.175261,-0.096351,0.050000,0.000000,0.000000,1.000000,
-0.175261,-0.096351,0.050000,0.000000,0.000000,1.000000,
-0.168866,-0.107165,0.050000,0.000000,0.000000,1.000000,
-0.253298,-0.160748,0.050000,0.000000,0.000000,1.000000,
-0.175261,-0.096351,0.050000,-0.860742,0.509041,0.000000,
-0.175261,-0.096351,-0.050000,-0.860742,0.509041,0.000000,
-0.168866,-0.107165,0.050000,-0.860742,0.509041,0.000000,
-0.168866,-0.107165,-0.050000,-0.860742,0.509041,0.000000,
-0.168866,-0.107165,0.050000,-0.860742,0.509041,0.000000,
-0.175261,-0.096351,-0.050000,-0.860742,0.509041,0.000000,
-0.253298,-0.160748,0.050000,0.860742,-0.509041,0.000000,
-0.253298,-0.160748,-0.050000,0.860742,-0.509041,0.000000,
-0.262892,-0.144526,0.050000,0.860742,-0.509041,0.000000,
-0.262892,-0.144526,-0.050000,0.860742,-0.509041,0.000000,
-0.262892,-0.144526,0.050000,0.860742,-0.509041,0.000000,
-0.253298,-0.160748,-0.050000,0.860742,-0.509041,0.000000,
-0.253298,-0.160748,-0.050000,0.000000,0.000000,-1.000000,
-0.242705,-0.176336,-0.050000,0.000000,0.000000,-1.000000,
-0.168866,-0.107165,-0.050000,0.000000,0.000000,-1.000000,
-0.161803,-0.117557,-0.050000,0.000000,0.000000,-1.000000,
-0.168866,-0.107165,-0.050000,0.000000,0.000000,-1.000000,
-0.242705,-0.176336,-0.050000,0.000000,0.000000,-1.000000,
-0.242705,-0.176336,0.050000,0.000000,0.000000,1.000000,
-0.253298,-0.160748,0.050000,0.000000,0.000000,1.000000,
-0.168866,-0.107165,0.050000,0.000000,0.000000,1.000000,
-0.168866,-0.107165,0.050000,0.000000,0.000000,1.000000,
-0.161803,-0.117557,0.050000,0.000000,0.000000,1.000000,
-0.242705,-0.176336,0.050000,0.000000,0.000000,1.000000,
-0.168866,-0.107165,0.050000,-0.827080,0.562084,0.000000,
-0.168866,-0.107165,-0.050000,-0.827080,0.562084,0.000000,
-0.161803,-0.117557,0.050000,-0.827080,0.562084,0.000000,
-0.161803,-0.117557,-0.050000,-0.827080,0.562084,0.000000,
-0.161803,-0.117557,0.050000,-0.827080,0.562084,0.000000,
-0.168866,-0.107165,-0.050000,-0.827080,0.562084,0.000000,
-0.242705,-0.176336,0.050000,0.827080,-0.562084,0.000000,
-0.242705,-0.176336,-0.050000,0.827080,-0.562084,0.000000,
-0.253298,-0.160748,0.050000,0.827080,-0.562084,0.000000,
-0.253298,-0.160748,-0.050000,0.827080,-0.562084,0.000000,
-0.253298,-0.160748,0.050000,0.827080,-0.562084,0.000000,
-0.242705,-0.176336,-0.050000,0.827080,-0.562084,0.000000,
-0.242705,-0.176336,-0.050000,0.000000,0.000000,-1.000000,
-0.231154,-0.191227,-0.050000,0.000000,0.000000,-1.000000,
-0.161803,-0.117557,-0.050000,0.000000,0.000000,-1.000000,
-0.154103,-0.127485,-0.050000,0.000000,0.000000,-1.000000,
-0.161803,-0.117557,-0.050000,0.000000,0.000000,-1.000000,
-0.231154,-0.191227,-0.050000,0.000000,0.000000,-1.000000,
-0.231154,-0.191227,0.050000,0.000000,0.000000,1.000000,
-0.242705,-0.176336,0.050000,0.000000,0.000000,1.000000,
-0.161803,-0.117557,0.050000,0.000000,0.000000,1.000000,
-0.161803,-0.117557,0.050000,0.000000,0.000000,1.000000,
-0.154103,-0.127485,0.050000,0.000000,0.000000,1.000000,
-0.231154,-0.191227,0.050000,0.000000,0.000000,1.000000,
-0.161803,-0.117557,0.050000,-0.790155,0.612907,0.000000,
-0.161803,-0.117557,-0.050000,-0.790155,0.612907,0.000000,
-0.154103,-0.127485,0.050000,-0.790155,0.612907,0.000000,
-0.154103,-0.127485,-0.050000,-0.790155,0.612907,0.000000,
-0.154103,-0.127485,0.050000,-0.790155,0.612907,0.000000,
-0.161803,-0.117557,-0.050000,-0.790155,0.612907,0.000000,
-0.231154,-0.191227,0.050000,0.790156,-0.612906,0.000000,
-0.231154,-0.191227,-0.050000,0.790156,-0.612906,0.000000,
-0.242705,-0.176336,0.050000,0.790156,-0.612906,0.000000,
-0.242705,-0.176336,-0.050000,0.790156,-0.612906,0.000000,
-0.242705,-0.176336,0.050000,0.790156,-0.612906,0.000000,
-0.231154,-0.191227,-0.050000,0.790156,-0.612906,0.000000,
-0.231154,-0.191227,-0.050000,0.000000,0.000000,-1.000000,
-0.218691,-0.205364,-0.050000,0.000000,0.000000,-1.000000,
-0.154103,-0.127485,-0.050000,0.000000,0.000000,-1.000000,
-0.145794,-0.136909,-0.050000,0.000000,0.000000,-1.000000,
-0.154103,-0.127485,-0.050000,0.000000,0.000000,-1.000000,
-0.218691,-0.205364,-0.050000,0.000000,0.000000,-1.000000,
-0.218691,-0.205364,0.050000,0.000000,0.000000,1.000000,
-0.231154,-0.191227,0.050000,0.000000,0.000000,1.000000,
-0.154103,-0.127485,0.050000,0.000000,0.000000,1.000000,
-0.154103,-0.127485,0.050000,0.000000,0.000000,1.000000,
-0.145794,-0.136909,0.050000,0.000000,0.000000,1.000000,
-0.218691,-0.205364,0.050000,0.000000,0.000000,1.000000,
-0.154103,-0.127485,0.050000,-0.750111,0.661312,0.000000,
-0.154103,-0.127485,-0.050000,-0.750111,0.661312,0.000000,
-0.145794,-0.136909,0.050000,-0.750111,0.661312,0.000000,
-0.145794,-0.136909,-0.050000,-0.750111,0.661312,0.000000,
-0.145794,-0.136909,0.050000,-0.750111,0.661312,0.000000,
-0.154103,-0.127485,-0.050000,-0.750111,0.661312,0.000000,
-0.218691,-0.205364,0.050000,0.750111,-0.661312,0.000000,
-0.218691,-0.205364,-0.050000,0.750111,-0.661312,0.000000,
-0.231154,-0.191227,0.050000,0.750111,-0.661312,0.000000,
-0.231154,-0.191227,-0.050000,0.750111,-0.661312,0.000000,
-0.231154,-0.191227,0.050000,0.750111,-0.661312,0.000000,
-0.218691,-0.205364,-0.050000,0.750111,-0.661312,0.000000,
-0.218691,-0.205364,-0.050000,0.000000,0.000000,-1.000000,
-0.205364,-0.218691,-0.050000,0.000000,0.000000,-1.000000,
-0.145794,-0.136909,-0.050000,0.000000,0.000000,-1.000000,
-0.136909,-0.145794,-0.050000,0.000000,0.000000,-1.000000,
-0.145794,-0.136909,-0.050000,0.000000,0.000000,-1.000000,
-0.205364,-0.218691,-0.050000,0.000000,0.000000,-1.000000,
-0.205364,-0.218691,0.050000,0.000000,0.000000,1.000000,
-0.218691,-0.205364,0.050000,0.000000,0.000000,1.000000,
-0.145794,-0.136909,0.050000,0.000000,0.000000,1.000000,
-0.145794,-0.136909,0.050000,0.000000,0.000000,1.000000,
-0.136909,-0.145794,0.050000,0.000000,0.000000,1.000000,
-0.205364,-0.218691,0.050000,0.000000,0.000000,1.000000,
-0.145794,-0.136909,0.050000,-0.707106,0.707107,0.000000,
-0.145794,-0.136909,-0.050000,-0.707106,0.707107,0.000000,
-0.136909,-0.145794,0.050000,-0.707106,0.707107,0.000000,
-0.136909,-0.145794,-0.050000,-0.707106,0.707107,0.000000,
-0.136909,-0.145794,0.050000,-0.707106,0.707107,0.000000,
-0.145794,-0.136909,-0.050000,-0.707106,0.707107,0.000000,
-0.205364,-0.218691,0.050000,0.707106,-0.707108,0.000000,
-0.205364,-0.218691,-0.050000,0.707106,-0.707108,0.000000,
-0.218691,-0.205364,0.050000,0.707106,-0.707108,0.000000,
-0.218691,-0.205364,-0.050000,0.707106,-0.707108,0.000000,
-0.218691,-0.205364,0.050000,0.707106,-0.707108,0.000000,
-0.205364,-0.218691,-0.050000,0.707106,-0.707108,0.000000,
-0.205364,-0.218691,-0.050000,0.000000,0.000000,-1.000000,
-0.191227,-0.231154,-0.050000,0.000000,0.000000,-1.000000,
-0.136909,-0.145794,-0.050000,0.000000,0.000000,-1.000000,
-0.127485,-0.154103,-0.050000,0.000000,0.000000,-1.000000,
-0.136909,-0.145794,-0.050000,0.000000,0.000000,-1.000000,
-0.191227,-0.231154,-0.050000,0.000000,0.000000,-1.000000,
-0.191227,-0.231154,0.050000,0.000000,0.000000,1.000000,
-0.205364,-0.218691,0.050000,0.000000,0.000000,1.000000,
-0.136909,-0.145794,0.050000,0.000000,0.000000,1.000000,
-0.136909,-0.145794,0.050000,0.000000,0.000000,1.000000,
-0.127485,-0.154103,0.050000,0.000000,0.000000,1.000000,
-0.191227,-0.231154,0.050000,0.000000,0.000000,1.000000,
-0.136909,-0.145794,0.050000,-0.661313,0.750110,0.000000,
-0.136909,-0.145794,-0.050000,-0.661313,0.750110,0.000000,
-0.127485,-0.154103,0.050000,-0.661313,0.750110,0.000000,
-0.127485,-0.154103,-0.050000,-0.661313,0.750110,0.000000,
-0.127485,-0.154103,0.050000,-0.661313,0.750110,0.000000,
-0.136909,-0.145794,-0.050000,-0.661313,0.750110,0.000000,
-0.191227,-0.231154,0.050000,0.661312,-0.750111,0.000000,
-0.191227,-0.231154,-0.050000,0.661312,-0.750111,0.000000,
-0.205364,-0.218691,0.050000,0.661312,-0.750111,0.000000,
-0.205364,-0.218691,-0.050000,0.661312,-0.750111,0.000000,
-0.205364,-0.218691,0.050000,0.661312,-0.750111,0.000000,
-0.191227,-0.231154,-0.050000,0.661312,-0.750111,0.000000,
-0.191227,-0.231154,-0.050000,0.000000,0.000000,-1.000000,
-0.176336,-0.242705,-0.050000,0.000000,0.000000,-1.000000,
-0.127485,-0.154103,-0.050000,0.000000,0.000000,-1.000000,
-0.117557,-0.161803,-0.050000,0.000000,0.000000,-1.000000,
-0.127485,-0.154103,-0.050000,0.000000,0.000000,-1.000000,
-0.176336,-0.242705,-0.050000,0.000000,0.000000,-1.000000,
-0.176336,-0.242705,0.050000,0.000000,0.000000,1.000000,
-0.191227,-0.231154,0.050000,0.000000,0.000000,1.000000,
-0.127485,-0.154103,0.050000,0.000000,0.000000,1.000000,
-0.127485,-0.154103,0.050000,0.000000,0.000000,1.000000,
-0.117557,-0.161803,0.050000,0.000000,0.000000,1.000000,
-0.176336,-0.242705,0.050000,0.000000,0.000000,1.000000,
-0.127485,-0.154103,0.050000,-0.612907,0.790155,0.000000,
-0.127485,-0.154103,-0.050000,-0.612907,0.790155,0.000000,
-0.117557,-0.161803,0.050000,-0.612907,0.790155,0.000000,
-0.117557,-0.161803,-0.050000,-0.612907,0.790155,0.000000,
-0.117557,-0.161803,0.050000,-0.612907,0.790155,0.000000,
-0.127485,-0.154103,-0.050000,-0.612907,0.790155,0.000000,
-0.176336,-0.242705,0.050000,0.612907,-0.790155,0.000000,
-0.176336,-0.242705,-0.050000,0.612907,-0.790155,0.000000,
-0.191227,-0.231154,0.050000,0.612907,-0.790155,0.000000,
-0.191227,-0.231154,-0.050000,0.612907,-0.790155,0.000000,
-0.191227,-0.231154,0.050000,0.612907,-0.790155,0.000000,
-0.176336,-0.242705,-0.050000,0.612907,-0.790155,0.000000,
-0.176336,-0.242705,-0.050000,0.000000,0.000000,-1.000000,
-0.160748,-0.253298,-0.050000,0.000000,0.000000,-1.000000,
-0.117557,-0.161803,-0.050000,0.000000,0.000000,-1.000000,
-0.107165,-0.168866,-0.050000,0.000000,0.000000,-1.000000,
-0.117557,-0.161803,-0.050000,0.000000,0.000000,-1.000000,
-0.160748,-0.253298,-0.050000,0.000000,0.000000,-1.000000,
-0.160748,-0.253298,0.050000,0.000000,0.000000,1.000000,
-0.176336,-0.242705,0.050000,0.000000,0.000000,1.000000,
-0.117557,-0.161803,0.050000,0.000000,0.000000,1.000000,
-0.117557,-0.161803,0.050000,0.000000,0.000000,1.000000,
-0.107165,-0.168866,0.050000,0.000000,0.000000,1.000000,
-0.160748,-0.253298,0.050000,0.000000,0.000000,1.000000,
-0.117557,-0.161803,0.050000,-0.562084,0.827080,0.000000,
-0.117557,-0.161803,-0.050000,-0.562084,0.827080,0.000000,
-0.107165,-0.168866,0.050000,-0.562084,0.827080,0.000000,
-0.107165,-0.168866,-0.050000,-0.562084,0.827080,0.000000,
-0.107165,-0.168866,0.050000,-0.562084,0.827080,0.000000,
-0.117557,-0.161803,-0.050000,-0.562084,0.827080,0.000000,
-0.160748,-0.253298,0.050000,0.562084,-0.827080,0.000000,
-0.160748,-0.253298,-0.050000,0.562084,-0.827080,0.000000,
-0.176336,-0.242705,0.050000,0.562084,-0.827080,0.000000,
-0.176336,-0.242705,-0.050000,0.562084,-0.827080,0.000000,
-0.176336,-0.242705,0.050000,0.562084,-0.827080,0.000000,
-0.160748,-0.253298,-0.050000,0.562084,-0.827080,0.000000,
-0.160748,-0.253298,-0.050000,0.000000,0.000000,-1.000000,
-0.144526,-0.262892,-0.050000,0.000000,0.000000,-1.000000,
-0.107165,-0.168866,-0.050000,0.000000,0.000000,-1.000000,
-0.096351,-0.175261,-0.050000,0.000000,0.000000,-1.000000,
-0.107165,-0.168866,-0.050000,0.000000,0.000000,-1.000000,
-0.144526,-0.262892,-0.050000,0.000000,0.000000,-1.000000,
-0.144526,-0.262892,0.050000,0.000000,0.000000,1.000000,
-0.160748,-0.253298,0.050000,0.000000,0.000000,1.000000,
-0.107165,-0.168866,0.050000,0.000000,0.000000,1.000000,
-0.107165,-0.168866,0.050000,0.000000,0.000000,1.000000,
-0.096351,-0.175261,0.050000,0.000000,0.000000,1.000000,
-0.144526,-0.262892,0.050000,0.000000,0.000000,1.000000,
-0.107165,-0.168866,0.050000,-0.509041,0.860742,0.000000,
-0.107165,-0.168866,-0.050000,-0.509041,0.860742,0.000000,
-0.096351,-0.175261,0.050000,-0.509041,0.860742,0.000000,
-0.096351,-0.175261,-0.050000,-0.509041,0.860742,0.000000,
-0.096351,-0.175261,0.050000,-0.509041,0.860742,0.000000,
-0.107165,-0.168866,-0.050000,-0.509041,0.860742,0.000000,
-0.144526,-0.262892,0.050000,0.509042,-0.860742,0.000000,
-0.144526,-0.262892,-0.050000,0.509042,-0.860742,0.000000,
-0.160748,-0.253298,0.050000,0.509042,-0.860742,0.000000,
-0.160748,-0.253298,-0.050000,0.509042,-0.860742,0.000000,
-0.160748,-0.253298,0.050000,0.509042,-0.860742,0.000000,
-0.144526,-0.262892,-0.050000,0.509042,-0.860742,0.000000,
-0.144526,-0.262892,-0.050000,0.000000,0.000000,-1.000000,
-0.127734,-0.271448,-0.050000,0.000000,0.000000,-1.000000,
-0.096351,-0.175261,-0.050000,0.000000,0.000000,-1.000000,
-0.085156,-0.180965,-0.050000,0.000000,0.000000,-1.000000,
-0.096351,-0.175261,-0.050000,0.000000,0.000000,-1.000000,
-0.127734,-0.271448,-0.050000,0.000000,0.000000,-1.000000,
-0.127734,-0.271448,0.050000,0.000000,0.000000,1.000000,
-0.144526,-0.262892,0.050000,0.000000,0.000000,1.000000,
-0.096351,-0.175261,0.050000,0.000000,0.000000,1.000000,
-0.096351,-0.175261,0.050000,0.000000,0.000000,1.000000,
-0.085156,-0.180965,0.050000,0.000000,0.000000,1.000000,
-0.127734,-0.271448,0.050000,0.000000,0.000000,1.000000,
-0.096351,-0.175261,0.050000,-0.453991,0.891007,0.000000,
-0.096351,-0.175261,-0.050000,-0.453991,0.891007,0.000000,
-0.085156,-0.180965,0.050000,-0.453991,0.891007,0.000000,
-0.085156,-0.180965,-0.050000,-0.453991,0.891007,0.000000,
-0.085156,-0.180965,0.050000,-0.453991,0.891007,0.000000,
-0.096351,-0.175261,-0.050000,-0.453991,0.891007,0.000000,
-0.127734,-0.271448,0.050000,0.453990,-0.891007,0.000000,
-0.127734,-0.271448,-0.050000,0.453990,-0.891007,0.000000,
-0.144526,-0.262892,0.050000,0.453990,-0.891007,0.000000,
-0.144526,-0.262892,-0.050000,0.453990,-0.891007,0.000000,
-0.144526,-0.262892,0.050000,0.453990,-0.891007,0.000000,
-0.127734,-0.271448,-0.050000,0.453990,-0.891007,0.000000,
-0.127734,-0.271448,-0.050000,0.000000,0.000000,-1.000000,
-0.110437,-0.278933,-0.050000,0.000000,0.000000,-1.000000,
-0.085156,-0.180965,-0.050000,0.000000,0.000000,-1.000000,
-0.073625,-0.185955,-0.050000,0.000000,0.000000,-1.000000,
-0.085156,-0.180965,-0.050000,0.000000,0.000000,-1.000000,
-0.110437,-0.278933,-0.050000,0.000000,0.000000,-1.000000,
-0.110437,-0.278933,0.050000,0.000000,0.000000,1.000000,
-0.127734,-0.271448,0.050000,0.000000,0.000000,1.000000,
-0.085156,-0.180965,0.050000,0.000000,0.000000,1.000000,
-0.085156,-0.180965,0.050000,0.000000,0.000000,1.000000,
-0.073625,-0.185955,0.050000,0.000000,0.000000,1.000000,
-0.110437,-0.278933,0.050000,0.000000,0.000000,1.000000,
-0.085156,-0.180965,0.050000,-0.397148,0.917754,0.000000,
-0.085156,-0.180965,-0.050000,-0.397148,0.917754,0.000000,
-0.073625,-0.185955,0.050000,-0.397148,0.917754,0.000000,
-0.073625,-0.185955,-0.050000,-0.397148,0.917754,0.000000,
-0.073625,-0.185955,0.050000,-0.397148,0.917754,0.000000,
-0.085156,-0.180965,-0.050000,-0.397148,0.917754,0.000000,
-0.110437,-0.278933,0.050000,0.397149,-0.917754,0.000000,
-0.110437,-0.278933,-0.050000,0.397149,-0.917754,0.000000,
-0.127734,-0.271448,0.050000,0.397149,-0.917754,0.000000,
-0.127734,-0.271448,-0.050000,0.397149,-0.917754,0.000000,
-0.127734,-0.271448,0.050000,0.397149,-0.917754,0.000000,
-0.110437,-0.278933,-0.050000,0.397149,-0.917754,0.000000,
-0.110437,-0.278933,-0.050000,0.000000,0.000000,-1.000000,
-0.092705,-0.285317,-0.050000,0.000000,0.000000,-1.000000,
-0.073625,-0.185955,-0.050000,0.000000,0.000000,-1.000000,
-0.061803,-0.190211,-0.050000,0.000000,0.000000,-1.000000,
-0.073625,-0.185955,-0.050000,0.000000,0.000000,-1.000000,
-0.092705,-0.285317,-0.050000,0.000000,0.000000,-1.000000,
-0.092705,-0.285317,0.050000,0.000000,0.000000,1.000000,
-0.110437,-0.278933,0.050000,0.000000,0.000000,1.000000,
-0.073625,-0.185955,0.050000,0.000000,0.000000,1.000000,
-0.073625,-0.185955,0.050000,0.000000,0.000000,1.000000,
-0.061803,-0.190211,0.050000,0.000000,0.000000,1.000000,
-0.092705,-0.285317,0.050000,0.000000,0.000000,1.000000,
-0.073625,-0.185955,0.050000,-0.338737,0.940881,0.000000,
-0.073625,-0.185955,-0.050000,-0.338737,0.940881,0.000000,
-0.061803,-0.190211,0.050000,-0.338737,0.940881,0.000000,
-0.061803,-0.190211,-0.050000,-0.338737,0.940881,0.000000,
-0.061803,-0.190211,0.050000,-0.338737,0.940881,0.000000,
-0.073625,-0.185955,-0.050000,-0.338737,0.940881,0.000000,
-0.092705,-0.285317,0.050000,0.338737,-0.940881,0.000000,
-0.092705,-0.285317,-0.050000,0.338737,-0.940881,0.000000,
-0.110437,-0.278933,0.050000,0.338737,-0.940881,0.000000,
-0.110437,-0.278933,-0.050000,0.338737,-0.940881,0.000000,
-0.110437,-0.278933,0.050000,0.338737,-0.940881,0.000000,
-0.092705,-0.285317,-0.050000,0.338737,-0.940881,0.000000,
-0.092705,-0.285317,-0.050000,0.000000,0.000000,-1.000000,
-0.074607,-0.290575,-0.050000,0.000000,0.000000,-1.000000,
-0.061803,-0.190211,-0.050000,0.000000,0.000000,-1.000000,
-0.049738,-0.193717,-0.050000,0.000000,0.000000,-1.000000,
-0.061803,-0.190211,-0.050000,0.000000,0.000000,-1.000000,
-0.074607,-0.290575,-0.050000,0.000000,0.000000,-1.000000,
-0.074607,-0.290575,0.050000,0.000000,0.000000,1.000000,
-0.092705,-0.285317,0.050000,0.000000,0.000000,1.000000,
-0.061803,-0.190211,0.050000,0.000000,0.000000,1.000000,
-0.061803,-0.190211,0.050000,0.000000,0.000000,1.000000,
-0.049738,-0.193717,0.050000,0.000000,0.000000,1.000000,
-0.074607,-0.290575,0.050000,0.000000,0.000000,1.000000,
-0.061803,-0.190211,0.050000,-0.278991,0.960294,0.000000,
-0.061803,-0.190211,-0.050000,-0.278991,0.960294,0.000000,
-0.049738,-0.193717,0.050000,-0.278991,0.960294,0.000000,
-0.049738,-0.193717,-0.050000,-0.278991,0.960294,0.000000,
-0.049738,-0.193717,0.050000,-0.278991,0.960294,0.000000,
-0.061803,-0.190211,-0.050000,-0.278991,0.960294,0.000000,
-0.074607,-0.290575,0.050000,0.278993,-0.960293,0.000000,
-0.074607,-0.290575,-0.050000,0.278993,-0.960293,0.000000,
-0.092705,-0.285317,0.050000,0.278993,-0.960293,0.000000,
-0.092705,-0.285317,-0.050000,0.278993,-0.960293,0.000000,
-0.092705,-0.285317,0.050000,0.278993,-0.960293,0.000000,
-0.074607,-0.290575,-0.050000,0.278993,-0.960293,0.000000,
-0.074607,-0.290575,-0.050000,0.000000,0.000000,-1.000000,
-0.056214,-0.294686,-0.050000,0.000000,0.000000,-1.000000,
-0.049738,-0.193717,-0.050000,0.000000,0.000000,-1.000000,
-0.037476,-0.196457,-0.050000,0.000000,0.000000,-1.000000,
-0.049738,-0.193717,-0.050000,0.000000,0.000000,-1.000000,
-0.056214,-0.294686,-0.050000,0.000000,0.000000,-1.000000,
-0.056214,-0.294686,0.050000,0.000000,0.000000,1.000000,
-0.074607,-0.290575,0.050000,0.000000,0.000000,1.000000,
-0.049738,-0.193717,0.050000,0.000000,0.000000,1.000000,
-0.049738,-0.193717,0.050000,0.000000,0.000000,1.000000,
-0.037476,-0.196457,0.050000,0.000000,0.000000,1.000000,
-0.056214,-0.294686,0.050000,0.000000,0.000000,1.000000,
-0.049738,-0.193717,0.050000,-0.218143,0.975917,0.000000,
-0.049738,-0.193717,-0.050000,-0.218143,0.975917,0.000000,
-0.037476,-0.196457,0.050000,-0.218143,0.975917,0.000000,
-0.037476,-0.196457,-0.050000,-0.218143,0.975917,0.000000,
-0.037476,-0.196457,0.050000,-0.218143,0.975917,0.000000,
-0.049738,-0.193717,-0.050000,-0.218143,0.975917,0.000000,
-0.056214,-0.294686,0.050000,0.218142,-0.975917,0.000000,
-0.056214,-0.294686,-0.050000,0.218142,-0.975917,0.000000,
-0.074607,-0.290575,0.050000,0.218142,-0.975917,0.000000,
-0.074607,-0.290575,-0.050000,0.218142,-0.975917,0.000000,
-0.074607,-0.290575,0.050000,0.218142,-0.975917,0.000000,
-0.056214,-0.294686,-0.050000,0.218142,-0.975917,0.000000,
-0.056214,-0.294686,-0.050000,0.000000,0.000000,-1.000000,
-0.037600,-0.297634,-0.050000,0.000000,0.000000,-1.000000,
-0.037476,-0.196457,-0.050000,0.000000,0.000000,-1.000000,
-0.025067,-0.198423,-0.050000,0.000000,0.000000,-1.000000,
-0.037476,-0.196457,-0.050000,0.000000,0.000000,-1.000000,
-0.037600,-0.297634,-0.050000,0.000000,0.000000,-1.000000,
-0.037600,-0.297634,0.050000,0.000000,0.000000,1.000000,
-0.056214,-0.294686,0.050000,0.000000,0.000000,1.000000,
-0.037476,-0.196457,0.050000,0.000000,0.000000,1.000000,
-0.037476,-0.196457,0.050000,0.000000,0.000000,1.000000,
-0.025067,-0.198423,0.050000,0.000000,0.000000,1.000000,
-0.037600,-0.297634,0.050000,0.000000,0.000000,1.000000,
-0.037476,-0.196457,0.050000,-0.156436,0.987688,0.000000,
-0.037476,-0.196457,-0.050000,-0.156436,0.987688,0.000000,
-0.025067,-0.198423,0.050000,-0.156436,0.987688,0.000000,
-0.025067,-0.198423,-0.050000,-0.156436,0.987688,0.000000,
-0.025067,-0.198423,0.050000,-0.156436,0.987688,0.000000,
-0.037476,-0.196457,-0.050000,-0.156436,0.987688,0.000000,
-0.037600,-0.297634,0.050000,0.156435,-0.987688,0.000000,
-0.037600,-0.297634,-0.050000,0.156435,-0.987688,0.000000,
-0.056214,-0.294686,0.050000,0.156435,-0.987688,0.000000,
-0.056214,-0.294686,-0.050000,0.156435,-0.987688,0.000000,
-0.056214,-0.294686,0.050000,0.156435,-0.987688,0.000000,
-0.037600,-0.297634,-0.050000,0.156435,-0.987688,0.000000,
-0.037600,-0.297634,-0.050000,0.000000,0.000000,-1.000000,
-0.018837,-0.299408,-0.050000,0.000000,0.000000,-1.000000,
-0.025067,-0.198423,-0.050000,0.000000,0.000000,-1.000000,
-0.012558,-0.199605,-0.050000,0.000000,0.000000,-1.000000,
-0.025067,-0.198423,-0.050000,0.000000,0.000000,-1.000000,
-0.018837,-0.299408,-0.050000,0.000000,0.000000,-1.000000,
-0.018837,-0.299408,0.050000,0.000000,0.000000,1.000000,
-0.037600,-0.297634,0.050000,0.000000,0.000000,1.000000,
-0.025067,-0.198423,0.050000,0.000000,0.000000,1.000000,
-0.025067,-0.198423,0.050000,0.000000,0.000000,1.000000,
-0.012558,-0.199605,0.050000,0.000000,0.000000,1.000000,
-0.018837,-0.299408,0.050000,0.000000,0.000000,1.000000,
-0.025067,-0.198423,0.050000,-0.094107,0.995562,0.000000,
-0.025067,-0.198423,-0.050000,-0.094107,0.995562,0.000000,
-0.012558,-0.199605,0.050000,-0.094107,0.995562,0.000000,
-0.012558,-0.199605,-0.050000,-0.094107,0.995562,0.000000,
-0.012558,-0.199605,0.050000,-0.094107,0.995562,0.000000,
-0.025067,-0.198423,-0.050000,-0.094107,0.995562,0.000000,
-0.018837,-0.299408,0.050000,0.094108,-0.995562,0.000000,
-0.018837,-0.299408,-0.050000,0.094108,-0.995562,0.000000,
-0.037600,-0.297634,0.050000,0.094108,-0.995562,0.000000,
-0.037600,-0.297634,-0.050000,0.094108,-0.995562,0.000000,
-0.037600,-0.297634,0.050000,0.094108,-0.995562,0.000000,
-0.018837,-0.299408,-0.050000,0.094108,-0.995562,0.000000,
-0.018837,-0.299408,-0.050000,0.000000,0.000000,-1.000000,
--0.000000,-0.300000,-0.050000,0.000000,0.000000,-1.000000,
-0.012558,-0.199605,-0.050000,0.000000,0.000000,-1.000000,
--0.000000,-0.200000,-0.050000,0.000000,0.000000,-1.000000,
-0.012558,-0.199605,-0.050000,0.000000,0.000000,-1.000000,
--0.000000,-0.300000,-0.050000,0.000000,0.000000,-1.000000,
--0.000000,-0.300000,0.050000,0.000000,0.000000,1.000000,
-0.018837,-0.299408,0.050000,0.000000,0.000000,1.000000,
-0.012558,-0.199605,0.050000,0.000000,0.000000,1.000000,
-0.012558,-0.199605,0.050000,0.000000,0.000000,1.000000,
--0.000000,-0.200000,0.050000,0.000000,0.000000,1.000000,
--0.000000,-0.300000,0.050000,0.000000,0.000000,1.000000,
-0.012558,-0.199605,0.050000,-0.031411,0.999507,0.000000,
-0.012558,-0.199605,-0.050000,-0.031411,0.999507,0.000000,
--0.000000,-0.200000,0.050000,-0.031411,0.999507,0.000000,
--0.000000,-0.200000,-0.050000,-0.031411,0.999507,0.000000,
--0.000000,-0.200000,0.050000,-0.031411,0.999507,0.000000,
-0.012558,-0.199605,-0.050000,-0.031411,0.999507,0.000000,
--0.000000,-0.300000,0.050000,0.031411,-0.999507,0.000000,
--0.000000,-0.300000,-0.050000,0.031411,-0.999507,0.000000,
-0.018837,-0.299408,0.050000,0.031411,-0.999507,0.000000,
-0.018837,-0.299408,-0.050000,0.031411,-0.999507,0.000000,
-0.018837,-0.299408,0.050000,0.031411,-0.999507,0.000000,
--0.000000,-0.300000,-0.050000,0.031411,-0.999507,0.000000,
--0.000000,-0.300000,-0.050000,0.000000,0.000000,-1.000000,
--0.018837,-0.299408,-0.050000,0.000000,0.000000,-1.000000,
--0.000000,-0.200000,-0.050000,0.000000,0.000000,-1.000000,
--0.012558,-0.199605,-0.050000,0.000000,0.000000,-1.000000,
--0.000000,-0.200000,-0.050000,0.000000,0.000000,-1.000000,
--0.018837,-0.299408,-0.050000,0.000000,0.000000,-1.000000,
--0.018837,-0.299408,0.050000,0.000000,0.000000,1.000000,
--0.000000,-0.300000,0.050000,0.000000,0.000000,1.000000,
--0.000000,-0.200000,0.050000,0.000000,0.000000,1.000000,
--0.000000,-0.200000,0.050000,0.000000,0.000000,1.000000,
--0.012558,-0.199605,0.050000,0.000000,0.000000,1.000000,
--0.018837,-0.299408,0.050000,0.000000,0.000000,1.000000,
--0.000000,-0.200000,0.050000,0.031411,0.999507,0.000000,
--0.000000,-0.200000,-0.050000,0.031411,0.999507,0.000000,
--0.012558,-0.199605,0.050000,0.031411,0.999507,0.000000,
--0.012558,-0.199605,-0.050000,0.031411,0.999507,0.000000,
--0.012558,-0.199605,0.050000,0.031411,0.999507,0.000000,
--0.000000,-0.200000,-0.050000,0.031411,0.999507,0.000000,
--0.018837,-0.299408,0.050000,-0.031411,-0.999507,0.000000,
--0.018837,-0.299408,-0.050000,-0.031411,-0.999507,0.000000,
--0.000000,-0.300000,0.050000,-0.031411,-0.999507,0.000000,
--0.000000,-0.300000,-0.050000,-0.031411,-0.999507,0.000000,
--0.000000,-0.300000,0.050000,-0.031411,-0.999507,0.000000,
--0.018837,-0.299408,-0.050000,-0.031411,-0.999507,0.000000,
--0.018837,-0.299408,-0.050000,0.000000,0.000000,-1.000000,
--0.037600,-0.297634,-0.050000,0.000000,0.000000,-1.000000,
--0.012558,-0.199605,-0.050000,0.000000,0.000000,-1.000000,
--0.025067,-0.198423,-0.050000,0.000000,0.000000,-1.000000,
--0.012558,-0.199605,-0.050000,0.000000,0.000000,-1.000000,
--0.037600,-0.297634,-0.050000,0.000000,0.000000,-1.000000,
--0.037600,-0.297634,0.050000,0.000000,0.000000,1.000000,
--0.018837,-0.299408,0.050000,0.000000,0.000000,1.000000,
--0.012558,-0.199605,0.050000,0.000000,0.000000,1.000000,
--0.012558,-0.199605,0.050000,0.000000,0.000000,1.000000,
--0.025067,-0.198423,0.050000,0.000000,0.000000,1.000000,
--0.037600,-0.297634,0.050000,0.000000,0.000000,1.000000,
--0.012558,-0.199605,0.050000,0.094108,0.995562,0.000000,
--0.012558,-0.199605,-0.050000,0.094108,0.995562,0.000000,
--0.025067,-0.198423,0.050000,0.094108,0.995562,0.000000,
--0.025067,-0.198423,-0.050000,0.094108,0.995562,0.000000,
--0.025067,-0.198423,0.050000,0.094108,0.995562,0.000000,
--0.012558,-0.199605,-0.050000,0.094108,0.995562,0.000000,
--0.037600,-0.297634,0.050000,-0.094108,-0.995562,0.000000,
--0.037600,-0.297634,-0.050000,-0.094108,-0.995562,0.000000,
--0.018837,-0.299408,0.050000,-0.094108,-0.995562,0.000000,
--0.018837,-0.299408,-0.050000,-0.094108,-0.995562,0.000000,
--0.018837,-0.299408,0.050000,-0.094108,-0.995562,0.000000,
--0.037600,-0.297634,-0.050000,-0.094108,-0.995562,0.000000,
--0.037600,-0.297634,-0.050000,0.000000,0.000000,-1.000000,
--0.056214,-0.294686,-0.050000,0.000000,0.000000,-1.000000,
--0.025067,-0.198423,-0.050000,0.000000,0.000000,-1.000000,
--0.037476,-0.196457,-0.050000,0.000000,0.000000,-1.000000,
--0.025067,-0.198423,-0.050000,0.000000,0.000000,-1.000000,
--0.056214,-0.294686,-0.050000,0.000000,0.000000,-1.000000,
--0.056214,-0.294686,0.050000,0.000000,0.000000,1.000000,
--0.037600,-0.297634,0.050000,0.000000,0.000000,1.000000,
--0.025067,-0.198423,0.050000,0.000000,0.000000,1.000000,
--0.025067,-0.198423,0.050000,0.000000,0.000000,1.000000,
--0.037476,-0.196457,0.050000,0.000000,0.000000,1.000000,
--0.056214,-0.294686,0.050000,0.000000,0.000000,1.000000,
--0.025067,-0.198423,0.050000,0.156435,0.987688,0.000000,
--0.025067,-0.198423,-0.050000,0.156435,0.987688,0.000000,
--0.037476,-0.196457,0.050000,0.156435,0.987688,0.000000,
--0.037476,-0.196457,-0.050000,0.156435,0.987688,0.000000,
--0.037476,-0.196457,0.050000,0.156435,0.987688,0.000000,
--0.025067,-0.198423,-0.050000,0.156435,0.987688,0.000000,
--0.056214,-0.294686,0.050000,-0.156434,-0.987688,0.000000,
--0.056214,-0.294686,-0.050000,-0.156434,-0.987688,0.000000,
--0.037600,-0.297634,0.050000,-0.156434,-0.987688,0.000000,
--0.037600,-0.297634,-0.050000,-0.156434,-0.987688,0.000000,
--0.037600,-0.297634,0.050000,-0.156434,-0.987688,0.000000,
--0.056214,-0.294686,-0.050000,-0.156434,-0.987688,0.000000,
--0.056214,-0.294686,-0.050000,0.000000,0.000000,-1.000000,
--0.074607,-0.290575,-0.050000,0.000000,0.000000,-1.000000,
--0.037476,-0.196457,-0.050000,0.000000,0.000000,-1.000000,
--0.049738,-0.193717,-0.050000,0.000000,0.000000,-1.000000,
--0.037476,-0.196457,-0.050000,0.000000,0.000000,-1.000000,
--0.074607,-0.290575,-0.050000,0.000000,0.000000,-1.000000,
--0.074607,-0.290575,0.050000,0.000000,0.000000,1.000000,
--0.056214,-0.294686,0.050000,0.000000,0.000000,1.000000,
--0.037476,-0.196457,0.050000,0.000000,0.000000,1.000000,
--0.037476,-0.196457,0.050000,0.000000,0.000000,1.000000,
--0.049738,-0.193717,0.050000,0.000000,0.000000,1.000000,
--0.074607,-0.290575,0.050000,0.000000,0.000000,1.000000,
--0.037476,-0.196457,0.050000,0.218144,0.975917,0.000000,
--0.037476,-0.196457,-0.050000,0.218144,0.975917,0.000000,
--0.049738,-0.193717,0.050000,0.218144,0.975917,0.000000,
--0.049738,-0.193717,-0.050000,0.218144,0.975917,0.000000,
--0.049738,-0.193717,0.050000,0.218144,0.975917,0.000000,
--0.037476,-0.196457,-0.050000,0.218144,0.975917,0.000000,
--0.074607,-0.290575,0.050000,-0.218143,-0.975917,0.000000,
--0.074607,-0.290575,-0.050000,-0.218143,-0.975917,0.000000,
--0.056214,-0.294686,0.050000,-0.218143,-0.975917,0.000000,
--0.056214,-0.294686,-0.050000,-0.218143,-0.975917,0.000000,
--0.056214,-0.294686,0.050000,-0.218143,-0.975917,0.000000,
--0.074607,-0.290575,-0.050000,-0.218143,-0.975917,0.000000,
--0.074607,-0.290575,-0.050000,0.000000,0.000000,-1.000000,
--0.092705,-0.285317,-0.050000,0.000000,0.000000,-1.000000,
--0.049738,-0.193717,-0.050000,0.000000,0.000000,-1.000000,
--0.061803,-0.190211,-0.050000,0.000000,0.000000,-1.000000,
--0.049738,-0.193717,-0.050000,0.000000,0.000000,-1.000000,
--0.092705,-0.285317,-0.050000,0.000000,0.000000,-1.000000,
--0.092705,-0.285317,0.050000,0.000000,0.000000,1.000000,
--0.074607,-0.290575,0.050000,0.000000,0.000000,1.000000,
--0.049738,-0.193717,0.050000,0.000000,0.000000,1.000000,
--0.049738,-0.193717,0.050000,0.000000,0.000000,1.000000,
--0.061803,-0.190211,0.050000,0.000000,0.000000,1.000000,
--0.092705,-0.285317,0.050000,0.000000,0.000000,1.000000,
--0.049738,-0.193717,0.050000,0.278990,0.960294,0.000000,
--0.049738,-0.193717,-0.050000,0.278990,0.960294,0.000000,
--0.061803,-0.190211,0.050000,0.278990,0.960294,0.000000,
--0.061803,-0.190211,-0.050000,0.278990,0.960294,0.000000,
--0.061803,-0.190211,0.050000,0.278990,0.960294,0.000000,
--0.049738,-0.193717,-0.050000,0.278990,0.960294,0.000000,
--0.092705,-0.285317,0.050000,-0.278991,-0.960294,0.000000,
--0.092705,-0.285317,-0.050000,-0.278991,-0.960294,0.000000,
--0.074607,-0.290575,0.050000,-0.278991,-0.960294,0.000000,
--0.074607,-0.290575,-0.050000,-0.278991,-0.960294,0.000000,
--0.074607,-0.290575,0.050000,-0.278991,-0.960294,0.000000,
--0.092705,-0.285317,-0.050000,-0.278991,-0.960294,0.000000,
--0.092705,-0.285317,-0.050000,0.000000,0.000000,-1.000000,
--0.110437,-0.278933,-0.050000,0.000000,0.000000,-1.000000,
--0.061803,-0.190211,-0.050000,0.000000,0.000000,-1.000000,
--0.073625,-0.185955,-0.050000,0.000000,0.000000,-1.000000,
--0.061803,-0.190211,-0.050000,0.000000,0.000000,-1.000000,
--0.110437,-0.278933,-0.050000,0.000000,0.000000,-1.000000,
--0.110437,-0.278933,0.050000,0.000000,0.000000,1.000000,
--0.092705,-0.285317,0.050000,0.000000,0.000000,1.000000,
--0.061803,-0.190211,0.050000,0.000000,0.000000,1.000000,
--0.061803,-0.190211,0.050000,0.000000,0.000000,1.000000,
--0.073625,-0.185955,0.050000,0.000000,0.000000,1.000000,
--0.110437,-0.278933,0.050000,0.000000,0.000000,1.000000,
--0.061803,-0.190211,0.050000,0.338738,0.940881,0.000000,
--0.061803,-0.190211,-0.050000,0.338738,0.940881,0.000000,
--0.073625,-0.185955,0.050000,0.338738,0.940881,0.000000,
--0.073625,-0.185955,-0.050000,0.338738,0.940881,0.000000,
--0.073625,-0.185955,0.050000,0.338738,0.940881,0.000000,
--0.061803,-0.190211,-0.050000,0.338738,0.940881,0.000000,
--0.110437,-0.278933,0.050000,-0.338738,-0.940881,0.000000,
--0.110437,-0.278933,-0.050000,-0.338738,-0.940881,0.000000,
--0.092705,-0.285317,0.050000,-0.338738,-0.940881,0.000000,
--0.092705,-0.285317,-0.050000,-0.338738,-0.940881,0.000000,
--0.092705,-0.285317,0.050000,-0.338738,-0.940881,0.000000,
--0.110437,-0.278933,-0.050000,-0.338738,-0.940881,0.000000,
--0.110437,-0.278933,-0.050000,0.000000,0.000000,-1.000000,
--0.127734,-0.271448,-0.050000,0.000000,0.000000,-1.000000,
--0.073625,-0.185955,-0.050000,0.000000,0.000000,-1.000000,
--0.085156,-0.180965,-0.050000,0.000000,0.000000,-1.000000,
--0.073625,-0.185955,-0.050000,0.000000,0.000000,-1.000000,
--0.127734,-0.271448,-0.050000,0.000000,0.000000,-1.000000,
--0.127734,-0.271448,0.050000,0.000000,0.000000,1.000000,
--0.110437,-0.278933,0.050000,0.000000,0.000000,1.000000,
--0.073625,-0.185955,0.050000,0.000000,0.000000,1.000000,
--0.073625,-0.185955,0.050000,0.000000,0.000000,1.000000,
--0.085156,-0.180965,0.050000,0.000000,0.000000,1.000000,
--0.127734,-0.271448,0.050000,0.000000,0.000000,1.000000,
--0.073625,-0.185955,0.050000,0.397148,0.917755,0.000000,
--0.073625,-0.185955,-0.050000,0.397148,0.917755,0.000000,
--0.085156,-0.180965,0.050000,0.397148,0.917755,0.000000,
--0.085156,-0.180965,-0.050000,0.397148,0.917755,0.000000,
--0.085156,-0.180965,0.050000,0.397148,0.917755,0.000000,
--0.073625,-0.185955,-0.050000,0.397148,0.917755,0.000000,
--0.127734,-0.271448,0.050000,-0.397148,-0.917755,0.000000,
--0.127734,-0.271448,-0.050000,-0.397148,-0.917755,0.000000,
--0.110437,-0.278933,0.050000,-0.397148,-0.917755,0.000000,
--0.110437,-0.278933,-0.050000,-0.397148,-0.917755,0.000000,
--0.110437,-0.278933,0.050000,-0.397148,-0.917755,0.000000,
--0.127734,-0.271448,-0.050000,-0.397148,-0.917755,0.000000,
--0.127734,-0.271448,-0.050000,0.000000,0.000000,-1.000000,
--0.144526,-0.262892,-0.050000,0.000000,0.000000,-1.000000,
--0.085156,-0.180965,-0.050000,0.000000,0.000000,-1.000000,
--0.096351,-0.175261,-0.050000,0.000000,0.000000,-1.000000,
--0.085156,-0.180965,-0.050000,0.000000,0.000000,-1.000000,
--0.144526,-0.262892,-0.050000,0.000000,0.000000,-1.000000,
--0.144526,-0.262892,0.050000,0.000000,0.000000,1.000000,
--0.127734,-0.271448,0.050000,0.000000,0.000000,1.000000,
--0.085156,-0.180965,0.050000,0.000000,0.000000,1.000000,
--0.085156,-0.180965,0.050000,0.000000,0.000000,1.000000,
--0.096351,-0.175261,0.050000,0.000000,0.000000,1.000000,
--0.144526,-0.262892,0.050000,0.000000,0.000000,1.000000,
--0.085156,-0.180965,0.050000,0.453991,0.891007,0.000000,
--0.085156,-0.180965,-0.050000,0.453991,0.891007,0.000000,
--0.096351,-0.175261,0.050000,0.453991,0.891007,0.000000,
--0.096351,-0.175261,-0.050000,0.453991,0.891007,0.000000,
--0.096351,-0.175261,0.050000,0.453991,0.891007,0.000000,
--0.085156,-0.180965,-0.050000,0.453991,0.891007,0.000000,
--0.144526,-0.262892,0.050000,-0.453991,-0.891006,0.000000,
--0.144526,-0.262892,-0.050000,-0.453991,-0.891006,0.000000,
--0.127734,-0.271448,0.050000,-0.453991,-0.891006,0.000000,
--0.127734,-0.271448,-0.050000,-0.453991,-0.891006,0.000000,
--0.127734,-0.271448,0.050000,-0.453991,-0.891006,0.000000,
--0.144526,-0.262892,-0.050000,-0.453991,-0.891006,0.000000,
--0.144526,-0.262892,-0.050000,0.000000,0.000000,-1.000000,
--0.160748,-0.253298,-0.050000,0.000000,0.000000,-1.000000,
--0.096351,-0.175261,-0.050000,0.000000,0.000000,-1.000000,
--0.107165,-0.168866,-0.050000,0.000000,0.000000,-1.000000,
--0.096351,-0.175261,-0.050000,0.000000,0.000000,-1.000000,
--0.160748,-0.253298,-0.050000,0.000000,0.000000,-1.000000,
--0.160748,-0.253298,0.050000,0.000000,0.000000,1.000000,
--0.144526,-0.262892,0.050000,0.000000,0.000000,1.000000,
--0.096351,-0.175261,0.050000,0.000000,0.000000,1.000000,
--0.096351,-0.175261,0.050000,0.000000,0.000000,1.000000,
--0.107165,-0.168866,0.050000,0.000000,0.000000,1.000000,
--0.160748,-0.253298,0.050000,0.000000,0.000000,1.000000,
--0.096351,-0.175261,0.050000,0.509042,0.860742,0.000000,
--0.096351,-0.175261,-0.050000,0.509042,0.860742,0.000000,
--0.107165,-0.168866,0.050000,0.509042,0.860742,0.000000,
--0.107165,-0.168866,-0.050000,0.509042,0.860742,0.000000,
--0.107165,-0.168866,0.050000,0.509042,0.860742,0.000000,
--0.096351,-0.175261,-0.050000,0.509042,0.860742,0.000000,
--0.160748,-0.253298,0.050000,-0.509042,-0.860742,0.000000,
--0.160748,-0.253298,-0.050000,-0.509042,-0.860742,0.000000,
--0.144526,-0.262892,0.050000,-0.509042,-0.860742,0.000000,
--0.144526,-0.262892,-0.050000,-0.509042,-0.860742,0.000000,
--0.144526,-0.262892,0.050000,-0.509042,-0.860742,0.000000,
--0.160748,-0.253298,-0.050000,-0.509042,-0.860742,0.000000,
--0.160748,-0.253298,-0.050000,0.000000,0.000000,-1.000000,
--0.176336,-0.242705,-0.050000,0.000000,0.000000,-1.000000,
--0.107165,-0.168866,-0.050000,0.000000,0.000000,-1.000000,
--0.117557,-0.161803,-0.050000,0.000000,0.000000,-1.000000,
--0.107165,-0.168866,-0.050000,0.000000,0.000000,-1.000000,
--0.176336,-0.242705,-0.050000,0.000000,0.000000,-1.000000,
--0.176336,-0.242705,0.050000,0.000000,0.000000,1.000000,
--0.160748,-0.253298,0.050000,0.000000,0.000000,1.000000,
--0.107165,-0.168866,0.050000,0.000000,0.000000,1.000000,
--0.107165,-0.168866,0.050000,0.000000,0.000000,1.000000,
--0.117557,-0.161803,0.050000,0.000000,0.000000,1.000000,
--0.176336,-0.242705,0.050000,0.000000,0.000000,1.000000,
--0.107165,-0.168866,0.050000,0.562083,0.827081,0.000000,
--0.107165,-0.168866,-0.050000,0.562083,0.827081,0.000000,
--0.117557,-0.161803,0.050000,0.562083,0.827081,0.000000,
--0.117557,-0.161803,-0.050000,0.562083,0.827081,0.000000,
--0.117557,-0.161803,0.050000,0.562083,0.827081,0.000000,
--0.107165,-0.168866,-0.050000,0.562083,0.827081,0.000000,
--0.176336,-0.242705,0.050000,-0.562083,-0.827081,0.000000,
--0.176336,-0.242705,-0.050000,-0.562083,-0.827081,0.000000,
--0.160748,-0.253298,0.050000,-0.562083,-0.827081,0.000000,
--0.160748,-0.253298,-0.050000,-0.562083,-0.827081,0.000000,
--0.160748,-0.253298,0.050000,-0.562083,-0.827081,0.000000,
--0.176336,-0.242705,-0.050000,-0.562083,-0.827081,0.000000,
--0.176336,-0.242705,-0.050000,0.000000,0.000000,-1.000000,
--0.191227,-0.231154,-0.050000,0.000000,0.000000,-1.000000,
--0.117557,-0.161803,-0.050000,0.000000,0.000000,-1.000000,
--0.127485,-0.154103,-0.050000,0.000000,0.000000,-1.000000,
--0.117557,-0.161803,-0.050000,0.000000,0.000000,-1.000000,
--0.191227,-0.231154,-0.050000,0.000000,0.000000,-1.000000,
--0.191227,-0.231154,0.050000,0.000000,0.000000,1.000000,
--0.176336,-0.242705,0.050000,0.000000,0.000000,1.000000,
--0.117557,-0.161803,0.050000,0.000000,0.000000,1.000000,
--0.117557,-0.161803,0.050000,0.000000,0.000000,1.000000,
--0.127485,-0.154103,0.050000,0.000000,0.000000,1.000000,
--0.191227,-0.231154,0.050000,0.000000,0.000000,1.000000,
--0.117557,-0.161803,0.050000,0.612907,0.790155,0.000000,
--0.117557,-0.161803,-0.050000,0.612907,0.790155,0.000000,
--0.127485,-0.154103,0.050000,0.612907,0.790155,0.000000,
--0.127485,-0.154103,-0.050000,0.612907,0.790155,0.000000,
--0.127485,-0.154103,0.050000,0.612907,0.790155,0.000000,
--0.117557,-0.161803,-0.050000,0.612907,0.790155,0.000000,
--0.191227,-0.231154,0.050000,-0.612908,-0.790155,0.000000,
--0.191227,-0.231154,-0.050000,-0.612908,-0.790155,0.000000,
--0.176336,-0.242705,0.050000,-0.612908,-0.790155,0.000000,
--0.176336,-0.242705,-0.050000,-0.612908,-0.790155,0.000000,
--0.176336,-0.242705,0.050000,-0.612908,-0.790155,0.000000,
--0.191227,-0.231154,-0.050000,-0.612908,-0.790155,0.000000,
--0.191227,-0.231154,-0.050000,0.000000,0.000000,-1.000000,
--0.205364,-0.218691,-0.050000,0.000000,0.000000,-1.000000,
--0.127485,-0.154103,-0.050000,0.000000,0.000000,-1.000000,
--0.136909,-0.145794,-0.050000,0.000000,0.000000,-1.000000,
--0.127485,-0.154103,-0.050000,0.000000,0.000000,-1.000000,
--0.205364,-0.218691,-0.050000,0.000000,0.000000,-1.000000,
--0.205364,-0.218691,0.050000,0.000000,0.000000,1.000000,
--0.191227,-0.231154,0.050000,0.000000,0.000000,1.000000,
--0.127485,-0.154103,0.050000,0.000000,0.000000,1.000000,
--0.127485,-0.154103,0.050000,0.000000,0.000000,1.000000,
--0.136909,-0.145794,0.050000,0.000000,0.000000,1.000000,
--0.205364,-0.218691,0.050000,0.000000,0.000000,1.000000,
--0.127485,-0.154103,0.050000,0.661312,0.750111,0.000000,
--0.127485,-0.154103,-0.050000,0.661312,0.750111,0.000000,
--0.136909,-0.145794,0.050000,0.661312,0.750111,0.000000,
--0.136909,-0.145794,-0.050000,0.661312,0.750111,0.000000,
--0.136909,-0.145794,0.050000,0.661312,0.750111,0.000000,
--0.127485,-0.154103,-0.050000,0.661312,0.750111,0.000000,
--0.205364,-0.218691,0.050000,-0.661312,-0.750111,0.000000,
--0.205364,-0.218691,-0.050000,-0.661312,-0.750111,0.000000,
--0.191227,-0.231154,0.050000,-0.661312,-0.750111,0.000000,
--0.191227,-0.231154,-0.050000,-0.661312,-0.750111,0.000000,
--0.191227,-0.231154,0.050000,-0.661312,-0.750111,0.000000,
--0.205364,-0.218691,-0.050000,-0.661312,-0.750111,0.000000,
--0.205364,-0.218691,-0.050000,0.000000,0.000000,-1.000000,
--0.218691,-0.205364,-0.050000,0.000000,0.000000,-1.000000,
--0.136909,-0.145794,-0.050000,0.000000,0.000000,-1.000000,
--0.145794,-0.136909,-0.050000,0.000000,0.000000,-1.000000,
--0.136909,-0.145794,-0.050000,0.000000,0.000000,-1.000000,
--0.218691,-0.205364,-0.050000,0.000000,0.000000,-1.000000,
--0.218691,-0.205364,0.050000,0.000000,0.000000,1.000000,
--0.205364,-0.218691,0.050000,0.000000,0.000000,1.000000,
--0.136909,-0.145794,0.050000,0.000000,0.000000,1.000000,
--0.136909,-0.145794,0.050000,0.000000,0.000000,1.000000,
--0.145794,-0.136909,0.050000,0.000000,0.000000,1.000000,
--0.218691,-0.205364,0.050000,0.000000,0.000000,1.000000,
--0.136909,-0.145794,0.050000,0.707107,0.707107,0.000000,
--0.136909,-0.145794,-0.050000,0.707107,0.707107,0.000000,
--0.145794,-0.136909,0.050000,0.707107,0.707107,0.000000,
--0.145794,-0.136909,-0.050000,0.707107,0.707107,0.000000,
--0.145794,-0.136909,0.050000,0.707107,0.707107,0.000000,
--0.136909,-0.145794,-0.050000,0.707107,0.707107,0.000000,
--0.218691,-0.205364,0.050000,-0.707107,-0.707106,0.000000,
--0.218691,-0.205364,-0.050000,-0.707107,-0.707106,0.000000,
--0.205364,-0.218691,0.050000,-0.707107,-0.707106,0.000000,
--0.205364,-0.218691,-0.050000,-0.707107,-0.707106,0.000000,
--0.205364,-0.218691,0.050000,-0.707107,-0.707106,0.000000,
--0.218691,-0.205364,-0.050000,-0.707107,-0.707106,0.000000,
--0.218691,-0.205364,-0.050000,0.000000,0.000000,-1.000000,
--0.231154,-0.191227,-0.050000,0.000000,0.000000,-1.000000,
--0.145794,-0.136909,-0.050000,0.000000,0.000000,-1.000000,
--0.154103,-0.127485,-0.050000,0.000000,0.000000,-1.000000,
--0.145794,-0.136909,-0.050000,0.000000,0.000000,-1.000000,
--0.231154,-0.191227,-0.050000,0.000000,0.000000,-1.000000,
--0.231154,-0.191227,0.050000,0.000000,0.000000,1.000000,
--0.218691,-0.205364,0.050000,0.000000,0.000000,1.000000,
--0.145794,-0.136909,0.050000,0.000000,0.000000,1.000000,
--0.145794,-0.136909,0.050000,0.000000,0.000000,1.000000,
--0.154103,-0.127485,0.050000,0.000000,0.000000,1.000000,
--0.231154,-0.191227,0.050000,0.000000,0.000000,1.000000,
--0.145794,-0.136909,0.050000,0.750111,0.661312,0.000000,
--0.145794,-0.136909,-0.050000,0.750111,0.661312,0.000000,
--0.154103,-0.127485,0.050000,0.750111,0.661312,0.000000,
--0.154103,-0.127485,-0.050000,0.750111,0.661312,0.000000,
--0.154103,-0.127485,0.050000,0.750111,0.661312,0.000000,
--0.145794,-0.136909,-0.050000,0.750111,0.661312,0.000000,
--0.231154,-0.191227,0.050000,-0.750111,-0.661312,0.000000,
--0.231154,-0.191227,-0.050000,-0.750111,-0.661312,0.000000,
--0.218691,-0.205364,0.050000,-0.750111,-0.661312,0.000000,
--0.218691,-0.205364,-0.050000,-0.750111,-0.661312,0.000000,
--0.218691,-0.205364,0.050000,-0.750111,-0.661312,0.000000,
--0.231154,-0.191227,-0.050000,-0.750111,-0.661312,0.000000,
--0.231154,-0.191227,-0.050000,0.000000,0.000000,-1.000000,
--0.242705,-0.176336,-0.050000,0.000000,0.000000,-1.000000,
--0.154103,-0.127485,-0.050000,0.000000,0.000000,-1.000000,
--0.161803,-0.117557,-0.050000,0.000000,0.000000,-1.000000,
--0.154103,-0.127485,-0.050000,0.000000,0.000000,-1.000000,
--0.242705,-0.176336,-0.050000,0.000000,0.000000,-1.000000,
--0.242705,-0.176336,0.050000,0.000000,0.000000,1.000000,
--0.231154,-0.191227,0.050000,0.000000,0.000000,1.000000,
--0.154103,-0.127485,0.050000,0.000000,0.000000,1.000000,
--0.154103,-0.127485,0.050000,0.000000,0.000000,1.000000,
--0.161803,-0.117557,0.050000,0.000000,0.000000,1.000000,
--0.242705,-0.176336,0.050000,0.000000,0.000000,1.000000,
--0.154103,-0.127485,0.050000,0.790155,0.612907,0.000000,
--0.154103,-0.127485,-0.050000,0.790155,0.612907,0.000000,
--0.161803,-0.117557,0.050000,0.790155,0.612907,0.000000,
--0.161803,-0.117557,-0.050000,0.790155,0.612907,0.000000,
--0.161803,-0.117557,0.050000,0.790155,0.612907,0.000000,
--0.154103,-0.127485,-0.050000,0.790155,0.612907,0.000000,
--0.242705,-0.176336,0.050000,-0.790155,-0.612908,0.000000,
--0.242705,-0.176336,-0.050000,-0.790155,-0.612908,0.000000,
--0.231154,-0.191227,0.050000,-0.790155,-0.612908,0.000000,
--0.231154,-0.191227,-0.050000,-0.790155,-0.612908,0.000000,
--0.231154,-0.191227,0.050000,-0.790155,-0.612908,0.000000,
--0.242705,-0.176336,-0.050000,-0.790155,-0.612908,0.000000,
--0.242705,-0.176336,-0.050000,0.000000,0.000000,-1.000000,
--0.253298,-0.160748,-0.050000,0.000000,0.000000,-1.000000,
--0.161803,-0.117557,-0.050000,0.000000,0.000000,-1.000000,
--0.168866,-0.107165,-0.050000,0.000000,0.000000,-1.000000,
--0.161803,-0.117557,-0.050000,0.000000,0.000000,-1.000000,
--0.253298,-0.160748,-0.050000,0.000000,0.000000,-1.000000,
--0.253298,-0.160748,0.050000,0.000000,0.000000,1.000000,
--0.242705,-0.176336,0.050000,0.000000,0.000000,1.000000,
--0.161803,-0.117557,0.050000,0.000000,0.000000,1.000000,
--0.161803,-0.117557,0.050000,0.000000,0.000000,1.000000,
--0.168866,-0.107165,0.050000,0.000000,0.000000,1.000000,
--0.253298,-0.160748,0.050000,0.000000,0.000000,1.000000,
--0.161803,-0.117557,0.050000,0.827080,0.562083,0.000000,
--0.161803,-0.117557,-0.050000,0.827080,0.562083,0.000000,
--0.168866,-0.107165,0.050000,0.827080,0.562083,0.000000,
--0.168866,-0.107165,-0.050000,0.827080,0.562083,0.000000,
--0.168866,-0.107165,0.050000,0.827080,0.562083,0.000000,
--0.161803,-0.117557,-0.050000,0.827080,0.562083,0.000000,
--0.253298,-0.160748,0.050000,-0.827081,-0.562083,0.000000,
--0.253298,-0.160748,-0.050000,-0.827081,-0.562083,0.000000,
--0.242705,-0.176336,0.050000,-0.827081,-0.562083,0.000000,
--0.242705,-0.176336,-0.050000,-0.827081,-0.562083,0.000000,
--0.242705,-0.176336,0.050000,-0.827081,-0.562083,0.000000,
--0.253298,-0.160748,-0.050000,-0.827081,-0.562083,0.000000,
--0.253298,-0.160748,-0.050000,0.000000,0.000000,-1.000000,
--0.262892,-0.144526,-0.050000,0.000000,0.000000,-1.000000,
--0.168866,-0.107165,-0.050000,0.000000,0.000000,-1.000000,
--0.175261,-0.096351,-0.050000,0.000000,0.000000,-1.000000,
--0.168866,-0.107165,-0.050000,0.000000,0.000000,-1.000000,
--0.262892,-0.144526,-0.050000,0.000000,0.000000,-1.000000,
--0.262892,-0.144526,0.050000,0.000000,0.000000,1.000000,
--0.253298,-0.160748,0.050000,0.000000,0.000000,1.000000,
--0.168866,-0.107165,0.050000,0.000000,0.000000,1.000000,
--0.168866,-0.107165,0.050000,0.000000,0.000000,1.000000,
--0.175261,-0.096351,0.050000,0.000000,0.000000,1.000000,
--0.262892,-0.144526,0.050000,0.000000,0.000000,1.000000,
--0.168866,-0.107165,0.050000,0.860742,0.509042,0.000000,
--0.168866,-0.107165,-0.050000,0.860742,0.509042,0.000000,
--0.175261,-0.096351,0.050000,0.860742,0.509042,0.000000,
--0.175261,-0.096351,-0.050000,0.860742,0.509042,0.000000,
--0.175261,-0.096351,0.050000,0.860742,0.509042,0.000000,
--0.168866,-0.107165,-0.050000,0.860742,0.509042,0.000000,
--0.262892,-0.144526,0.050000,-0.860742,-0.509042,0.000000,
--0.262892,-0.144526,-0.050000,-0.860742,-0.509042,0.000000,
--0.253298,-0.160748,0.050000,-0.860742,-0.509042,0.000000,
--0.253298,-0.160748,-0.050000,-0.860742,-0.509042,0.000000,
--0.253298,-0.160748,0.050000,-0.860742,-0.509042,0.000000,
--0.262892,-0.144526,-0.050000,-0.860742,-0.509042,0.000000,
--0.262892,-0.144526,-0.050000,0.000000,0.000000,-1.000000,
--0.271448,-0.127734,-0.050000,0.000000,0.000000,-1.000000,
--0.175261,-0.096351,-0.050000,0.000000,0.000000,-1.000000,
--0.180965,-0.085156,-0.050000,0.000000,0.000000,-1.000000,
--0.175261,-0.096351,-0.050000,0.000000,0.000000,-1.000000,
--0.271448,-0.127734,-0.050000,0.000000,0.000000,-1.000000,
--0.271448,-0.127734,0.050000,0.000000,0.000000,1.000000,
--0.262892,-0.144526,0.050000,0.000000,0.000000,1.000000,
--0.175261,-0.096351,0.050000,0.000000,0.000000,1.000000,
--0.175261,-0.096351,0.050000,0.000000,0.000000,1.000000,
--0.180965,-0.085156,0.050000,0.000000,0.000000,1.000000,
--0.271448,-0.127734,0.050000,0.000000,0.000000,1.000000,
--0.175261,-0.096351,0.050000,0.891006,0.453991,0.000000,
--0.175261,-0.096351,-0.050000,0.891006,0.453991,0.000000,
--0.180965,-0.085156,0.050000,0.891006,0.453991,0.000000,
--0.180965,-0.085156,-0.050000,0.891006,0.453991,0.000000,
--0.180965,-0.085156,0.050000,0.891006,0.453991,0.000000,
--0.175261,-0.096351,-0.050000,0.891006,0.453991,0.000000,
--0.271448,-0.127734,0.050000,-0.891006,-0.453991,0.000000,
--0.271448,-0.127734,-0.050000,-0.891006,-0.453991,0.000000,
--0.262892,-0.144526,0.050000,-0.891006,-0.453991,0.000000,
--0.262892,-0.144526,-0.050000,-0.891006,-0.453991,0.000000,
--0.262892,-0.144526,0.050000,-0.891006,-0.453991,0.000000,
--0.271448,-0.127734,-0.050000,-0.891006,-0.453991,0.000000,
--0.271448,-0.127734,-0.050000,0.000000,0.000000,-1.000000,
--0.278933,-0.110437,-0.050000,0.000000,0.000000,-1.000000,
--0.180965,-0.085156,-0.050000,0.000000,0.000000,-1.000000,
--0.185955,-0.073625,-0.050000,0.000000,0.000000,-1.000000,
--0.180965,-0.085156,-0.050000,0.000000,0.000000,-1.000000,
--0.278933,-0.110437,-0.050000,0.000000,0.000000,-1.000000,
--0.278933,-0.110437,0.050000,0.000000,0.000000,1.000000,
--0.271448,-0.127734,0.050000,0.000000,0.000000,1.000000,
--0.180965,-0.085156,0.050000,0.000000,0.000000,1.000000,
--0.180965,-0.085156,0.050000,0.000000,0.000000,1.000000,
--0.185955,-0.073625,0.050000,0.000000,0.000000,1.000000,
--0.278933,-0.110437,0.050000,0.000000,0.000000,1.000000,
--0.180965,-0.085156,0.050000,0.917755,0.397147,0.000000,
--0.180965,-0.085156,-0.050000,0.917755,0.397147,0.000000,
--0.185955,-0.073625,0.050000,0.917755,0.397147,0.000000,
--0.185955,-0.073625,-0.050000,0.917755,0.397147,0.000000,
--0.185955,-0.073625,0.050000,0.917755,0.397147,0.000000,
--0.180965,-0.085156,-0.050000,0.917755,0.397147,0.000000,
--0.278933,-0.110437,0.050000,-0.917755,-0.397148,0.000000,
--0.278933,-0.110437,-0.050000,-0.917755,-0.397148,0.000000,
--0.271448,-0.127734,0.050000,-0.917755,-0.397148,0.000000,
--0.271448,-0.127734,-0.050000,-0.917755,-0.397148,0.000000,
--0.271448,-0.127734,0.050000,-0.917755,-0.397148,0.000000,
--0.278933,-0.110437,-0.050000,-0.917755,-0.397148,0.000000,
--0.278933,-0.110437,-0.050000,0.000000,0.000000,-1.000000,
--0.285317,-0.092705,-0.050000,0.000000,0.000000,-1.000000,
--0.185955,-0.073625,-0.050000,0.000000,0.000000,-1.000000,
--0.190211,-0.061803,-0.050000,0.000000,0.000000,-1.000000,
--0.185955,-0.073625,-0.050000,0.000000,0.000000,-1.000000,
--0.285317,-0.092705,-0.050000,0.000000,0.000000,-1.000000,
--0.285317,-0.092705,0.050000,0.000000,0.000000,1.000000,
--0.278933,-0.110437,0.050000,0.000000,0.000000,1.000000,
--0.185955,-0.073625,0.050000,0.000000,0.000000,1.000000,
--0.185955,-0.073625,0.050000,0.000000,0.000000,1.000000,
--0.190211,-0.061803,0.050000,0.000000,0.000000,1.000000,
--0.285317,-0.092705,0.050000,0.000000,0.000000,1.000000,
--0.185955,-0.073625,0.050000,0.940881,0.338738,0.000000,
--0.185955,-0.073625,-0.050000,0.940881,0.338738,0.000000,
--0.190211,-0.061803,0.050000,0.940881,0.338738,0.000000,
--0.190211,-0.061803,-0.050000,0.940881,0.338738,0.000000,
--0.190211,-0.061803,0.050000,0.940881,0.338738,0.000000,
--0.185955,-0.073625,-0.050000,0.940881,0.338738,0.000000,
--0.285317,-0.092705,0.050000,-0.940881,-0.338738,0.000000,
--0.285317,-0.092705,-0.050000,-0.940881,-0.338738,0.000000,
--0.278933,-0.110437,0.050000,-0.940881,-0.338738,0.000000,
--0.278933,-0.110437,-0.050000,-0.940881,-0.338738,0.000000,
--0.278933,-0.110437,0.050000,-0.940881,-0.338738,0.000000,
--0.285317,-0.092705,-0.050000,-0.940881,-0.338738,0.000000,
--0.285317,-0.092705,-0.050000,0.000000,0.000000,-1.000000,
--0.290575,-0.074607,-0.050000,0.000000,0.000000,-1.000000,
--0.190211,-0.061803,-0.050000,0.000000,0.000000,-1.000000,
--0.193717,-0.049738,-0.050000,0.000000,0.000000,-1.000000,
--0.190211,-0.061803,-0.050000,0.000000,0.000000,-1.000000,
--0.290575,-0.074607,-0.050000,0.000000,0.000000,-1.000000,
--0.290575,-0.074607,0.050000,0.000000,0.000000,1.000000,
--0.285317,-0.092705,0.050000,0.000000,0.000000,1.000000,
--0.190211,-0.061803,0.050000,0.000000,0.000000,1.000000,
--0.190211,-0.061803,0.050000,0.000000,0.000000,1.000000,
--0.193717,-0.049738,0.050000,0.000000,0.000000,1.000000,
--0.290575,-0.074607,0.050000,0.000000,0.000000,1.000000,
--0.190211,-0.061803,0.050000,0.960294,0.278991,0.000000,
--0.190211,-0.061803,-0.050000,0.960294,0.278991,0.000000,
--0.193717,-0.049738,0.050000,0.960294,0.278991,0.000000,
--0.193717,-0.049738,-0.050000,0.960294,0.278991,0.000000,
--0.193717,-0.049738,0.050000,0.960294,0.278991,0.000000,
--0.190211,-0.061803,-0.050000,0.960294,0.278991,0.000000,
--0.290575,-0.074607,0.050000,-0.960293,-0.278993,0.000000,
--0.290575,-0.074607,-0.050000,-0.960293,-0.278993,0.000000,
--0.285317,-0.092705,0.050000,-0.960293,-0.278993,0.000000,
--0.285317,-0.092705,-0.050000,-0.960293,-0.278993,0.000000,
--0.285317,-0.092705,0.050000,-0.960293,-0.278993,0.000000,
--0.290575,-0.074607,-0.050000,-0.960293,-0.278993,0.000000,
--0.290575,-0.074607,-0.050000,0.000000,0.000000,-1.000000,
--0.294686,-0.056214,-0.050000,0.000000,0.000000,-1.000000,
--0.193717,-0.049738,-0.050000,0.000000,0.000000,-1.000000,
--0.196457,-0.037476,-0.050000,0.000000,0.000000,-1.000000,
--0.193717,-0.049738,-0.050000,0.000000,0.000000,-1.000000,
--0.294686,-0.056214,-0.050000,0.000000,0.000000,-1.000000,
--0.294686,-0.056214,0.050000,0.000000,0.000000,1.000000,
--0.290575,-0.074607,0.050000,0.000000,0.000000,1.000000,
--0.193717,-0.049738,0.050000,0.000000,0.000000,1.000000,
--0.193717,-0.049738,0.050000,0.000000,0.000000,1.000000,
--0.196457,-0.037476,0.050000,0.000000,0.000000,1.000000,
--0.294686,-0.056214,0.050000,0.000000,0.000000,1.000000,
--0.193717,-0.049738,0.050000,0.975917,0.218143,0.000000,
--0.193717,-0.049738,-0.050000,0.975917,0.218143,0.000000,
--0.196457,-0.037476,0.050000,0.975917,0.218143,0.000000,
--0.196457,-0.037476,-0.050000,0.975917,0.218143,0.000000,
--0.196457,-0.037476,0.050000,0.975917,0.218143,0.000000,
--0.193717,-0.049738,-0.050000,0.975917,0.218143,0.000000,
--0.294686,-0.056214,0.050000,-0.975917,-0.218142,0.000000,
--0.294686,-0.056214,-0.050000,-0.975917,-0.218142,0.000000,
--0.290575,-0.074607,0.050000,-0.975917,-0.218142,0.000000,
--0.290575,-0.074607,-0.050000,-0.975917,-0.218142,0.000000,
--0.290575,-0.074607,0.050000,-0.975917,-0.218142,0.000000,
--0.294686,-0.056214,-0.050000,-0.975917,-0.218142,0.000000,
--0.294686,-0.056214,-0.050000,0.000000,0.000000,-1.000000,
--0.297634,-0.037600,-0.050000,0.000000,0.000000,-1.000000,
--0.196457,-0.037476,-0.050000,0.000000,0.000000,-1.000000,
--0.198423,-0.025067,-0.050000,0.000000,0.000000,-1.000000,
--0.196457,-0.037476,-0.050000,0.000000,0.000000,-1.000000,
--0.297634,-0.037600,-0.050000,0.000000,0.000000,-1.000000,
--0.297634,-0.037600,0.050000,0.000000,0.000000,1.000000,
--0.294686,-0.056214,0.050000,0.000000,0.000000,1.000000,
--0.196457,-0.037476,0.050000,0.000000,0.000000,1.000000,
--0.196457,-0.037476,0.050000,0.000000,0.000000,1.000000,
--0.198423,-0.025067,0.050000,0.000000,0.000000,1.000000,
--0.297634,-0.037600,0.050000,0.000000,0.000000,1.000000,
--0.196457,-0.037476,0.050000,0.987688,0.156436,0.000000,
--0.196457,-0.037476,-0.050000,0.987688,0.156436,0.000000,
--0.198423,-0.025067,0.050000,0.987688,0.156436,0.000000,
--0.198423,-0.025067,-0.050000,0.987688,0.156436,0.000000,
--0.198423,-0.025067,0.050000,0.987688,0.156436,0.000000,
--0.196457,-0.037476,-0.050000,0.987688,0.156436,0.000000,
--0.297634,-0.037600,0.050000,-0.987688,-0.156435,0.000000,
--0.297634,-0.037600,-0.050000,-0.987688,-0.156435,0.000000,
--0.294686,-0.056214,0.050000,-0.987688,-0.156435,0.000000,
--0.294686,-0.056214,-0.050000,-0.987688,-0.156435,0.000000,
--0.294686,-0.056214,0.050000,-0.987688,-0.156435,0.000000,
--0.297634,-0.037600,-0.050000,-0.987688,-0.156435,0.000000,
--0.297634,-0.037600,-0.050000,0.000000,0.000000,-1.000000,
--0.299408,-0.018837,-0.050000,0.000000,0.000000,-1.000000,
--0.198423,-0.025067,-0.050000,0.000000,0.000000,-1.000000,
--0.199605,-0.012558,-0.050000,0.000000,0.000000,-1.000000,
--0.198423,-0.025067,-0.050000,0.000000,0.000000,-1.000000,
--0.299408,-0.018837,-0.050000,0.000000,0.000000,-1.000000,
--0.299408,-0.018837,0.050000,0.000000,0.000000,1.000000,
--0.297634,-0.037600,0.050000,0.000000,0.000000,1.000000,
--0.198423,-0.025067,0.050000,0.000000,0.000000,1.000000,
--0.198423,-0.025067,0.050000,0.000000,0.000000,1.000000,
--0.199605,-0.012558,0.050000,0.000000,0.000000,1.000000,
--0.299408,-0.018837,0.050000,0.000000,0.000000,1.000000,
--0.198423,-0.025067,0.050000,0.995562,0.094107,0.000000,
--0.198423,-0.025067,-0.050000,0.995562,0.094107,0.000000,
--0.199605,-0.012558,0.050000,0.995562,0.094107,0.000000,
--0.199605,-0.012558,-0.050000,0.995562,0.094107,0.000000,
--0.199605,-0.012558,0.050000,0.995562,0.094107,0.000000,
--0.198423,-0.025067,-0.050000,0.995562,0.094107,0.000000,
--0.299408,-0.018837,0.050000,-0.995562,-0.094108,0.000000,
--0.299408,-0.018837,-0.050000,-0.995562,-0.094108,0.000000,
--0.297634,-0.037600,0.050000,-0.995562,-0.094108,0.000000,
--0.297634,-0.037600,-0.050000,-0.995562,-0.094108,0.000000,
--0.297634,-0.037600,0.050000,-0.995562,-0.094108,0.000000,
--0.299408,-0.018837,-0.050000,-0.995562,-0.094108,0.000000,
--0.299408,-0.018837,-0.050000,0.000000,0.000000,-1.000000,
--0.300000,0.000000,-0.050000,0.000000,0.000000,-1.000000,
--0.199605,-0.012558,-0.050000,0.000000,0.000000,-1.000000,
--0.200000,0.000000,-0.050000,0.000000,0.000000,-1.000000,
--0.199605,-0.012558,-0.050000,0.000000,0.000000,-1.000000,
--0.300000,0.000000,-0.050000,0.000000,0.000000,-1.000000,
--0.300000,0.000000,0.050000,0.000000,0.000000,1.000000,
--0.299408,-0.018837,0.050000,0.000000,0.000000,1.000000,
--0.199605,-0.012558,0.050000,0.000000,0.000000,1.000000,
--0.199605,-0.012558,0.050000,0.000000,0.000000,1.000000,
--0.200000,0.000000,0.050000,0.000000,0.000000,1.000000,
--0.300000,0.000000,0.050000,0.000000,0.000000,1.000000,
--0.199605,-0.012558,0.050000,0.999507,0.031411,0.000000,
--0.199605,-0.012558,-0.050000,0.999507,0.031411,0.000000,
--0.200000,0.000000,0.050000,0.999507,0.031411,0.000000,
--0.200000,0.000000,-0.050000,0.999507,0.031411,0.000000,
--0.200000,0.000000,0.050000,0.999507,0.031411,0.000000,
--0.199605,-0.012558,-0.050000,0.999507,0.031411,0.000000,
--0.300000,0.000000,0.050000,-0.999507,-0.031411,0.000000,
--0.300000,0.000000,-0.050000,-0.999507,-0.031411,0.000000,
--0.299408,-0.018837,0.050000,-0.999507,-0.031411,0.000000,
--0.299408,-0.018837,-0.050000,-0.999507,-0.031411,0.000000,
--0.299408,-0.018837,0.050000,-0.999507,-0.031411,0.000000,
--0.300000,0.000000,-0.050000,-0.999507,-0.031411,0.000000,
--0.300000,0.000000,-0.050000,0.000000,0.000000,-1.000000,
--0.299408,0.018837,-0.050000,0.000000,0.000000,-1.000000,
--0.200000,0.000000,-0.050000,0.000000,0.000000,-1.000000,
--0.199605,0.012558,-0.050000,0.000000,0.000000,-1.000000,
--0.200000,0.000000,-0.050000,0.000000,0.000000,-1.000000,
--0.299408,0.018837,-0.050000,0.000000,0.000000,-1.000000,
--0.299408,0.018837,0.050000,0.000000,0.000000,1.000000,
--0.300000,0.000000,0.050000,0.000000,0.000000,1.000000,
--0.200000,0.000000,0.050000,0.000000,0.000000,1.000000,
--0.200000,0.000000,0.050000,0.000000,0.000000,1.000000,
--0.199605,0.012558,0.050000,0.000000,0.000000,1.000000,
--0.299408,0.018837,0.050000,0.000000,0.000000,1.000000,
--0.200000,0.000000,0.050000,0.999507,-0.031411,0.000000,
--0.200000,0.000000,-0.050000,0.999507,-0.031411,0.000000,
--0.199605,0.012558,0.050000,0.999507,-0.031411,0.000000,
--0.199605,0.012558,-0.050000,0.999507,-0.031411,0.000000,
--0.199605,0.012558,0.050000,0.999507,-0.031411,0.000000,
--0.200000,0.000000,-0.050000,0.999507,-0.031411,0.000000,
--0.299408,0.018837,0.050000,-0.999507,0.031411,0.000000,
--0.299408,0.018837,-0.050000,-0.999507,0.031411,0.000000,
--0.300000,0.000000,0.050000,-0.999507,0.031411,0.000000,
--0.300000,0.000000,-0.050000,-0.999507,0.031411,0.000000,
--0.300000,0.000000,0.050000,-0.999507,0.031411,0.000000,
--0.299408,0.018837,-0.050000,-0.999507,0.031411,0.000000,
--0.299408,0.018837,-0.050000,0.000000,0.000000,-1.000000,
--0.297634,0.037600,-0.050000,0.000000,0.000000,-1.000000,
--0.199605,0.012558,-0.050000,0.000000,0.000000,-1.000000,
--0.198423,0.025067,-0.050000,0.000000,0.000000,-1.000000,
--0.199605,0.012558,-0.050000,0.000000,0.000000,-1.000000,
--0.297634,0.037600,-0.050000,0.000000,0.000000,-1.000000,
--0.297634,0.037600,0.050000,0.000000,0.000000,1.000000,
--0.299408,0.018837,0.050000,0.000000,0.000000,1.000000,
--0.199605,0.012558,0.050000,0.000000,0.000000,1.000000,
--0.199605,0.012558,0.050000,0.000000,0.000000,1.000000,
--0.198423,0.025067,0.050000,0.000000,0.000000,1.000000,
--0.297634,0.037600,0.050000,0.000000,0.000000,1.000000,
--0.199605,0.012558,0.050000,0.995562,-0.094107,0.000000,
--0.199605,0.012558,-0.050000,0.995562,-0.094107,0.000000,
--0.198423,0.025067,0.050000,0.995562,-0.094107,0.000000,
--0.198423,0.025067,-0.050000,0.995562,-0.094107,0.000000,
--0.198423,0.025067,0.050000,0.995562,-0.094107,0.000000,
--0.199605,0.012558,-0.050000,0.995562,-0.094107,0.000000,
--0.297634,0.037600,0.050000,-0.995562,0.094108,0.000000,
--0.297634,0.037600,-0.050000,-0.995562,0.094108,0.000000,
--0.299408,0.018837,0.050000,-0.995562,0.094108,0.000000,
--0.299408,0.018837,-0.050000,-0.995562,0.094108,0.000000,
--0.299408,0.018837,0.050000,-0.995562,0.094108,0.000000,
--0.297634,0.037600,-0.050000,-0.995562,0.094108,0.000000,
--0.297634,0.037600,-0.050000,0.000000,0.000000,-1.000000,
--0.294686,0.056214,-0.050000,0.000000,0.000000,-1.000000,
--0.198423,0.025067,-0.050000,0.000000,0.000000,-1.000000,
--0.196457,0.037476,-0.050000,0.000000,0.000000,-1.000000,
--0.198423,0.025067,-0.050000,0.000000,0.000000,-1.000000,
--0.294686,0.056214,-0.050000,0.000000,0.000000,-1.000000,
--0.294686,0.056214,0.050000,0.000000,0.000000,1.000000,
--0.297634,0.037600,0.050000,0.000000,0.000000,1.000000,
--0.198423,0.025067,0.050000,0.000000,0.000000,1.000000,
--0.198423,0.025067,0.050000,0.000000,0.000000,1.000000,
--0.196457,0.037476,0.050000,0.000000,0.000000,1.000000,
--0.294686,0.056214,0.050000,0.000000,0.000000,1.000000,
--0.198423,0.025067,0.050000,0.987688,-0.156436,0.000000,
--0.198423,0.025067,-0.050000,0.987688,-0.156436,0.000000,
--0.196457,0.037476,0.050000,0.987688,-0.156436,0.000000,
--0.196457,0.037476,-0.050000,0.987688,-0.156436,0.000000,
--0.196457,0.037476,0.050000,0.987688,-0.156436,0.000000,
--0.198423,0.025067,-0.050000,0.987688,-0.156436,0.000000,
--0.294686,0.056214,0.050000,-0.987688,0.156435,0.000000,
--0.294686,0.056214,-0.050000,-0.987688,0.156435,0.000000,
--0.297634,0.037600,0.050000,-0.987688,0.156435,0.000000,
--0.297634,0.037600,-0.050000,-0.987688,0.156435,0.000000,
--0.297634,0.037600,0.050000,-0.987688,0.156435,0.000000,
--0.294686,0.056214,-0.050000,-0.987688,0.156435,0.000000,
--0.294686,0.056214,-0.050000,0.000000,0.000000,-1.000000,
--0.290575,0.074607,-0.050000,0.000000,0.000000,-1.000000,
--0.196457,0.037476,-0.050000,0.000000,0.000000,-1.000000,
--0.193717,0.049738,-0.050000,0.000000,0.000000,-1.000000,
--0.196457,0.037476,-0.050000,0.000000,0.000000,-1.000000,
--0.290575,0.074607,-0.050000,0.000000,0.000000,-1.000000,
--0.290575,0.074607,0.050000,0.000000,0.000000,1.000000,
--0.294686,0.056214,0.050000,0.000000,0.000000,1.000000,
--0.196457,0.037476,0.050000,0.000000,0.000000,1.000000,
--0.196457,0.037476,0.050000,0.000000,0.000000,1.000000,
--0.193717,0.049738,0.050000,0.000000,0.000000,1.000000,
--0.290575,0.074607,0.050000,0.000000,0.000000,1.000000,
--0.196457,0.037476,0.050000,0.975917,-0.218143,0.000000,
--0.196457,0.037476,-0.050000,0.975917,-0.218143,0.000000,
--0.193717,0.049738,0.050000,0.975917,-0.218143,0.000000,
--0.193717,0.049738,-0.050000,0.975917,-0.218143,0.000000,
--0.193717,0.049738,0.050000,0.975917,-0.218143,0.000000,
--0.196457,0.037476,-0.050000,0.975917,-0.218143,0.000000,
--0.290575,0.074607,0.050000,-0.975917,0.218143,0.000000,
--0.290575,0.074607,-0.050000,-0.975917,0.218143,0.000000,
--0.294686,0.056214,0.050000,-0.975917,0.218143,0.000000,
--0.294686,0.056214,-0.050000,-0.975917,0.218143,0.000000,
--0.294686,0.056214,0.050000,-0.975917,0.218143,0.000000,
--0.290575,0.074607,-0.050000,-0.975917,0.218143,0.000000,
--0.290575,0.074607,-0.050000,0.000000,0.000000,-1.000000,
--0.285317,0.092705,-0.050000,0.000000,0.000000,-1.000000,
--0.193717,0.049738,-0.050000,0.000000,0.000000,-1.000000,
--0.190211,0.061803,-0.050000,0.000000,0.000000,-1.000000,
--0.193717,0.049738,-0.050000,0.000000,0.000000,-1.000000,
--0.285317,0.092705,-0.050000,0.000000,0.000000,-1.000000,
--0.285317,0.092705,0.050000,0.000000,0.000000,1.000000,
--0.290575,0.074607,0.050000,0.000000,0.000000,1.000000,
--0.193717,0.049738,0.050000,0.000000,0.000000,1.000000,
--0.193717,0.049738,0.050000,0.000000,0.000000,1.000000,
--0.190211,0.061803,0.050000,0.000000,0.000000,1.000000,
--0.285317,0.092705,0.050000,0.000000,0.000000,1.000000,
--0.193717,0.049738,0.050000,0.960294,-0.278991,0.000000,
--0.193717,0.049738,-0.050000,0.960294,-0.278991,0.000000,
--0.190211,0.061803,0.050000,0.960294,-0.278991,0.000000,
--0.190211,0.061803,-0.050000,0.960294,-0.278991,0.000000,
--0.190211,0.061803,0.050000,0.960294,-0.278991,0.000000,
--0.193717,0.049738,-0.050000,0.960294,-0.278991,0.000000,
--0.285317,0.092705,0.050000,-0.960294,0.278991,0.000000,
--0.285317,0.092705,-0.050000,-0.960294,0.278991,0.000000,
--0.290575,0.074607,0.050000,-0.960294,0.278991,0.000000,
--0.290575,0.074607,-0.050000,-0.960294,0.278991,0.000000,
--0.290575,0.074607,0.050000,-0.960294,0.278991,0.000000,
--0.285317,0.092705,-0.050000,-0.960294,0.278991,0.000000,
--0.285317,0.092705,-0.050000,0.000000,0.000000,-1.000000,
--0.278933,0.110437,-0.050000,0.000000,0.000000,-1.000000,
--0.190211,0.061803,-0.050000,0.000000,0.000000,-1.000000,
--0.185955,0.073625,-0.050000,0.000000,0.000000,-1.000000,
--0.190211,0.061803,-0.050000,0.000000,0.000000,-1.000000,
--0.278933,0.110437,-0.050000,0.000000,0.000000,-1.000000,
--0.278933,0.110437,0.050000,0.000000,0.000000,1.000000,
--0.285317,0.092705,0.050000,0.000000,0.000000,1.000000,
--0.190211,0.061803,0.050000,0.000000,0.000000,1.000000,
--0.190211,0.061803,0.050000,0.000000,0.000000,1.000000,
--0.185955,0.073625,0.050000,0.000000,0.000000,1.000000,
--0.278933,0.110437,0.050000,0.000000,0.000000,1.000000,
--0.190211,0.061803,0.050000,0.940881,-0.338738,0.000000,
--0.190211,0.061803,-0.050000,0.940881,-0.338738,0.000000,
--0.185955,0.073625,0.050000,0.940881,-0.338738,0.000000,
--0.185955,0.073625,-0.050000,0.940881,-0.338738,0.000000,
--0.185955,0.073625,0.050000,0.940881,-0.338738,0.000000,
--0.190211,0.061803,-0.050000,0.940881,-0.338738,0.000000,
--0.278933,0.110437,0.050000,-0.940881,0.338738,0.000000,
--0.278933,0.110437,-0.050000,-0.940881,0.338738,0.000000,
--0.285317,0.092705,0.050000,-0.940881,0.338738,0.000000,
--0.285317,0.092705,-0.050000,-0.940881,0.338738,0.000000,
--0.285317,0.092705,0.050000,-0.940881,0.338738,0.000000,
--0.278933,0.110437,-0.050000,-0.940881,0.338738,0.000000,
--0.278933,0.110437,-0.050000,0.000000,0.000000,-1.000000,
--0.271448,0.127734,-0.050000,0.000000,0.000000,-1.000000,
--0.185955,0.073625,-0.050000,0.000000,0.000000,-1.000000,
--0.180965,0.085156,-0.050000,0.000000,0.000000,-1.000000,
--0.185955,0.073625,-0.050000,0.000000,0.000000,-1.000000,
--0.271448,0.127734,-0.050000,0.000000,0.000000,-1.000000,
--0.271448,0.127734,0.050000,0.000000,0.000000,1.000000,
--0.278933,0.110437,0.050000,0.000000,0.000000,1.000000,
--0.185955,0.073625,0.050000,0.000000,0.000000,1.000000,
--0.185955,0.073625,0.050000,0.000000,0.000000,1.000000,
--0.180965,0.085156,0.050000,0.000000,0.000000,1.000000,
--0.271448,0.127734,0.050000,0.000000,0.000000,1.000000,
--0.185955,0.073625,0.050000,0.917755,-0.397147,0.000000,
--0.185955,0.073625,-0.050000,0.917755,-0.397147,0.000000,
--0.180965,0.085156,0.050000,0.917755,-0.397147,0.000000,
--0.180965,0.085156,-0.050000,0.917755,-0.397147,0.000000,
--0.180965,0.085156,0.050000,0.917755,-0.397147,0.000000,
--0.185955,0.073625,-0.050000,0.917755,-0.397147,0.000000,
--0.271448,0.127734,0.050000,-0.917755,0.397148,0.000000,
--0.271448,0.127734,-0.050000,-0.917755,0.397148,0.000000,
--0.278933,0.110437,0.050000,-0.917755,0.397148,0.000000,
--0.278933,0.110437,-0.050000,-0.917755,0.397148,0.000000,
--0.278933,0.110437,0.050000,-0.917755,0.397148,0.000000,
--0.271448,0.127734,-0.050000,-0.917755,0.397148,0.000000,
--0.271448,0.127734,-0.050000,0.000000,0.000000,-1.000000,
--0.262892,0.144526,-0.050000,0.000000,0.000000,-1.000000,
--0.180965,0.085156,-0.050000,0.000000,0.000000,-1.000000,
--0.175261,0.096351,-0.050000,0.000000,0.000000,-1.000000,
--0.180965,0.085156,-0.050000,0.000000,0.000000,-1.000000,
--0.262892,0.144526,-0.050000,0.000000,0.000000,-1.000000,
--0.262892,0.144526,0.050000,0.000000,0.000000,1.000000,
--0.271448,0.127734,0.050000,0.000000,0.000000,1.000000,
--0.180965,0.085156,0.050000,0.000000,0.000000,1.000000,
--0.180965,0.085156,0.050000,0.000000,0.000000,1.000000,
--0.175261,0.096351,0.050000,0.000000,0.000000,1.000000,
--0.262892,0.144526,0.050000,0.000000,0.000000,1.000000,
--0.180965,0.085156,0.050000,0.891006,-0.453991,0.000000,
--0.180965,0.085156,-0.050000,0.891006,-0.453991,0.000000,
--0.175261,0.096351,0.050000,0.891006,-0.453991,0.000000,
--0.175261,0.096351,-0.050000,0.891006,-0.453991,0.000000,
--0.175261,0.096351,0.050000,0.891006,-0.453991,0.000000,
--0.180965,0.085156,-0.050000,0.891006,-0.453991,0.000000,
--0.262892,0.144526,0.050000,-0.891006,0.453991,0.000000,
--0.262892,0.144526,-0.050000,-0.891006,0.453991,0.000000,
--0.271448,0.127734,0.050000,-0.891006,0.453991,0.000000,
--0.271448,0.127734,-0.050000,-0.891006,0.453991,0.000000,
--0.271448,0.127734,0.050000,-0.891006,0.453991,0.000000,
--0.262892,0.144526,-0.050000,-0.891006,0.453991,0.000000,
--0.262892,0.144526,-0.050000,0.000000,0.000000,-1.000000,
--0.253298,0.160748,-0.050000,0.000000,0.000000,-1.000000,
--0.175261,0.096351,-0.050000,0.000000,0.000000,-1.000000,
--0.168866,0.107165,-0.050000,0.000000,0.000000,-1.000000,
--0.175261,0.096351,-0.050000,0.000000,0.000000,-1.000000,
--0.253298,0.160748,-0.050000,0.000000,0.000000,-1.000000,
--0.253298,0.160748,0.050000,0.000000,0.000000,1.000000,
--0.262892,0.144526,0.050000,0.000000,0.000000,1.000000,
--0.175261,0.096351,0.050000,0.000000,0.000000,1.000000,
--0.175261,0.096351,0.050000,0.000000,0.000000,1.000000,
--0.168866,0.107165,0.050000,0.000000,0.000000,1.000000,
--0.253298,0.160748,0.050000,0.000000,0.000000,1.000000,
--0.175261,0.096351,0.050000,0.860742,-0.509042,0.000000,
--0.175261,0.096351,-0.050000,0.860742,-0.509042,0.000000,
--0.168866,0.107165,0.050000,0.860742,-0.509042,0.000000,
--0.168866,0.107165,-0.050000,0.860742,-0.509042,0.000000,
--0.168866,0.107165,0.050000,0.860742,-0.509042,0.000000,
--0.175261,0.096351,-0.050000,0.860742,-0.509042,0.000000,
--0.253298,0.160748,0.050000,-0.860742,0.509041,0.000000,
--0.253298,0.160748,-0.050000,-0.860742,0.509041,0.000000,
--0.262892,0.144526,0.050000,-0.860742,0.509041,0.000000,
--0.262892,0.144526,-0.050000,-0.860742,0.509041,0.000000,
--0.262892,0.144526,0.050000,-0.860742,0.509041,0.000000,
--0.253298,0.160748,-0.050000,-0.860742,0.509041,0.000000,
--0.253298,0.160748,-0.050000,0.000000,0.000000,-1.000000,
--0.242705,0.176336,-0.050000,0.000000,0.000000,-1.000000,
--0.168866,0.107165,-0.050000,0.000000,0.000000,-1.000000,
--0.161803,0.117557,-0.050000,0.000000,0.000000,-1.000000,
--0.168866,0.107165,-0.050000,0.000000,0.000000,-1.000000,
--0.242705,0.176336,-0.050000,0.000000,0.000000,-1.000000,
--0.242705,0.176336,0.050000,0.000000,0.000000,1.000000,
--0.253298,0.160748,0.050000,0.000000,0.000000,1.000000,
--0.168866,0.107165,0.050000,0.000000,0.000000,1.000000,
--0.168866,0.107165,0.050000,0.000000,0.000000,1.000000,
--0.161803,0.117557,0.050000,0.000000,0.000000,1.000000,
--0.242705,0.176336,0.050000,0.000000,0.000000,1.000000,
--0.168866,0.107165,0.050000,0.827080,-0.562083,0.000000,
--0.168866,0.107165,-0.050000,0.827080,-0.562083,0.000000,
--0.161803,0.117557,0.050000,0.827080,-0.562083,0.000000,
--0.161803,0.117557,-0.050000,0.827080,-0.562083,0.000000,
--0.161803,0.117557,0.050000,0.827080,-0.562083,0.000000,
--0.168866,0.107165,-0.050000,0.827080,-0.562083,0.000000,
--0.242705,0.176336,0.050000,-0.827081,0.562083,0.000000,
--0.242705,0.176336,-0.050000,-0.827081,0.562083,0.000000,
--0.253298,0.160748,0.050000,-0.827081,0.562083,0.000000,
--0.253298,0.160748,-0.050000,-0.827081,0.562083,0.000000,
--0.253298,0.160748,0.050000,-0.827081,0.562083,0.000000,
--0.242705,0.176336,-0.050000,-0.827081,0.562083,0.000000,
--0.242705,0.176336,-0.050000,0.000000,0.000000,-1.000000,
--0.231154,0.191227,-0.050000,0.000000,0.000000,-1.000000,
--0.161803,0.117557,-0.050000,0.000000,0.000000,-1.000000,
--0.154103,0.127485,-0.050000,0.000000,0.000000,-1.000000,
--0.161803,0.117557,-0.050000,0.000000,0.000000,-1.000000,
--0.231154,0.191227,-0.050000,0.000000,0.000000,-1.000000,
--0.231154,0.191227,0.050000,0.000000,0.000000,1.000000,
--0.242705,0.176336,0.050000,0.000000,0.000000,1.000000,
--0.161803,0.117557,0.050000,0.000000,0.000000,1.000000,
--0.161803,0.117557,0.050000,0.000000,0.000000,1.000000,
--0.154103,0.127485,0.050000,0.000000,0.000000,1.000000,
--0.231154,0.191227,0.050000,0.000000,0.000000,1.000000,
--0.161803,0.117557,0.050000,0.790155,-0.612906,0.000000,
--0.161803,0.117557,-0.050000,0.790155,-0.612906,0.000000,
--0.154103,0.127485,0.050000,0.790155,-0.612906,0.000000,
--0.154103,0.127485,-0.050000,0.790155,-0.612906,0.000000,
--0.154103,0.127485,0.050000,0.790155,-0.612906,0.000000,
--0.161803,0.117557,-0.050000,0.790155,-0.612906,0.000000,
--0.231154,0.191227,0.050000,-0.790155,0.612907,0.000000,
--0.231154,0.191227,-0.050000,-0.790155,0.612907,0.000000,
--0.242705,0.176336,0.050000,-0.790155,0.612907,0.000000,
--0.242705,0.176336,-0.050000,-0.790155,0.612907,0.000000,
--0.242705,0.176336,0.050000,-0.790155,0.612907,0.000000,
--0.231154,0.191227,-0.050000,-0.790155,0.612907,0.000000,
--0.231154,0.191227,-0.050000,0.000000,0.000000,-1.000000,
--0.218691,0.205364,-0.050000,0.000000,0.000000,-1.000000,
--0.154103,0.127485,-0.050000,0.000000,0.000000,-1.000000,
--0.145794,0.136909,-0.050000,0.000000,0.000000,-1.000000,
--0.154103,0.127485,-0.050000,0.000000,0.000000,-1.000000,
--0.218691,0.205364,-0.050000,0.000000,0.000000,-1.000000,
--0.218691,0.205364,0.050000,0.000000,0.000000,1.000000,
--0.231154,0.191227,0.050000,0.000000,0.000000,1.000000,
--0.154103,0.127485,0.050000,0.000000,0.000000,1.000000,
--0.154103,0.127485,0.050000,0.000000,0.000000,1.000000,
--0.145794,0.136909,0.050000,0.000000,0.000000,1.000000,
--0.218691,0.205364,0.050000,0.000000,0.000000,1.000000,
--0.154103,0.127485,0.050000,0.750111,-0.661311,0.000000,
--0.154103,0.127485,-0.050000,0.750111,-0.661311,0.000000,
--0.145794,0.136909,0.050000,0.750111,-0.661311,0.000000,
--0.145794,0.136909,-0.050000,0.750111,-0.661311,0.000000,
--0.145794,0.136909,0.050000,0.750111,-0.661311,0.000000,
--0.154103,0.127485,-0.050000,0.750111,-0.661311,0.000000,
--0.218691,0.205364,0.050000,-0.750111,0.661312,0.000000,
--0.218691,0.205364,-0.050000,-0.750111,0.661312,0.000000,
--0.231154,0.191227,0.050000,-0.750111,0.661312,0.000000,
--0.231154,0.191227,-0.050000,-0.750111,0.661312,0.000000,
--0.231154,0.191227,0.050000,-0.750111,0.661312,0.000000,
--0.218691,0.205364,-0.050000,-0.750111,0.661312,0.000000,
--0.218691,0.205364,-0.050000,0.000000,0.000000,-1.000000,
--0.205364,0.218691,-0.050000,0.000000,0.000000,-1.000000,
--0.145794,0.136909,-0.050000,0.000000,0.000000,-1.000000,
--0.136909,0.145794,-0.050000,0.000000,0.000000,-1.000000,
--0.145794,0.136909,-0.050000,0.000000,0.000000,-1.000000,
--0.205364,0.218691,-0.050000,0.000000,0.000000,-1.000000,
--0.205364,0.218691,0.050000,0.000000,0.000000,1.000000,
--0.218691,0.205364,0.050000,0.000000,0.000000,1.000000,
--0.145794,0.136909,0.050000,0.000000,0.000000,1.000000,
--0.145794,0.136909,0.050000,0.000000,0.000000,1.000000,
--0.136909,0.145794,0.050000,0.000000,0.000000,1.000000,
--0.205364,0.218691,0.050000,0.000000,0.000000,1.000000,
--0.145794,0.136909,0.050000,0.707107,-0.707107,0.000000,
--0.145794,0.136909,-0.050000,0.707107,-0.707107,0.000000,
--0.136909,0.145794,0.050000,0.707107,-0.707107,0.000000,
--0.136909,0.145794,-0.050000,0.707107,-0.707107,0.000000,
--0.136909,0.145794,0.050000,0.707107,-0.707107,0.000000,
--0.145794,0.136909,-0.050000,0.707107,-0.707107,0.000000,
--0.205364,0.218691,0.050000,-0.707107,0.707107,0.000000,
--0.205364,0.218691,-0.050000,-0.707107,0.707107,0.000000,
--0.218691,0.205364,0.050000,-0.707107,0.707107,0.000000,
--0.218691,0.205364,-0.050000,-0.707107,0.707107,0.000000,
--0.218691,0.205364,0.050000,-0.707107,0.707107,0.000000,
--0.205364,0.218691,-0.050000,-0.707107,0.707107,0.000000,
--0.205364,0.218691,-0.050000,0.000000,0.000000,-1.000000,
--0.191227,0.231154,-0.050000,0.000000,0.000000,-1.000000,
--0.136909,0.145794,-0.050000,0.000000,0.000000,-1.000000,
--0.127485,0.154103,-0.050000,0.000000,0.000000,-1.000000,
--0.136909,0.145794,-0.050000,0.000000,0.000000,-1.000000,
--0.191227,0.231154,-0.050000,0.000000,0.000000,-1.000000,
--0.191227,0.231154,0.050000,0.000000,0.000000,1.000000,
--0.205364,0.218691,0.050000,0.000000,0.000000,1.000000,
--0.136909,0.145794,0.050000,0.000000,0.000000,1.000000,
--0.136909,0.145794,0.050000,0.000000,0.000000,1.000000,
--0.127485,0.154103,0.050000,0.000000,0.000000,1.000000,
--0.191227,0.231154,0.050000,0.000000,0.000000,1.000000,
--0.136909,0.145794,0.050000,0.661311,-0.750111,0.000000,
--0.136909,0.145794,-0.050000,0.661311,-0.750111,0.000000,
--0.127485,0.154103,0.050000,0.661311,-0.750111,0.000000,
--0.127485,0.154103,-0.050000,0.661311,-0.750111,0.000000,
--0.127485,0.154103,0.050000,0.661311,-0.750111,0.000000,
--0.136909,0.145794,-0.050000,0.661311,-0.750111,0.000000,
--0.191227,0.231154,0.050000,-0.661312,0.750111,0.000000,
--0.191227,0.231154,-0.050000,-0.661312,0.750111,0.000000,
--0.205364,0.218691,0.050000,-0.661312,0.750111,0.000000,
--0.205364,0.218691,-0.050000,-0.661312,0.750111,0.000000,
--0.205364,0.218691,0.050000,-0.661312,0.750111,0.000000,
--0.191227,0.231154,-0.050000,-0.661312,0.750111,0.000000,
--0.191227,0.231154,-0.050000,0.000000,0.000000,-1.000000,
--0.176336,0.242705,-0.050000,0.000000,0.000000,-1.000000,
--0.127485,0.154103,-0.050000,0.000000,0.000000,-1.000000,
--0.117557,0.161803,-0.050000,0.000000,0.000000,-1.000000,
--0.127485,0.154103,-0.050000,0.000000,0.000000,-1.000000,
--0.176336,0.242705,-0.050000,0.000000,0.000000,-1.000000,
--0.176336,0.242705,0.050000,0.000000,0.000000,1.000000,
--0.191227,0.231154,0.050000,0.000000,0.000000,1.000000,
--0.127485,0.154103,0.050000,0.000000,0.000000,1.000000,
--0.127485,0.154103,0.050000,0.000000,0.000000,1.000000,
--0.117557,0.161803,0.050000,0.000000,0.000000,1.000000,
--0.176336,0.242705,0.050000,0.000000,0.000000,1.000000,
--0.127485,0.154103,0.050000,0.612907,-0.790155,0.000000,
--0.127485,0.154103,-0.050000,0.612907,-0.790155,0.000000,
--0.117557,0.161803,0.050000,0.612907,-0.790155,0.000000,
--0.117557,0.161803,-0.050000,0.612907,-0.790155,0.000000,
--0.117557,0.161803,0.050000,0.612907,-0.790155,0.000000,
--0.127485,0.154103,-0.050000,0.612907,-0.790155,0.000000,
--0.176336,0.242705,0.050000,-0.612907,0.790155,0.000000,
--0.176336,0.242705,-0.050000,-0.612907,0.790155,0.000000,
--0.191227,0.231154,0.050000,-0.612907,0.790155,0.000000,
--0.191227,0.231154,-0.050000,-0.612907,0.790155,0.000000,
--0.191227,0.231154,0.050000,-0.612907,0.790155,0.000000,
--0.176336,0.242705,-0.050000,-0.612907,0.790155,0.000000,
--0.176336,0.242705,-0.050000,0.000000,0.000000,-1.000000,
--0.160748,0.253298,-0.050000,0.000000,0.000000,-1.000000,
--0.117557,0.161803,-0.050000,0.000000,0.000000,-1.000000,
--0.107165,0.168866,-0.050000,0.000000,0.000000,-1.000000,
--0.117557,0.161803,-0.050000,0.000000,0.000000,-1.000000,
--0.160748,0.253298,-0.050000,0.000000,0.000000,-1.000000,
--0.160748,0.253298,0.050000,0.000000,0.000000,1.000000,
--0.176336,0.242705,0.050000,0.000000,0.000000,1.000000,
--0.117557,0.161803,0.050000,0.000000,0.000000,1.000000,
--0.117557,0.161803,0.050000,0.000000,0.000000,1.000000,
--0.107165,0.168866,0.050000,0.000000,0.000000,1.000000,
--0.160748,0.253298,0.050000,0.000000,0.000000,1.000000,
--0.117557,0.161803,0.050000,0.562083,-0.827081,0.000000,
--0.117557,0.161803,-0.050000,0.562083,-0.827081,0.000000,
--0.107165,0.168866,0.050000,0.562083,-0.827081,0.000000,
--0.107165,0.168866,-0.050000,0.562083,-0.827081,0.000000,
--0.107165,0.168866,0.050000,0.562083,-0.827081,0.000000,
--0.117557,0.161803,-0.050000,0.562083,-0.827081,0.000000,
--0.160748,0.253298,0.050000,-0.562083,0.827081,0.000000,
--0.160748,0.253298,-0.050000,-0.562083,0.827081,0.000000,
--0.176336,0.242705,0.050000,-0.562083,0.827081,0.000000,
--0.176336,0.242705,-0.050000,-0.562083,0.827081,0.000000,
--0.176336,0.242705,0.050000,-0.562083,0.827081,0.000000,
--0.160748,0.253298,-0.050000,-0.562083,0.827081,0.000000,
--0.160748,0.253298,-0.050000,0.000000,0.000000,-1.000000,
--0.144526,0.262892,-0.050000,0.000000,0.000000,-1.000000,
--0.107165,0.168866,-0.050000,0.000000,0.000000,-1.000000,
--0.096351,0.175261,-0.050000,0.000000,0.000000,-1.000000,
--0.107165,0.168866,-0.050000,0.000000,0.000000,-1.000000,
--0.144526,0.262892,-0.050000,0.000000,0.000000,-1.000000,
--0.144526,0.262892,0.050000,0.000000,0.000000,1.000000,
--0.160748,0.253298,0.050000,0.000000,0.000000,1.000000,
--0.107165,0.168866,0.050000,0.000000,0.000000,1.000000,
--0.107165,0.168866,0.050000,0.000000,0.000000,1.000000,
--0.096351,0.175261,0.050000,0.000000,0.000000,1.000000,
--0.144526,0.262892,0.050000,0.000000,0.000000,1.000000,
--0.107165,0.168866,0.050000,0.509042,-0.860742,0.000000,
--0.107165,0.168866,-0.050000,0.509042,-0.860742,0.000000,
--0.096351,0.175261,0.050000,0.509042,-0.860742,0.000000,
--0.096351,0.175261,-0.050000,0.509042,-0.860742,0.000000,
--0.096351,0.175261,0.050000,0.509042,-0.860742,0.000000,
--0.107165,0.168866,-0.050000,0.509042,-0.860742,0.000000,
--0.144526,0.262892,0.050000,-0.509042,0.860742,0.000000,
--0.144526,0.262892,-0.050000,-0.509042,0.860742,0.000000,
--0.160748,0.253298,0.050000,-0.509042,0.860742,0.000000,
--0.160748,0.253298,-0.050000,-0.509042,0.860742,0.000000,
--0.160748,0.253298,0.050000,-0.509042,0.860742,0.000000,
--0.144526,0.262892,-0.050000,-0.509042,0.860742,0.000000,
--0.144526,0.262892,-0.050000,0.000000,0.000000,-1.000000,
--0.127734,0.271448,-0.050000,0.000000,0.000000,-1.000000,
--0.096351,0.175261,-0.050000,0.000000,0.000000,-1.000000,
--0.085156,0.180965,-0.050000,0.000000,0.000000,-1.000000,
--0.096351,0.175261,-0.050000,0.000000,0.000000,-1.000000,
--0.127734,0.271448,-0.050000,0.000000,0.000000,-1.000000,
--0.127734,0.271448,0.050000,0.000000,0.000000,1.000000,
--0.144526,0.262892,0.050000,0.000000,0.000000,1.000000,
--0.096351,0.175261,0.050000,0.000000,0.000000,1.000000,
--0.096351,0.175261,0.050000,0.000000,0.000000,1.000000,
--0.085156,0.180965,0.050000,0.000000,0.000000,1.000000,
--0.127734,0.271448,0.050000,0.000000,0.000000,1.000000,
--0.096351,0.175261,0.050000,0.453990,-0.891007,0.000000,
--0.096351,0.175261,-0.050000,0.453990,-0.891007,0.000000,
--0.085156,0.180965,0.050000,0.453990,-0.891007,0.000000,
--0.085156,0.180965,-0.050000,0.453990,-0.891007,0.000000,
--0.085156,0.180965,0.050000,0.453990,-0.891007,0.000000,
--0.096351,0.175261,-0.050000,0.453990,-0.891007,0.000000,
--0.127734,0.271448,0.050000,-0.453991,0.891006,0.000000,
--0.127734,0.271448,-0.050000,-0.453991,0.891006,0.000000,
--0.144526,0.262892,0.050000,-0.453991,0.891006,0.000000,
--0.144526,0.262892,-0.050000,-0.453991,0.891006,0.000000,
--0.144526,0.262892,0.050000,-0.453991,0.891006,0.000000,
--0.127734,0.271448,-0.050000,-0.453991,0.891006,0.000000,
--0.127734,0.271448,-0.050000,0.000000,0.000000,-1.000000,
--0.110437,0.278933,-0.050000,0.000000,0.000000,-1.000000,
--0.085156,0.180965,-0.050000,0.000000,0.000000,-1.000000,
--0.073625,0.185955,-0.050000,0.000000,0.000000,-1.000000,
--0.085156,0.180965,-0.050000,0.000000,0.000000,-1.000000,
--0.110437,0.278933,-0.050000,0.000000,0.000000,-1.000000,
--0.110437,0.278933,0.050000,0.000000,0.000000,1.000000,
--0.127734,0.271448,0.050000,0.000000,0.000000,1.000000,
--0.085156,0.180965,0.050000,0.000000,0.000000,1.000000,
--0.085156,0.180965,0.050000,0.000000,0.000000,1.000000,
--0.073625,0.185955,0.050000,0.000000,0.000000,1.000000,
--0.110437,0.278933,0.050000,0.000000,0.000000,1.000000,
--0.085156,0.180965,0.050000,0.397148,-0.917754,0.000000,
--0.085156,0.180965,-0.050000,0.397148,-0.917754,0.000000,
--0.073625,0.185955,0.050000,0.397148,-0.917754,0.000000,
--0.073625,0.185955,-0.050000,0.397148,-0.917754,0.000000,
--0.073625,0.185955,0.050000,0.397148,-0.917754,0.000000,
--0.085156,0.180965,-0.050000,0.397148,-0.917754,0.000000,
--0.110437,0.278933,0.050000,-0.397148,0.917755,0.000000,
--0.110437,0.278933,-0.050000,-0.397148,0.917755,0.000000,
--0.127734,0.271448,0.050000,-0.397148,0.917755,0.000000,
--0.127734,0.271448,-0.050000,-0.397148,0.917755,0.000000,
--0.127734,0.271448,0.050000,-0.397148,0.917755,0.000000,
--0.110437,0.278933,-0.050000,-0.397148,0.917755,0.000000,
--0.110437,0.278933,-0.050000,0.000000,0.000000,-1.000000,
--0.092705,0.285317,-0.050000,0.000000,0.000000,-1.000000,
--0.073625,0.185955,-0.050000,0.000000,0.000000,-1.000000,
--0.061803,0.190211,-0.050000,0.000000,0.000000,-1.000000,
--0.073625,0.185955,-0.050000,0.000000,0.000000,-1.000000,
--0.092705,0.285317,-0.050000,0.000000,0.000000,-1.000000,
--0.092705,0.285317,0.050000,0.000000,0.000000,1.000000,
--0.110437,0.278933,0.050000,0.000000,0.000000,1.000000,
--0.073625,0.185955,0.050000,0.000000,0.000000,1.000000,
--0.073625,0.185955,0.050000,0.000000,0.000000,1.000000,
--0.061803,0.190211,0.050000,0.000000,0.000000,1.000000,
--0.092705,0.285317,0.050000,0.000000,0.000000,1.000000,
--0.073625,0.185955,0.050000,0.338738,-0.940881,0.000000,
--0.073625,0.185955,-0.050000,0.338738,-0.940881,0.000000,
--0.061803,0.190211,0.050000,0.338738,-0.940881,0.000000,
--0.061803,0.190211,-0.050000,0.338738,-0.940881,0.000000,
--0.061803,0.190211,0.050000,0.338738,-0.940881,0.000000,
--0.073625,0.185955,-0.050000,0.338738,-0.940881,0.000000,
--0.092705,0.285317,0.050000,-0.338738,0.940881,0.000000,
--0.092705,0.285317,-0.050000,-0.338738,0.940881,0.000000,
--0.110437,0.278933,0.050000,-0.338738,0.940881,0.000000,
--0.110437,0.278933,-0.050000,-0.338738,0.940881,0.000000,
--0.110437,0.278933,0.050000,-0.338738,0.940881,0.000000,
--0.092705,0.285317,-0.050000,-0.338738,0.940881,0.000000,
--0.092705,0.285317,-0.050000,0.000000,0.000000,-1.000000,
--0.074607,0.290575,-0.050000,0.000000,0.000000,-1.000000,
--0.061803,0.190211,-0.050000,0.000000,0.000000,-1.000000,
--0.049738,0.193717,-0.050000,0.000000,0.000000,-1.000000,
--0.061803,0.190211,-0.050000,0.000000,0.000000,-1.000000,
--0.074607,0.290575,-0.050000,0.000000,0.000000,-1.000000,
--0.074607,0.290575,0.050000,0.000000,0.000000,1.000000,
--0.092705,0.285317,0.050000,0.000000,0.000000,1.000000,
--0.061803,0.190211,0.050000,0.000000,0.000000,1.000000,
--0.061803,0.190211,0.050000,0.000000,0.000000,1.000000,
--0.049738,0.193717,0.050000,0.000000,0.000000,1.000000,
--0.074607,0.290575,0.050000,0.000000,0.000000,1.000000,
--0.061803,0.190211,0.050000,0.278990,-0.960294,0.000000,
--0.061803,0.190211,-0.050000,0.278990,-0.960294,0.000000,
--0.049738,0.193717,0.050000,0.278990,-0.960294,0.000000,
--0.049738,0.193717,-0.050000,0.278990,-0.960294,0.000000,
--0.049738,0.193717,0.050000,0.278990,-0.960294,0.000000,
--0.061803,0.190211,-0.050000,0.278990,-0.960294,0.000000,
--0.074607,0.290575,0.050000,-0.278991,0.960294,0.000000,
--0.074607,0.290575,-0.050000,-0.278991,0.960294,0.000000,
--0.092705,0.285317,0.050000,-0.278991,0.960294,0.000000,
--0.092705,0.285317,-0.050000,-0.278991,0.960294,0.000000,
--0.092705,0.285317,0.050000,-0.278991,0.960294,0.000000,
--0.074607,0.290575,-0.050000,-0.278991,0.960294,0.000000,
--0.074607,0.290575,-0.050000,0.000000,0.000000,-1.000000,
--0.056214,0.294686,-0.050000,0.000000,0.000000,-1.000000,
--0.049738,0.193717,-0.050000,0.000000,0.000000,-1.000000,
--0.037476,0.196457,-0.050000,0.000000,0.000000,-1.000000,
--0.049738,0.193717,-0.050000,0.000000,0.000000,-1.000000,
--0.056214,0.294686,-0.050000,0.000000,0.000000,-1.000000,
--0.056214,0.294686,0.050000,0.000000,0.000000,1.000000,
--0.074607,0.290575,0.050000,0.000000,0.000000,1.000000,
--0.049738,0.193717,0.050000,0.000000,0.000000,1.000000,
--0.049738,0.193717,0.050000,0.000000,0.000000,1.000000,
--0.037476,0.196457,0.050000,0.000000,0.000000,1.000000,
--0.056214,0.294686,0.050000,0.000000,0.000000,1.000000,
--0.049738,0.193717,0.050000,0.218144,-0.975917,0.000000,
--0.049738,0.193717,-0.050000,0.218144,-0.975917,0.000000,
--0.037476,0.196457,0.050000,0.218144,-0.975917,0.000000,
--0.037476,0.196457,-0.050000,0.218144,-0.975917,0.000000,
--0.037476,0.196457,0.050000,0.218144,-0.975917,0.000000,
--0.049738,0.193717,-0.050000,0.218144,-0.975917,0.000000,
--0.056214,0.294686,0.050000,-0.218143,0.975917,0.000000,
--0.056214,0.294686,-0.050000,-0.218143,0.975917,0.000000,
--0.074607,0.290575,0.050000,-0.218143,0.975917,0.000000,
--0.074607,0.290575,-0.050000,-0.218143,0.975917,0.000000,
--0.074607,0.290575,0.050000,-0.218143,0.975917,0.000000,
--0.056214,0.294686,-0.050000,-0.218143,0.975917,0.000000,
--0.056214,0.294686,-0.050000,0.000000,0.000000,-1.000000,
--0.037600,0.297634,-0.050000,0.000000,0.000000,-1.000000,
--0.037476,0.196457,-0.050000,0.000000,0.000000,-1.000000,
--0.025067,0.198423,-0.050000,0.000000,0.000000,-1.000000,
--0.037476,0.196457,-0.050000,0.000000,0.000000,-1.000000,
--0.037600,0.297634,-0.050000,0.000000,0.000000,-1.000000,
--0.037600,0.297634,0.050000,0.000000,0.000000,1.000000,
--0.056214,0.294686,0.050000,0.000000,0.000000,1.000000,
--0.037476,0.196457,0.050000,0.000000,0.000000,1.000000,
--0.037476,0.196457,0.050000,0.000000,0.000000,1.000000,
--0.025067,0.198423,0.050000,0.000000,0.000000,1.000000,
--0.037600,0.297634,0.050000,0.000000,0.000000,1.000000,
--0.037476,0.196457,0.050000,0.156435,-0.987688,0.000000,
--0.037476,0.196457,-0.050000,0.156435,-0.987688,0.000000,
--0.025067,0.198423,0.050000,0.156435,-0.987688,0.000000,
--0.025067,0.198423,-0.050000,0.156435,-0.987688,0.000000,
--0.025067,0.198423,0.050000,0.156435,-0.987688,0.000000,
--0.037476,0.196457,-0.050000,0.156435,-0.987688,0.000000,
--0.037600,0.297634,0.050000,-0.156434,0.987688,0.000000,
--0.037600,0.297634,-0.050000,-0.156434,0.987688,0.000000,
--0.056214,0.294686,0.050000,-0.156434,0.987688,0.000000,
--0.056214,0.294686,-0.050000,-0.156434,0.987688,0.000000,
--0.056214,0.294686,0.050000,-0.156434,0.987688,0.000000,
--0.037600,0.297634,-0.050000,-0.156434,0.987688,0.000000,
--0.037600,0.297634,-0.050000,0.000000,0.000000,-1.000000,
--0.018837,0.299408,-0.050000,0.000000,0.000000,-1.000000,
--0.025067,0.198423,-0.050000,0.000000,0.000000,-1.000000,
--0.012558,0.199605,-0.050000,0.000000,0.000000,-1.000000,
--0.025067,0.198423,-0.050000,0.000000,0.000000,-1.000000,
--0.018837,0.299408,-0.050000,0.000000,0.000000,-1.000000,
--0.018837,0.299408,0.050000,0.000000,0.000000,1.000000,
--0.037600,0.297634,0.050000,0.000000,0.000000,1.000000,
--0.025067,0.198423,0.050000,0.000000,0.000000,1.000000,
--0.025067,0.198423,0.050000,0.000000,0.000000,1.000000,
--0.012558,0.199605,0.050000,0.000000,0.000000,1.000000,
--0.018837,0.299408,0.050000,0.000000,0.000000,1.000000,
--0.025067,0.198423,0.050000,0.094107,-0.995562,0.000000,
--0.025067,0.198423,-0.050000,0.094107,-0.995562,0.000000,
--0.012558,0.199605,0.050000,0.094107,-0.995562,0.000000,
--0.012558,0.199605,-0.050000,0.094107,-0.995562,0.000000,
--0.012558,0.199605,0.050000,0.094107,-0.995562,0.000000,
--0.025067,0.198423,-0.050000,0.094107,-0.995562,0.000000,
--0.018837,0.299408,0.050000,-0.094108,0.995562,0.000000,
--0.018837,0.299408,-0.050000,-0.094108,0.995562,0.000000,
--0.037600,0.297634,0.050000,-0.094108,0.995562,0.000000,
--0.037600,0.297634,-0.050000,-0.094108,0.995562,0.000000,
--0.037600,0.297634,0.050000,-0.094108,0.995562,0.000000,
--0.018837,0.299408,-0.050000,-0.094108,0.995562,0.000000,
--0.018837,0.299408,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.300000,-0.050000,0.000000,0.000000,-1.000000,
--0.012558,0.199605,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.200000,-0.050000,0.000000,0.000000,-1.000000,
--0.012558,0.199605,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.300000,-0.050000,0.000000,0.000000,-1.000000,
-0.000000,0.300000,0.050000,0.000000,0.000000,1.000000,
--0.018837,0.299408,0.050000,0.000000,0.000000,1.000000,
--0.012558,0.199605,0.050000,0.000000,0.000000,1.000000,
--0.012558,0.199605,0.050000,0.000000,0.000000,1.000000,
-0.000000,0.200000,0.050000,0.000000,0.000000,1.000000,
-0.000000,0.300000,0.050000,0.000000,0.000000,1.000000,
--0.012558,0.199605,0.050000,0.031411,-0.999507,0.000000,
--0.012558,0.199605,-0.050000,0.031411,-0.999507,0.000000,
-0.000000,0.200000,0.050000,0.031411,-0.999507,0.000000,
-0.000000,0.200000,-0.050000,0.031411,-0.999507,0.000000,
-0.000000,0.200000,0.050000,0.031411,-0.999507,0.000000,
--0.012558,0.199605,-0.050000,0.031411,-0.999507,0.000000,
-0.000000,0.300000,0.050000,-0.031411,0.999507,0.000000,
-0.000000,0.300000,-0.050000,-0.031411,0.999507,0.000000,
--0.018837,0.299408,0.050000,-0.031411,0.999507,0.000000,
--0.018837,0.299408,-0.050000,-0.031411,0.999507,0.000000,
--0.018837,0.299408,0.050000,-0.031411,0.999507,0.000000,
-0.000000,0.300000,-0.050000,-0.031411,0.999507,0.000000
-];
diff --git a/basicsuite/webengine/content/webgl/screenshot.png b/basicsuite/webengine/content/webgl/screenshot.png
deleted file mode 100644
index 388b45b..0000000
--- a/basicsuite/webengine/content/webgl/screenshot.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/webengine/content/webgl/three.min.js b/basicsuite/webengine/content/webgl/three.min.js
deleted file mode 100644
index 95b938c..0000000
--- a/basicsuite/webengine/content/webgl/three.min.js
+++ /dev/null
@@ -1,737 +0,0 @@
-// three.js / threejs.org/license
-'use strict';var THREE={REVISION:"67"};self.console=self.console||{info:function(){},log:function(){},debug:function(){},warn:function(){},error:function(){}};
-(function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!self.requestAnimationFrame;++c)self.requestAnimationFrame=self[b[c]+"RequestAnimationFrame"],self.cancelAnimationFrame=self[b[c]+"CancelAnimationFrame"]||self[b[c]+"CancelRequestAnimationFrame"];void 0===self.requestAnimationFrame&&void 0!==self.setTimeout&&(self.requestAnimationFrame=function(b){var c=Date.now(),f=Math.max(0,16-(c-a)),g=self.setTimeout(function(){b(c+f)},f);a=c+f;return g});void 0===self.cancelAnimationFrame&&void 0!==
-self.clearTimeout&&(self.cancelAnimationFrame=function(a){self.clearTimeout(a)})})();THREE.CullFaceNone=0;THREE.CullFaceBack=1;THREE.CullFaceFront=2;THREE.CullFaceFrontBack=3;THREE.FrontFaceDirectionCW=0;THREE.FrontFaceDirectionCCW=1;THREE.BasicShadowMap=0;THREE.PCFShadowMap=1;THREE.PCFSoftShadowMap=2;THREE.FrontSide=0;THREE.BackSide=1;THREE.DoubleSide=2;THREE.NoShading=0;THREE.FlatShading=1;THREE.SmoothShading=2;THREE.NoColors=0;THREE.FaceColors=1;THREE.VertexColors=2;THREE.NoBlending=0;
-THREE.NormalBlending=1;THREE.AdditiveBlending=2;THREE.SubtractiveBlending=3;THREE.MultiplyBlending=4;THREE.CustomBlending=5;THREE.AddEquation=100;THREE.SubtractEquation=101;THREE.ReverseSubtractEquation=102;THREE.ZeroFactor=200;THREE.OneFactor=201;THREE.SrcColorFactor=202;THREE.OneMinusSrcColorFactor=203;THREE.SrcAlphaFactor=204;THREE.OneMinusSrcAlphaFactor=205;THREE.DstAlphaFactor=206;THREE.OneMinusDstAlphaFactor=207;THREE.DstColorFactor=208;THREE.OneMinusDstColorFactor=209;
-THREE.SrcAlphaSaturateFactor=210;THREE.MultiplyOperation=0;THREE.MixOperation=1;THREE.AddOperation=2;THREE.UVMapping=function(){};THREE.CubeReflectionMapping=function(){};THREE.CubeRefractionMapping=function(){};THREE.SphericalReflectionMapping=function(){};THREE.SphericalRefractionMapping=function(){};THREE.RepeatWrapping=1E3;THREE.ClampToEdgeWrapping=1001;THREE.MirroredRepeatWrapping=1002;THREE.NearestFilter=1003;THREE.NearestMipMapNearestFilter=1004;THREE.NearestMipMapLinearFilter=1005;
-THREE.LinearFilter=1006;THREE.LinearMipMapNearestFilter=1007;THREE.LinearMipMapLinearFilter=1008;THREE.UnsignedByteType=1009;THREE.ByteType=1010;THREE.ShortType=1011;THREE.UnsignedShortType=1012;THREE.IntType=1013;THREE.UnsignedIntType=1014;THREE.FloatType=1015;THREE.UnsignedShort4444Type=1016;THREE.UnsignedShort5551Type=1017;THREE.UnsignedShort565Type=1018;THREE.AlphaFormat=1019;THREE.RGBFormat=1020;THREE.RGBAFormat=1021;THREE.LuminanceFormat=1022;THREE.LuminanceAlphaFormat=1023;
-THREE.RGB_S3TC_DXT1_Format=2001;THREE.RGBA_S3TC_DXT1_Format=2002;THREE.RGBA_S3TC_DXT3_Format=2003;THREE.RGBA_S3TC_DXT5_Format=2004;THREE.Color=function(a){return 3===arguments.length?this.setRGB(arguments[0],arguments[1],arguments[2]):this.set(a)};
-THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,set:function(a){a instanceof THREE.Color?this.copy(a):"number"===typeof a?this.setHex(a):"string"===typeof a&&this.setStyle(a);return this},setHex:function(a){a=Math.floor(a);this.r=(a>>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSL:function(a,b,c){if(0===b)this.r=this.g=this.b=c;else{var d=function(a,b,c){0>c&&(c+=1);1<c&&(c-=1);return c<1/6?a+6*(b-a)*
-c:0.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a};b=0.5>=c?c*(1+b):c+b-c*b;c=2*c-b;this.r=d(c,b,a+1/3);this.g=d(c,b,a);this.b=d(c,b,a-1/3)}return this},setStyle:function(a){if(/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.test(a))return a=/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.exec(a),this.r=Math.min(255,parseInt(a[1],10))/255,this.g=Math.min(255,parseInt(a[2],10))/255,this.b=Math.min(255,parseInt(a[3],10))/255,this;if(/^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.test(a))return a=/^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.exec(a),this.r=
-Math.min(100,parseInt(a[1],10))/100,this.g=Math.min(100,parseInt(a[2],10))/100,this.b=Math.min(100,parseInt(a[3],10))/100,this;if(/^\#([0-9a-f]{6})$/i.test(a))return a=/^\#([0-9a-f]{6})$/i.exec(a),this.setHex(parseInt(a[1],16)),this;if(/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(a))return a=/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(a),this.setHex(parseInt(a[1]+a[1]+a[2]+a[2]+a[3]+a[3],16)),this;if(/^(\w+)$/i.test(a))return this.setHex(THREE.ColorKeywords[a]),this},copy:function(a){this.r=a.r;this.g=
-a.g;this.b=a.b;return this},copyGammaToLinear:function(a){this.r=a.r*a.r;this.g=a.g*a.g;this.b=a.b*a.b;return this},copyLinearToGamma:function(a){this.r=Math.sqrt(a.r);this.g=Math.sqrt(a.g);this.b=Math.sqrt(a.b);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);this.b=Math.sqrt(this.b);return this},getHex:function(){return 255*this.r<<16^255*this.g<<
-8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(a){a=a||{h:0,s:0,l:0};var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,h=(f+e)/2;if(f===e)f=g=0;else{var k=e-f,f=0.5>=h?k/(e+f):k/(2-e-f);switch(e){case b:g=(c-d)/k+(c<d?6:0);break;case c:g=(d-b)/k+2;break;case d:g=(b-c)/k+4}g/=6}a.h=g;a.s=f;a.l=h;return a},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(a,
-b,c){var d=this.getHSL();d.h+=a;d.s+=b;d.l+=c;this.setHSL(d.h,d.s,d.l);return this},add:function(a){this.r+=a.r;this.g+=a.g;this.b+=a.b;return this},addColors:function(a,b){this.r=a.r+b.r;this.g=a.g+b.g;this.b=a.b+b.b;return this},addScalar:function(a){this.r+=a;this.g+=a;this.b+=a;return this},multiply:function(a){this.r*=a.r;this.g*=a.g;this.b*=a.b;return this},multiplyScalar:function(a){this.r*=a;this.g*=a;this.b*=a;return this},lerp:function(a,b){this.r+=(a.r-this.r)*b;this.g+=(a.g-this.g)*b;
-this.b+=(a.b-this.b)*b;return this},equals:function(a){return a.r===this.r&&a.g===this.g&&a.b===this.b},fromArray:function(a){this.r=a[0];this.g=a[1];this.b=a[2];return this},toArray:function(){return[this.r,this.g,this.b]},clone:function(){return(new THREE.Color).setRGB(this.r,this.g,this.b)}};
-THREE.ColorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,
-darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,
-grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,
-lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,
-palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,
-tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};THREE.Quaternion=function(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1};
-THREE.Quaternion.prototype={constructor:THREE.Quaternion,_x:0,_y:0,_z:0,_w:0,get x(){return this._x},set x(a){this._x=a;this.onChangeCallback()},get y(){return this._y},set y(a){this._y=a;this.onChangeCallback()},get z(){return this._z},set z(a){this._z=a;this.onChangeCallback()},get w(){return this._w},set w(a){this._w=a;this.onChangeCallback()},set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this.onChangeCallback();return this},copy:function(a){this._x=a._x;this._y=a._y;this._z=a._z;
-this._w=a._w;this.onChangeCallback();return this},setFromEuler:function(a,b){if(!1===a instanceof THREE.Euler)throw Error("ERROR: Quaternion's .setFromEuler() now expects a Euler rotation rather than a Vector3 and order. Please update your code.");var c=Math.cos(a._x/2),d=Math.cos(a._y/2),e=Math.cos(a._z/2),f=Math.sin(a._x/2),g=Math.sin(a._y/2),h=Math.sin(a._z/2);"XYZ"===a.order?(this._x=f*d*e+c*g*h,this._y=c*g*e-f*d*h,this._z=c*d*h+f*g*e,this._w=c*d*e-f*g*h):"YXZ"===a.order?(this._x=f*d*e+c*g*h,
-this._y=c*g*e-f*d*h,this._z=c*d*h-f*g*e,this._w=c*d*e+f*g*h):"ZXY"===a.order?(this._x=f*d*e-c*g*h,this._y=c*g*e+f*d*h,this._z=c*d*h+f*g*e,this._w=c*d*e-f*g*h):"ZYX"===a.order?(this._x=f*d*e-c*g*h,this._y=c*g*e+f*d*h,this._z=c*d*h-f*g*e,this._w=c*d*e+f*g*h):"YZX"===a.order?(this._x=f*d*e+c*g*h,this._y=c*g*e+f*d*h,this._z=c*d*h-f*g*e,this._w=c*d*e-f*g*h):"XZY"===a.order&&(this._x=f*d*e-c*g*h,this._y=c*g*e-f*d*h,this._z=c*d*h+f*g*e,this._w=c*d*e+f*g*h);if(!1!==b)this.onChangeCallback();return this},
-setFromAxisAngle:function(a,b){var c=b/2,d=Math.sin(c);this._x=a.x*d;this._y=a.y*d;this._z=a.z*d;this._w=Math.cos(c);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var b=a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],k=b[6],b=b[10],l=c+f+b;0<l?(c=0.5/Math.sqrt(l+1),this._w=0.25/c,this._x=(k-g)*c,this._y=(d-h)*c,this._z=(e-a)*c):c>f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(k-g)/c,this._x=0.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=
-(d-h)/c,this._x=(a+e)/c,this._y=0.25*c,this._z=(g+k)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+k)/c,this._z=0.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector3);b=c.dot(d)+1;1E-6>b?(b=0,Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=a.x;this._y=a.y;this._z=a.z;this._w=b;this.normalize();return this}}(),inverse:function(){this.conjugate().normalize();
-return this},conjugate:function(){this._x*=-1;this._y*=-1;this._z*=-1;this.onChangeCallback();return this},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var a=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);this.onChangeCallback();return this},multiply:function(a,b){return void 0!==
-b?(console.warn("DEPRECATED: Quaternion's .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z,f=a._w,g=b._x,h=b._y,k=b._z,l=b._w;this._x=c*l+f*g+d*k-e*h;this._y=d*l+f*h+e*g-c*k;this._z=e*l+f*k+c*h-d*g;this._w=f*l-c*g-d*h-e*k;this.onChangeCallback();return this},multiplyVector3:function(a){console.warn("DEPRECATED: Quaternion's .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");
-return a.applyQuaternion(this)},slerp:function(a,b){var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=d,this._z=e,this;var h=Math.acos(g),k=Math.sqrt(1-g*g);if(0.001>Math.abs(k))return this._w=0.5*(f+this._w),this._x=0.5*(c+this._x),this._y=0.5*(d+this._y),this._z=0.5*(e+this._z),this;g=Math.sin((1-b)*h)/k;h=Math.sin(b*h)/k;this._w=f*g+this._w*h;this._x=
-c*g+this._x*h;this._y=d*g+this._y*h;this._z=e*g+this._z*h;this.onChangeCallback();return this},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];this._w=a[3];this.onChangeCallback();return this},toArray:function(){return[this._x,this._y,this._z,this._w]},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){},clone:function(){return new THREE.Quaternion(this._x,this._y,
-this._z,this._w)}};THREE.Quaternion.slerp=function(a,b,c,d){return c.copy(a).slerp(b,d)};THREE.Vector2=function(a,b){this.x=a||0;this.y=b||0};
-THREE.Vector2.prototype={constructor:THREE.Vector2,set:function(a,b){this.x=a;this.y=b;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,
-b){if(void 0!==b)return console.warn("DEPRECATED: Vector2's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this},sub:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector2's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=
-a.y;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiply:function(a){this.x*=a.x;this.y*=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){0!==a?(a=1/a,this.x*=a,this.y*=a):this.y=this.x=0;return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);return this},max:function(a){this.x<a.x&&(this.x=a.x);this.y<a.y&&(this.y=a.y);return this},
-clamp:function(a,b){this.x<a.x?this.x=a.x:this.x>b.x&&(this.x=b.x);this.y<a.y?this.y=a.y:this.y>b.y&&(this.y=b.y);return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector2,b=new THREE.Vector2);a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);
-return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},
-distanceToSquared:function(a){var b=this.x-a.x;a=this.y-a.y;return b*b+a*a},setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a){this.x=a[0];this.y=a[1];return this},toArray:function(){return[this.x,this.y]},clone:function(){return new THREE.Vector2(this.x,this.y)}};THREE.Vector3=function(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0};
-THREE.Vector3.prototype={constructor:THREE.Vector3,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+
-a);}},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},sub:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),
-this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},multiply:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},multiplyVectors:function(a,b){this.x=a.x*
-b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(){var a;return function(b){!1===b instanceof THREE.Euler&&console.error("ERROR: Vector3's .applyEuler() now expects a Euler rotation rather than a Vector3 and order. Please update your code.");void 0===a&&(a=new THREE.Quaternion);this.applyQuaternion(a.setFromEuler(b));return this}}(),applyAxisAngle:function(){var a;return function(b,c){void 0===a&&(a=new THREE.Quaternion);this.applyQuaternion(a.setFromAxisAngle(b,c));return this}}(),
-applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12];this.y=a[1]*b+a[5]*c+a[9]*d+a[13];this.z=a[2]*b+a[6]*c+a[10]*d+a[14];return this},applyProjection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);this.x=(a[0]*b+a[4]*c+a[8]*d+a[12])*e;this.y=
-(a[1]*b+a[5]*c+a[9]*d+a[13])*e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])*e;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+f*d-g*c,k=a*c+g*b-e*d,l=a*d+e*c-f*b,b=-e*b-f*c-g*d;this.x=h*a+b*-e+k*-g-l*-f;this.y=k*a+b*-f+l*-e-h*-g;this.z=l*a+b*-g+h*-f-k*-e;return this},transformDirection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;this.normalize();return this},
-divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){0!==a?(a=1/a,this.x*=a,this.y*=a,this.z*=a):this.z=this.y=this.x=0;return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);this.z>a.z&&(this.z=a.z);return this},max:function(a){this.x<a.x&&(this.x=a.x);this.y<a.y&&(this.y=a.y);this.z<a.z&&(this.z=a.z);return this},clamp:function(a,b){this.x<a.x?this.x=a.x:this.x>b.x&&(this.x=b.x);this.y<a.y?this.y=a.y:this.y>b.y&&(this.y=b.y);this.z<
-a.z?this.z=a.z:this.z>b.z&&(this.z=b.z);return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector3,b=new THREE.Vector3);a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);
-return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+
-Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},cross:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b);var c=this.x,d=this.y,e=this.z;this.x=
-d*a.z-e*a.y;this.y=e*a.x-c*a.z;this.z=c*a.y-d*a.x;return this},crossVectors:function(a,b){var c=a.x,d=a.y,e=a.z,f=b.x,g=b.y,h=b.z;this.x=d*h-e*g;this.y=e*f-c*h;this.z=c*g-d*f;return this},projectOnVector:function(){var a,b;return function(c){void 0===a&&(a=new THREE.Vector3);a.copy(c).normalize();b=this.dot(a);return this.copy(a).multiplyScalar(b)}}(),projectOnPlane:function(){var a;return function(b){void 0===a&&(a=new THREE.Vector3);a.copy(this).projectOnVector(b);return this.sub(a)}}(),reflect:function(){var a;
-return function(b){void 0===a&&(a=new THREE.Vector3);return this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),angleTo:function(a){a=this.dot(a)/(this.length()*a.length());return Math.acos(THREE.Math.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},setEulerFromRotationMatrix:function(a,b){console.error("REMOVED: Vector3's setEulerFromRotationMatrix has been removed in favor of Euler.setFromRotationMatrix(), please update your code.")},
-setEulerFromQuaternion:function(a,b){console.error("REMOVED: Vector3's setEulerFromQuaternion: has been removed in favor of Euler.setFromQuaternion(), please update your code.")},getPositionFromMatrix:function(a){console.warn("DEPRECATED: Vector3's .getPositionFromMatrix() has been renamed to .setFromMatrixPosition(). Please update your code.");return this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){console.warn("DEPRECATED: Vector3's .getScaleFromMatrix() has been renamed to .setFromMatrixScale(). Please update your code.");
-return this.setFromMatrixScale(a)},getColumnFromMatrix:function(a,b){console.warn("DEPRECATED: Vector3's .getColumnFromMatrix() has been renamed to .setFromMatrixColumn(). Please update your code.");return this.setFromMatrixColumn(a,b)},setFromMatrixPosition:function(a){this.x=a.elements[12];this.y=a.elements[13];this.z=a.elements[14];return this},setFromMatrixScale:function(a){var b=this.set(a.elements[0],a.elements[1],a.elements[2]).length(),c=this.set(a.elements[4],a.elements[5],a.elements[6]).length();
-a=this.set(a.elements[8],a.elements[9],a.elements[10]).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){var c=4*a,d=b.elements;this.x=d[c];this.y=d[c+1];this.z=d[c+2];return this},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a){this.x=a[0];this.y=a[1];this.z=a[2];return this},toArray:function(){return[this.x,this.y,this.z]},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)}};THREE.Vector4=function(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1};
-THREE.Vector4.prototype={constructor:THREE.Vector4,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;
-case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector4's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},
-addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},sub:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector4's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},
-applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){0!==a?(a=1/a,this.x*=a,this.y*=a,this.z*=a,this.w*=a):(this.z=this.y=this.x=0,this.w=1);return this},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,
-this.y=a.y/b,this.z=a.z/b);return this},setAxisAngleFromRotationMatrix:function(a){var b,c,d;a=a.elements;var e=a[0];d=a[4];var f=a[8],g=a[1],h=a[5],k=a[9];c=a[2];b=a[6];var l=a[10];if(0.01>Math.abs(d-g)&&0.01>Math.abs(f-c)&&0.01>Math.abs(k-b)){if(0.1>Math.abs(d+g)&&0.1>Math.abs(f+c)&&0.1>Math.abs(k+b)&&0.1>Math.abs(e+h+l-3))return this.set(1,0,0,0),this;a=Math.PI;e=(e+1)/2;h=(h+1)/2;l=(l+1)/2;d=(d+g)/4;f=(f+c)/4;k=(k+b)/4;e>h&&e>l?0.01>e?(b=0,d=c=0.707106781):(b=Math.sqrt(e),c=d/b,d=f/b):h>l?0.01>
-h?(b=0.707106781,c=0,d=0.707106781):(c=Math.sqrt(h),b=d/c,d=k/c):0.01>l?(c=b=0.707106781,d=0):(d=Math.sqrt(l),b=f/d,c=k/d);this.set(b,c,d,a);return this}a=Math.sqrt((b-k)*(b-k)+(f-c)*(f-c)+(g-d)*(g-d));0.001>Math.abs(a)&&(a=1);this.x=(b-k)/a;this.y=(f-c)/a;this.z=(g-d)/a;this.w=Math.acos((e+h+l-1)/2);return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);this.z>a.z&&(this.z=a.z);this.w>a.w&&(this.w=a.w);return this},max:function(a){this.x<a.x&&(this.x=a.x);this.y<a.y&&(this.y=
-a.y);this.z<a.z&&(this.z=a.z);this.w<a.w&&(this.w=a.w);return this},clamp:function(a,b){this.x<a.x?this.x=a.x:this.x>b.x&&(this.x=b.x);this.y<a.y?this.y=a.y:this.y>b.y&&(this.y=b.y);this.z<a.z?this.z=a.z:this.z>b.z&&(this.z=b.z);this.w<a.w?this.w=a.w:this.w>b.w&&(this.w=b.w);return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector4,b=new THREE.Vector4);a.set(c,c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),floor:function(){this.x=Math.floor(this.x);this.y=
-Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):
-Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length())},
-setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a){this.x=a[0];this.y=a[1];this.z=a[2];this.w=a[3];return this},toArray:function(){return[this.x,this.y,this.z,this.w]},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,
-this.w)}};THREE.Euler=function(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||THREE.Euler.DefaultOrder};THREE.Euler.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");THREE.Euler.DefaultOrder="XYZ";
-THREE.Euler.prototype={constructor:THREE.Euler,_x:0,_y:0,_z:0,_order:THREE.Euler.DefaultOrder,get x(){return this._x},set x(a){this._x=a;this.onChangeCallback()},get y(){return this._y},set y(a){this._y=a;this.onChangeCallback()},get z(){return this._z},set z(a){this._z=a;this.onChangeCallback()},get order(){return this._order},set order(a){this._order=a;this.onChangeCallback()},set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this.onChangeCallback();return this},copy:function(a){this._x=
-a._x;this._y=a._y;this._z=a._z;this._order=a._order;this.onChangeCallback();return this},setFromRotationMatrix:function(a,b){var c=THREE.Math.clamp,d=a.elements,e=d[0],f=d[4],g=d[8],h=d[1],k=d[5],l=d[9],n=d[2],q=d[6],d=d[10];b=b||this._order;"XYZ"===b?(this._y=Math.asin(c(g,-1,1)),0.99999>Math.abs(g)?(this._x=Math.atan2(-l,d),this._z=Math.atan2(-f,e)):(this._x=Math.atan2(q,k),this._z=0)):"YXZ"===b?(this._x=Math.asin(-c(l,-1,1)),0.99999>Math.abs(l)?(this._y=Math.atan2(g,d),this._z=Math.atan2(h,k)):
-(this._y=Math.atan2(-n,e),this._z=0)):"ZXY"===b?(this._x=Math.asin(c(q,-1,1)),0.99999>Math.abs(q)?(this._y=Math.atan2(-n,d),this._z=Math.atan2(-f,k)):(this._y=0,this._z=Math.atan2(h,e))):"ZYX"===b?(this._y=Math.asin(-c(n,-1,1)),0.99999>Math.abs(n)?(this._x=Math.atan2(q,d),this._z=Math.atan2(h,e)):(this._x=0,this._z=Math.atan2(-f,k))):"YZX"===b?(this._z=Math.asin(c(h,-1,1)),0.99999>Math.abs(h)?(this._x=Math.atan2(-l,k),this._y=Math.atan2(-n,e)):(this._x=0,this._y=Math.atan2(g,d))):"XZY"===b?(this._z=
-Math.asin(-c(f,-1,1)),0.99999>Math.abs(f)?(this._x=Math.atan2(q,k),this._y=Math.atan2(g,e)):(this._x=Math.atan2(-l,d),this._y=0)):console.warn("WARNING: Euler.setFromRotationMatrix() given unsupported order: "+b);this._order=b;this.onChangeCallback();return this},setFromQuaternion:function(a,b,c){var d=THREE.Math.clamp,e=a.x*a.x,f=a.y*a.y,g=a.z*a.z,h=a.w*a.w;b=b||this._order;"XYZ"===b?(this._x=Math.atan2(2*(a.x*a.w-a.y*a.z),h-e-f+g),this._y=Math.asin(d(2*(a.x*a.z+a.y*a.w),-1,1)),this._z=Math.atan2(2*
-(a.z*a.w-a.x*a.y),h+e-f-g)):"YXZ"===b?(this._x=Math.asin(d(2*(a.x*a.w-a.y*a.z),-1,1)),this._y=Math.atan2(2*(a.x*a.z+a.y*a.w),h-e-f+g),this._z=Math.atan2(2*(a.x*a.y+a.z*a.w),h-e+f-g)):"ZXY"===b?(this._x=Math.asin(d(2*(a.x*a.w+a.y*a.z),-1,1)),this._y=Math.atan2(2*(a.y*a.w-a.z*a.x),h-e-f+g),this._z=Math.atan2(2*(a.z*a.w-a.x*a.y),h-e+f-g)):"ZYX"===b?(this._x=Math.atan2(2*(a.x*a.w+a.z*a.y),h-e-f+g),this._y=Math.asin(d(2*(a.y*a.w-a.x*a.z),-1,1)),this._z=Math.atan2(2*(a.x*a.y+a.z*a.w),h+e-f-g)):"YZX"===
-b?(this._x=Math.atan2(2*(a.x*a.w-a.z*a.y),h-e+f-g),this._y=Math.atan2(2*(a.y*a.w-a.x*a.z),h+e-f-g),this._z=Math.asin(d(2*(a.x*a.y+a.z*a.w),-1,1))):"XZY"===b?(this._x=Math.atan2(2*(a.x*a.w+a.y*a.z),h-e+f-g),this._y=Math.atan2(2*(a.x*a.z+a.y*a.w),h+e-f-g),this._z=Math.asin(d(2*(a.z*a.w-a.x*a.y),-1,1))):console.warn("WARNING: Euler.setFromQuaternion() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},reorder:function(){var a=new THREE.Quaternion;return function(b){a.setFromEuler(this);
-this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(){return[this._x,this._y,this._z,this._order]},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){},clone:function(){return new THREE.Euler(this._x,this._y,this._z,this._order)}};THREE.Line3=function(a,b){this.start=void 0!==a?a:new THREE.Vector3;this.end=void 0!==b?b:new THREE.Vector3};
-THREE.Line3.prototype={constructor:THREE.Line3,set:function(a,b){this.start.copy(a);this.end.copy(b);return this},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},center:function(a){return(a||new THREE.Vector3).addVectors(this.start,this.end).multiplyScalar(0.5)},delta:function(a){return(a||new THREE.Vector3).subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(a,
-b){var c=b||new THREE.Vector3;return this.delta(c).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c,d){a.subVectors(c,this.start);b.subVectors(this.end,this.start);var e=b.dot(b),e=b.dot(a)/e;d&&(e=THREE.Math.clamp(e,0,1));return e}}(),closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);c=c||new THREE.Vector3;return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);
-this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)},clone:function(){return(new THREE.Line3).copy(this)}};THREE.Box2=function(a,b){this.min=void 0!==a?a:new THREE.Vector2(Infinity,Infinity);this.max=void 0!==b?b:new THREE.Vector2(-Infinity,-Infinity)};
-THREE.Box2.prototype={constructor:THREE.Box2,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){if(0<a.length){var b=a[0];this.min.copy(b);this.max.copy(b);for(var c=1,d=a.length;c<d;c++)b=a[c],b.x<this.min.x?this.min.x=b.x:b.x>this.max.x&&(this.max.x=b.x),b.y<this.min.y?this.min.y=b.y:b.y>this.max.y&&(this.max.y=b.y)}else this.makeEmpty();return this},setFromCenterAndSize:function(){var a=new THREE.Vector2;return function(b,c){var d=a.copy(c).multiplyScalar(0.5);
-this.min.copy(b).sub(d);this.max.copy(b).add(d);return this}}(),copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this},empty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},center:function(a){return(a||new THREE.Vector2).addVectors(this.min,this.max).multiplyScalar(0.5)},size:function(a){return(a||new THREE.Vector2).subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);
-this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y?!0:!1},getParameter:function(a,b){return(b||new THREE.Vector2).set((a.x-this.min.x)/(this.max.x-this.min.x),
-(a.y-this.min.y)/(this.max.y-this.min.y))},isIntersectionBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y?!1:!0},clampPoint:function(a,b){return(b||new THREE.Vector2).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new THREE.Vector2;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);
-return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)},clone:function(){return(new THREE.Box2).copy(this)}};THREE.Box3=function(a,b){this.min=void 0!==a?a:new THREE.Vector3(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new THREE.Vector3(-Infinity,-Infinity,-Infinity)};
-THREE.Box3.prototype={constructor:THREE.Box3,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},addPoint:function(a){a.x<this.min.x?this.min.x=a.x:a.x>this.max.x&&(this.max.x=a.x);a.y<this.min.y?this.min.y=a.y:a.y>this.max.y&&(this.max.y=a.y);a.z<this.min.z?this.min.z=a.z:a.z>this.max.z&&(this.max.z=a.z);return this},setFromPoints:function(a){if(0<a.length){var b=a[0];this.min.copy(b);this.max.copy(b);for(var b=1,c=a.length;b<c;b++)this.addPoint(a[b])}else this.makeEmpty();return this},
-setFromCenterAndSize:function(){var a=new THREE.Vector3;return function(b,c){var d=a.copy(c).multiplyScalar(0.5);this.min.copy(b).sub(d);this.max.copy(b).add(d);return this}}(),setFromObject:function(){var a=new THREE.Vector3;return function(b){var c=this;b.updateMatrixWorld(!0);this.makeEmpty();b.traverse(function(b){if(void 0!==b.geometry&&void 0!==b.geometry.vertices)for(var e=b.geometry.vertices,f=0,g=e.length;f<g;f++)a.copy(e[f]),a.applyMatrix4(b.matrixWorld),c.expandByPoint(a)});return this}}(),
-copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this},empty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},center:function(a){return(a||new THREE.Vector3).addVectors(this.min,this.max).multiplyScalar(0.5)},size:function(a){return(a||new THREE.Vector3).subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);
-this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y||a.z<this.min.z||a.z>this.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z?!0:!1},getParameter:function(a,
-b){return(b||new THREE.Vector3).set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},isIntersectionBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y||a.max.z<this.min.z||a.min.z>this.max.z?!1:!0},clampPoint:function(a,b){return(b||new THREE.Vector3).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new THREE.Vector3;return function(b){return a.copy(b).clamp(this.min,
-this.max).sub(b).length()}}(),getBoundingSphere:function(){var a=new THREE.Vector3;return function(b){b=b||new THREE.Sphere;b.center=this.center();b.radius=0.5*this.size(a).length();return b}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(){var a=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];
-return function(b){a[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(b);a[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(b);a[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(b);a[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(b);a[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(b);a[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(b);a[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(b);a[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(b);this.makeEmpty();
-this.setFromPoints(a);return this}}(),translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)},clone:function(){return(new THREE.Box3).copy(this)}};THREE.Matrix3=function(a,b,c,d,e,f,g,h,k){var l=this.elements=new Float32Array(9);l[0]=void 0!==a?a:1;l[3]=b||0;l[6]=c||0;l[1]=d||0;l[4]=void 0!==e?e:1;l[7]=f||0;l[2]=g||0;l[5]=h||0;l[8]=void 0!==k?k:1};
-THREE.Matrix3.prototype={constructor:THREE.Matrix3,set:function(a,b,c,d,e,f,g,h,k){var l=this.elements;l[0]=a;l[3]=b;l[6]=c;l[1]=d;l[4]=e;l[7]=f;l[2]=g;l[5]=h;l[8]=k;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},copy:function(a){a=a.elements;this.set(a[0],a[3],a[6],a[1],a[4],a[7],a[2],a[5],a[8]);return this},multiplyVector3:function(a){console.warn("DEPRECATED: Matrix3's .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},
-multiplyVector3Array:function(a){console.warn("DEPRECATED: Matrix3's .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.");return this.applyToVector3Array(a)},applyToVector3Array:function(){var a=new THREE.Vector3;return function(b,c,d){void 0===c&&(c=0);void 0===d&&(d=b.length);for(var e=0;e<d;e+=3,c+=3)a.x=b[c],a.y=b[c+1],a.z=b[c+2],a.applyMatrix3(this),b[c]=a.x,b[c+1]=a.y,b[c+2]=a.z;return b}}(),multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=
-a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],k=a[7],a=a[8];return b*f*a-b*g*k-c*e*a+c*g*h+d*e*k-d*f*h},getInverse:function(a,b){var c=a.elements,d=this.elements;d[0]=c[10]*c[5]-c[6]*c[9];d[1]=-c[10]*c[1]+c[2]*c[9];d[2]=c[6]*c[1]-c[2]*c[5];d[3]=-c[10]*c[4]+c[6]*c[8];d[4]=c[10]*c[0]-c[2]*c[8];d[5]=-c[6]*c[0]+c[2]*c[4];d[6]=c[9]*c[4]-c[5]*c[8];d[7]=-c[9]*c[0]+c[1]*c[8];d[8]=c[5]*c[0]-
-c[1]*c[4];c=c[0]*d[0]+c[1]*d[3]+c[2]*d[6];if(0===c){if(b)throw Error("Matrix3.getInverse(): can't invert matrix, determinant is 0");console.warn("Matrix3.getInverse(): can't invert matrix, determinant is 0");this.identity();return this}this.multiplyScalar(1/c);return this},transpose:function(){var a,b=this.elements;a=b[1];b[1]=b[3];b[3]=a;a=b[2];b[2]=b[6];b[6]=a;a=b[5];b[5]=b[7];b[7]=a;return this},flattenToArrayOffset:function(a,b){var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];
-a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];return a},getNormalMatrix:function(a){this.getInverse(a).transpose();return this},transposeIntoArray:function(a){var b=this.elements;a[0]=b[0];a[1]=b[3];a[2]=b[6];a[3]=b[1];a[4]=b[4];a[5]=b[7];a[6]=b[2];a[7]=b[5];a[8]=b[8];return this},fromArray:function(a){this.elements.set(a);return this},toArray:function(){var a=this.elements;return[a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]]},clone:function(){var a=this.elements;return new THREE.Matrix3(a[0],
-a[3],a[6],a[1],a[4],a[7],a[2],a[5],a[8])}};THREE.Matrix4=function(a,b,c,d,e,f,g,h,k,l,n,q,p,s,t,r){var v=this.elements=new Float32Array(16);v[0]=void 0!==a?a:1;v[4]=b||0;v[8]=c||0;v[12]=d||0;v[1]=e||0;v[5]=void 0!==f?f:1;v[9]=g||0;v[13]=h||0;v[2]=k||0;v[6]=l||0;v[10]=void 0!==n?n:1;v[14]=q||0;v[3]=p||0;v[7]=s||0;v[11]=t||0;v[15]=void 0!==r?r:1};
-THREE.Matrix4.prototype={constructor:THREE.Matrix4,set:function(a,b,c,d,e,f,g,h,k,l,n,q,p,s,t,r){var v=this.elements;v[0]=a;v[4]=b;v[8]=c;v[12]=d;v[1]=e;v[5]=f;v[9]=g;v[13]=h;v[2]=k;v[6]=l;v[10]=n;v[14]=q;v[3]=p;v[7]=s;v[11]=t;v[15]=r;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},copy:function(a){this.elements.set(a.elements);return this},extractPosition:function(a){console.warn("DEPRECATED: Matrix4's .extractPosition() has been renamed to .copyPosition().");
-return this.copyPosition(a)},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractRotation:function(){var a=new THREE.Vector3;return function(b){var c=this.elements;b=b.elements;var d=1/a.set(b[0],b[1],b[2]).length(),e=1/a.set(b[4],b[5],b[6]).length(),f=1/a.set(b[8],b[9],b[10]).length();c[0]=b[0]*d;c[1]=b[1]*d;c[2]=b[2]*d;c[4]=b[4]*e;c[5]=b[5]*e;c[6]=b[6]*e;c[8]=b[8]*f;c[9]=b[9]*f;c[10]=b[10]*f;return this}}(),makeRotationFromEuler:function(a){!1===
-a instanceof THREE.Euler&&console.error("ERROR: Matrix's .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order. Please update your code.");var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c),c=Math.sin(c),g=Math.cos(d),d=Math.sin(d),h=Math.cos(e),e=Math.sin(e);if("XYZ"===a.order){a=f*h;var k=f*e,l=c*h,n=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=k+l*d;b[5]=a-n*d;b[9]=-c*g;b[2]=n-a*d;b[6]=l+k*d;b[10]=f*g}else"YXZ"===a.order?(a=g*h,k=g*e,l=d*h,n=d*e,b[0]=a+n*c,b[4]=l*c-k,b[8]=
-f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=k*c-l,b[6]=n+a*c,b[10]=f*g):"ZXY"===a.order?(a=g*h,k=g*e,l=d*h,n=d*e,b[0]=a-n*c,b[4]=-f*e,b[8]=l+k*c,b[1]=k+l*c,b[5]=f*h,b[9]=n-a*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(a=f*h,k=f*e,l=c*h,n=c*e,b[0]=g*h,b[4]=l*d-k,b[8]=a*d+n,b[1]=g*e,b[5]=n*d+a,b[9]=k*d-l,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(a=f*g,k=f*d,l=c*g,n=c*d,b[0]=g*h,b[4]=n-a*e,b[8]=l*e+k,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=k*e+l,b[10]=a-n*e):"XZY"===a.order&&(a=f*g,k=f*d,l=c*g,n=c*d,b[0]=
-g*h,b[4]=-e,b[8]=d*h,b[1]=a*e+n,b[5]=f*h,b[9]=k*e-l,b[2]=l*e-k,b[6]=c*h,b[10]=n*e+a);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},setRotationFromQuaternion:function(a){console.warn("DEPRECATED: Matrix4's .setRotationFromQuaternion() has been deprecated in favor of makeRotationFromQuaternion. Please update your code.");return this.makeRotationFromQuaternion(a)},makeRotationFromQuaternion:function(a){var b=this.elements,c=a.x,d=a.y,e=a.z,f=a.w,g=c+c,h=d+d,k=e+e;a=c*g;var l=c*
-h,c=c*k,n=d*h,d=d*k,e=e*k,g=f*g,h=f*h,f=f*k;b[0]=1-(n+e);b[4]=l-f;b[8]=c+h;b[1]=l+f;b[5]=1-(a+e);b[9]=d-g;b[2]=c-h;b[6]=d+g;b[10]=1-(a+n);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},lookAt:function(){var a=new THREE.Vector3,b=new THREE.Vector3,c=new THREE.Vector3;return function(d,e,f){var g=this.elements;c.subVectors(d,e).normalize();0===c.length()&&(c.z=1);a.crossVectors(f,c).normalize();0===a.length()&&(c.x+=1E-4,a.crossVectors(f,c).normalize());b.crossVectors(c,a);g[0]=
-a.x;g[4]=b.x;g[8]=c.x;g[1]=a.y;g[5]=b.y;g[9]=c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;return this}}(),multiply:function(a,b){return void 0!==b?(console.warn("DEPRECATED: Matrix4's .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements,e=this.elements,f=c[0],g=c[4],h=c[8],k=c[12],l=c[1],n=c[5],q=c[9],p=c[13],s=c[2],t=c[6],r=c[10],v=c[14],w=c[3],u=c[7],y=c[11],
-c=c[15],L=d[0],x=d[4],N=d[8],J=d[12],B=d[1],K=d[5],A=d[9],G=d[13],D=d[2],C=d[6],F=d[10],z=d[14],H=d[3],E=d[7],Q=d[11],d=d[15];e[0]=f*L+g*B+h*D+k*H;e[4]=f*x+g*K+h*C+k*E;e[8]=f*N+g*A+h*F+k*Q;e[12]=f*J+g*G+h*z+k*d;e[1]=l*L+n*B+q*D+p*H;e[5]=l*x+n*K+q*C+p*E;e[9]=l*N+n*A+q*F+p*Q;e[13]=l*J+n*G+q*z+p*d;e[2]=s*L+t*B+r*D+v*H;e[6]=s*x+t*K+r*C+v*E;e[10]=s*N+t*A+r*F+v*Q;e[14]=s*J+t*G+r*z+v*d;e[3]=w*L+u*B+y*D+c*H;e[7]=w*x+u*K+y*C+c*E;e[11]=w*N+u*A+y*F+c*Q;e[15]=w*J+u*G+y*z+c*d;return this},multiplyToArray:function(a,
-b,c){var d=this.elements;this.multiplyMatrices(a,b);c[0]=d[0];c[1]=d[1];c[2]=d[2];c[3]=d[3];c[4]=d[4];c[5]=d[5];c[6]=d[6];c[7]=d[7];c[8]=d[8];c[9]=d[9];c[10]=d[10];c[11]=d[11];c[12]=d[12];c[13]=d[13];c[14]=d[14];c[15]=d[15];return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},multiplyVector3:function(a){console.warn("DEPRECATED: Matrix4's .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) or vector.applyProjection( matrix ) instead.");
-return a.applyProjection(this)},multiplyVector4:function(a){console.warn("DEPRECATED: Matrix4's .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector3Array:function(a){console.warn("DEPRECATED: Matrix4's .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.");return this.applyToVector3Array(a)},applyToVector3Array:function(){var a=new THREE.Vector3;return function(b,c,d){void 0===c&&(c=0);
-void 0===d&&(d=b.length);for(var e=0;e<d;e+=3,c+=3)a.x=b[c],a.y=b[c+1],a.z=b[c+2],a.applyMatrix4(this),b[c]=a.x,b[c+1]=a.y,b[c+2]=a.z;return b}}(),rotateAxis:function(a){console.warn("DEPRECATED: Matrix4's .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.");a.transformDirection(this)},crossVector:function(a){console.warn("DEPRECATED: Matrix4's .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},determinant:function(){var a=
-this.elements,b=a[0],c=a[4],d=a[8],e=a[12],f=a[1],g=a[5],h=a[9],k=a[13],l=a[2],n=a[6],q=a[10],p=a[14];return a[3]*(+e*h*n-d*k*n-e*g*q+c*k*q+d*g*p-c*h*p)+a[7]*(+b*h*p-b*k*q+e*f*q-d*f*p+d*k*l-e*h*l)+a[11]*(+b*k*n-b*g*p-e*f*n+c*f*p+e*g*l-c*k*l)+a[15]*(-d*g*l-b*h*n+b*g*q+d*f*n-c*f*q+c*h*l)},transpose:function(){var a=this.elements,b;b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},flattenToArrayOffset:function(a,
-b){var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a},getPosition:function(){var a=new THREE.Vector3;return function(){console.warn("DEPRECATED: Matrix4's .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");var b=this.elements;return a.set(b[12],b[13],b[14])}}(),setPosition:function(a){var b=
-this.elements;b[12]=a.x;b[13]=a.y;b[14]=a.z;return this},getInverse:function(a,b){var c=this.elements,d=a.elements,e=d[0],f=d[4],g=d[8],h=d[12],k=d[1],l=d[5],n=d[9],q=d[13],p=d[2],s=d[6],t=d[10],r=d[14],v=d[3],w=d[7],u=d[11],d=d[15];c[0]=n*r*w-q*t*w+q*s*u-l*r*u-n*s*d+l*t*d;c[4]=h*t*w-g*r*w-h*s*u+f*r*u+g*s*d-f*t*d;c[8]=g*q*w-h*n*w+h*l*u-f*q*u-g*l*d+f*n*d;c[12]=h*n*s-g*q*s-h*l*t+f*q*t+g*l*r-f*n*r;c[1]=q*t*v-n*r*v-q*p*u+k*r*u+n*p*d-k*t*d;c[5]=g*r*v-h*t*v+h*p*u-e*r*u-g*p*d+e*t*d;c[9]=h*n*v-g*q*v-h*k*
-u+e*q*u+g*k*d-e*n*d;c[13]=g*q*p-h*n*p+h*k*t-e*q*t-g*k*r+e*n*r;c[2]=l*r*v-q*s*v+q*p*w-k*r*w-l*p*d+k*s*d;c[6]=h*s*v-f*r*v-h*p*w+e*r*w+f*p*d-e*s*d;c[10]=f*q*v-h*l*v+h*k*w-e*q*w-f*k*d+e*l*d;c[14]=h*l*p-f*q*p-h*k*s+e*q*s+f*k*r-e*l*r;c[3]=n*s*v-l*t*v-n*p*w+k*t*w+l*p*u-k*s*u;c[7]=f*t*v-g*s*v+g*p*w-e*t*w-f*p*u+e*s*u;c[11]=g*l*v-f*n*v-g*k*w+e*n*w+f*k*u-e*l*u;c[15]=f*n*p-g*l*p+g*k*s-e*n*s-f*k*t+e*l*t;c=e*c[0]+k*c[4]+p*c[8]+v*c[12];if(0==c){if(b)throw Error("Matrix4.getInverse(): can't invert matrix, determinant is 0");
-console.warn("Matrix4.getInverse(): can't invert matrix, determinant is 0");this.identity();return this}this.multiplyScalar(1/c);return this},translate:function(a){console.warn("DEPRECATED: Matrix4's .translate() has been removed.")},rotateX:function(a){console.warn("DEPRECATED: Matrix4's .rotateX() has been removed.")},rotateY:function(a){console.warn("DEPRECATED: Matrix4's .rotateY() has been removed.")},rotateZ:function(a){console.warn("DEPRECATED: Matrix4's .rotateZ() has been removed.")},rotateByAxis:function(a,
-b){console.warn("DEPRECATED: Matrix4's .rotateByAxis() has been removed.")},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],Math.max(a[4]*a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10])))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},
-makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,b){var c=Math.cos(b),d=Math.sin(b),e=1-c,f=a.x,g=a.y,h=a.z,k=e*f,l=e*g;this.set(k*f+c,k*g-d*h,k*h+d*g,0,k*g+d*h,l*g+c,l*h-d*f,0,k*h-
-d*g,l*h+d*f,e*h*h+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},compose:function(a,b,c){this.makeRotationFromQuaternion(b);this.scale(c);this.setPosition(a);return this},decompose:function(){var a=new THREE.Vector3,b=new THREE.Matrix4;return function(c,d,e){var f=this.elements,g=a.set(f[0],f[1],f[2]).length(),h=a.set(f[4],f[5],f[6]).length(),k=a.set(f[8],f[9],f[10]).length();0>this.determinant()&&(g=-g);c.x=f[12];c.y=f[13];c.z=f[14];b.elements.set(this.elements);
-c=1/g;var f=1/h,l=1/k;b.elements[0]*=c;b.elements[1]*=c;b.elements[2]*=c;b.elements[4]*=f;b.elements[5]*=f;b.elements[6]*=f;b.elements[8]*=l;b.elements[9]*=l;b.elements[10]*=l;d.setFromRotationMatrix(b);e.x=g;e.y=h;e.z=k;return this}}(),makeFrustum:function(a,b,c,d,e,f){var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(d-c);g[9]=(d+c)/(d-c);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;g[7]=0;g[11]=-1;g[15]=0;return this},makePerspective:function(a,
-b,c,d){a=c*Math.tan(THREE.Math.degToRad(0.5*a));var e=-a;return this.makeFrustum(e*b,a*b,e,a,c,d)},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=b-a,k=c-d,l=f-e;g[0]=2/h;g[4]=0;g[8]=0;g[12]=-((b+a)/h);g[1]=0;g[5]=2/k;g[9]=0;g[13]=-((c+d)/k);g[2]=0;g[6]=0;g[10]=-2/l;g[14]=-((f+e)/l);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},fromArray:function(a){this.elements.set(a);return this},toArray:function(){var a=this.elements;return[a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],
-a[12],a[13],a[14],a[15]]},clone:function(){var a=this.elements;return new THREE.Matrix4(a[0],a[4],a[8],a[12],a[1],a[5],a[9],a[13],a[2],a[6],a[10],a[14],a[3],a[7],a[11],a[15])}};THREE.Ray=function(a,b){this.origin=void 0!==a?a:new THREE.Vector3;this.direction=void 0!==b?b:new THREE.Vector3};
-THREE.Ray.prototype={constructor:THREE.Ray,set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){return(b||new THREE.Vector3).copy(this.direction).multiplyScalar(a).add(this.origin)},recast:function(){var a=new THREE.Vector3;return function(b){this.origin.copy(this.at(b,a));return this}}(),closestPointToPoint:function(a,b){var c=b||new THREE.Vector3;c.subVectors(a,this.origin);
-var d=c.dot(this.direction);return 0>d?c.copy(this.origin):c.copy(this.direction).multiplyScalar(d).add(this.origin)},distanceToPoint:function(){var a=new THREE.Vector3;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceTo(b);a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceTo(b)}}(),distanceSqToSegment:function(a,b,c,d){var e=a.clone().add(b).multiplyScalar(0.5),f=b.clone().sub(a).normalize(),g=0.5*a.distanceTo(b),
-h=this.origin.clone().sub(e);a=-this.direction.dot(f);b=h.dot(this.direction);var k=-h.dot(f),l=h.lengthSq(),n=Math.abs(1-a*a),q,p;0<=n?(h=a*k-b,q=a*b-k,p=g*n,0<=h?q>=-p?q<=p?(g=1/n,h*=g,q*=g,a=h*(h+a*q+2*b)+q*(a*h+q+2*k)+l):(q=g,h=Math.max(0,-(a*q+b)),a=-h*h+q*(q+2*k)+l):(q=-g,h=Math.max(0,-(a*q+b)),a=-h*h+q*(q+2*k)+l):q<=-p?(h=Math.max(0,-(-a*g+b)),q=0<h?-g:Math.min(Math.max(-g,-k),g),a=-h*h+q*(q+2*k)+l):q<=p?(h=0,q=Math.min(Math.max(-g,-k),g),a=q*(q+2*k)+l):(h=Math.max(0,-(a*g+b)),q=0<h?g:Math.min(Math.max(-g,
--k),g),a=-h*h+q*(q+2*k)+l)):(q=0<a?-g:g,h=Math.max(0,-(a*q+b)),a=-h*h+q*(q+2*k)+l);c&&c.copy(this.direction.clone().multiplyScalar(h).add(this.origin));d&&d.copy(f.clone().multiplyScalar(q).add(e));return a},isIntersectionSphere:function(a){return this.distanceToPoint(a.center)<=a.radius},isIntersectionPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0==b)return 0==a.distanceToPoint(this.origin)?
-0:null;a=-(this.origin.dot(a.normal)+a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,b){var c=this.distanceToPlane(a);return null===c?null:this.at(c,b)},isIntersectionBox:function(){var a=new THREE.Vector3;return function(b){return null!==this.intersectBox(b,a)}}(),intersectBox:function(a,b){var c,d,e,f,g;d=1/this.direction.x;f=1/this.direction.y;g=1/this.direction.z;var h=this.origin;0<=d?(c=(a.min.x-h.x)*d,d*=a.max.x-h.x):(c=(a.max.x-h.x)*d,d*=a.min.x-h.x);0<=f?(e=(a.min.y-h.y)*f,f*=
-a.max.y-h.y):(e=(a.max.y-h.y)*f,f*=a.min.y-h.y);if(c>f||e>d)return null;if(e>c||c!==c)c=e;if(f<d||d!==d)d=f;0<=g?(e=(a.min.z-h.z)*g,g*=a.max.z-h.z):(e=(a.max.z-h.z)*g,g*=a.min.z-h.z);if(c>g||e>d)return null;if(e>c||c!==c)c=e;if(g<d||d!==d)d=g;return 0>d?null:this.at(0<=c?c:d,b)},intersectTriangle:function(){var a=new THREE.Vector3,b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Vector3;return function(e,f,g,h,k){b.subVectors(f,e);c.subVectors(g,e);d.crossVectors(b,c);f=this.direction.dot(d);if(0<
-f){if(h)return null;h=1}else if(0>f)h=-1,f=-f;else return null;a.subVectors(this.origin,e);e=h*this.direction.dot(c.crossVectors(a,c));if(0>e)return null;g=h*this.direction.dot(b.cross(a));if(0>g||e+g>f)return null;e=-h*a.dot(d);return 0>e?null:this.at(e/f,k)}}(),applyMatrix4:function(a){this.direction.add(this.origin).applyMatrix4(a);this.origin.applyMatrix4(a);this.direction.sub(this.origin);this.direction.normalize();return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)},
-clone:function(){return(new THREE.Ray).copy(this)}};THREE.Sphere=function(a,b){this.center=void 0!==a?a:new THREE.Vector3;this.radius=void 0!==b?b:0};
-THREE.Sphere.prototype={constructor:THREE.Sphere,set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new THREE.Box3;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).center(d);for(var e=0,f=0,g=b.length;f<g;f++)e=Math.max(e,d.distanceToSquared(b[f]));this.radius=Math.sqrt(e);return this}}(),copy:function(a){this.center.copy(a.center);this.radius=a.radius;return this},empty:function(){return 0>=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=
-this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},clampPoint:function(a,b){var c=this.center.distanceToSquared(a),d=b||new THREE.Vector3;d.copy(a);c>this.radius*this.radius&&(d.sub(this.center).normalize(),d.multiplyScalar(this.radius).add(this.center));return d},getBoundingBox:function(a){a=a||new THREE.Box3;a.set(this.center,this.center);a.expandByScalar(this.radius);
-return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius},clone:function(){return(new THREE.Sphere).copy(this)}};THREE.Frustum=function(a,b,c,d,e,f){this.planes=[void 0!==a?a:new THREE.Plane,void 0!==b?b:new THREE.Plane,void 0!==c?c:new THREE.Plane,void 0!==d?d:new THREE.Plane,void 0!==e?e:new THREE.Plane,void 0!==f?f:new THREE.Plane]};
-THREE.Frustum.prototype={constructor:THREE.Frustum,set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],k=c[6],l=c[7],n=c[8],q=c[9],p=c[10],s=c[11],t=c[12],r=c[13],v=c[14],c=c[15];b[0].setComponents(f-a,l-g,s-n,c-t).normalize();b[1].setComponents(f+
-a,l+g,s+n,c+t).normalize();b[2].setComponents(f+d,l+h,s+q,c+r).normalize();b[3].setComponents(f-d,l-h,s-q,c-r).normalize();b[4].setComponents(f-e,l-k,s-p,c-v).normalize();b[5].setComponents(f+e,l+k,s+p,c+v).normalize();return this},intersectsObject:function(){var a=new THREE.Sphere;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere);a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes,
-c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c){for(var d=this.planes,e=0;6>e;e++){var f=d[e];a.x=0<f.normal.x?c.min.x:c.max.x;b.x=0<f.normal.x?c.max.x:c.min.x;a.y=0<f.normal.y?c.min.y:c.max.y;b.y=0<f.normal.y?c.max.y:c.min.y;a.z=0<f.normal.z?c.min.z:c.max.z;b.z=0<f.normal.z?c.max.z:c.min.z;var g=f.distanceToPoint(a),f=f.distanceToPoint(b);if(0>g&&0>f)return!1}return!0}}(),
-containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0},clone:function(){return(new THREE.Frustum).copy(this)}};THREE.Plane=function(a,b){this.normal=void 0!==a?a:new THREE.Vector3(1,0,0);this.constant=void 0!==b?b:0};
-THREE.Plane.prototype={constructor:THREE.Plane,set:function(a,b){this.normal.copy(a);this.constant=b;return this},setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,
-c);return this}}(),copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){return this.orthoPoint(a,b).sub(a).negate()},orthoPoint:function(a,
-b){var c=this.distanceToPoint(a);return(b||new THREE.Vector3).copy(this.normal).multiplyScalar(c)},isIntersectionLine:function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0<a||0>a&&0<b},intersectLine:function(){var a=new THREE.Vector3;return function(b,c){var d=c||new THREE.Vector3,e=b.delta(a),f=this.normal.dot(e);if(0==f){if(0==this.distanceToPoint(b.start))return d.copy(b.start)}else return f=-(b.start.dot(this.normal)+this.constant)/f,0>f||1<f?void 0:d.copy(e).multiplyScalar(f).add(b.start)}}(),
-coplanarPoint:function(a){return(a||new THREE.Vector3).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var a=new THREE.Vector3,b=new THREE.Vector3,c=new THREE.Matrix3;return function(d,e){var f=e||c.getNormalMatrix(d),f=a.copy(this.normal).applyMatrix3(f),g=this.coplanarPoint(b);g.applyMatrix4(d);this.setFromNormalAndCoplanarPoint(f,g);return this}}(),translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&
-a.constant==this.constant},clone:function(){return(new THREE.Plane).copy(this)}};THREE.Math={generateUUID:function(){var a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),b=Array(36),c=0,d;return function(){for(var e=0;36>e;e++)8==e||13==e||18==e||23==e?b[e]="-":14==e?b[e]="4":(2>=c&&(c=33554432+16777216*Math.random()|0),d=c&15,c>>=4,b[e]=a[19==e?d&3|8:d]);return b.join("")}}(),clamp:function(a,b,c){return a<b?b:a>c?c:a},clampBottom:function(a,b){return a<b?b:a},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){if(a<=
-b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},random16:function(){return(65280*Math.random()+255*Math.random())/65535},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(0.5-Math.random())},sign:function(a){return 0>a?-1:0<a?1:0},degToRad:function(){var a=Math.PI/180;return function(b){return b*
-a}}(),radToDeg:function(){var a=180/Math.PI;return function(b){return b*a}}(),isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a}};THREE.Spline=function(a){function b(a,b,c,d,e,f,g){a=0.5*(c-a);d=0.5*(d-b);return(2*(b-c)+a+d)*g+(-3*(b-c)-2*a-d)*f+a*e+b}this.points=a;var c=[],d={x:0,y:0,z:0},e,f,g,h,k,l,n,q,p;this.initFromArray=function(a){this.points=[];for(var b=0;b<a.length;b++)this.points[b]={x:a[b][0],y:a[b][1],z:a[b][2]}};this.getPoint=function(a){e=(this.points.length-1)*a;f=Math.floor(e);g=e-f;c[0]=0===f?f:f-1;c[1]=f;c[2]=f>this.points.length-2?this.points.length-1:f+1;c[3]=f>this.points.length-3?this.points.length-1:
-f+2;l=this.points[c[0]];n=this.points[c[1]];q=this.points[c[2]];p=this.points[c[3]];h=g*g;k=g*h;d.x=b(l.x,n.x,q.x,p.x,g,h,k);d.y=b(l.y,n.y,q.y,p.y,g,h,k);d.z=b(l.z,n.z,q.z,p.z,g,h,k);return d};this.getControlPointsArray=function(){var a,b,c=this.points.length,d=[];for(a=0;a<c;a++)b=this.points[a],d[a]=[b.x,b.y,b.z];return d};this.getLength=function(a){var b,c,d,e=b=b=0,f=new THREE.Vector3,g=new THREE.Vector3,h=[],k=0;h[0]=0;a||(a=100);c=this.points.length*a;f.copy(this.points[0]);for(a=1;a<c;a++)b=
-a/c,d=this.getPoint(b),g.copy(d),k+=g.distanceTo(f),f.copy(d),b*=this.points.length-1,b=Math.floor(b),b!=e&&(h[b]=k,e=b);h[h.length]=k;return{chunks:h,total:k}};this.reparametrizeByArcLength=function(a){var b,c,d,e,f,g,h=[],k=new THREE.Vector3,l=this.getLength();h.push(k.copy(this.points[0]).clone());for(b=1;b<this.points.length;b++){c=l.chunks[b]-l.chunks[b-1];g=Math.ceil(a*c/l.total);e=(b-1)/(this.points.length-1);f=b/(this.points.length-1);for(c=1;c<g-1;c++)d=e+1/g*c*(f-e),d=this.getPoint(d),h.push(k.copy(d).clone());
-h.push(k.copy(this.points[b]).clone())}this.points=h}};THREE.Triangle=function(a,b,c){this.a=void 0!==a?a:new THREE.Vector3;this.b=void 0!==b?b:new THREE.Vector3;this.c=void 0!==c?c:new THREE.Vector3};THREE.Triangle.normal=function(){var a=new THREE.Vector3;return function(b,c,d,e){e=e||new THREE.Vector3;e.subVectors(d,c);a.subVectors(b,c);e.cross(a);b=e.lengthSq();return 0<b?e.multiplyScalar(1/Math.sqrt(b)):e.set(0,0,0)}}();
-THREE.Triangle.barycoordFromPoint=function(){var a=new THREE.Vector3,b=new THREE.Vector3,c=new THREE.Vector3;return function(d,e,f,g,h){a.subVectors(g,e);b.subVectors(f,e);c.subVectors(d,e);d=a.dot(a);e=a.dot(b);f=a.dot(c);var k=b.dot(b);g=b.dot(c);var l=d*k-e*e;h=h||new THREE.Vector3;if(0==l)return h.set(-2,-1,-1);l=1/l;k=(k*f-e*g)*l;d=(d*g-e*f)*l;return h.set(1-k-d,d,k)}}();
-THREE.Triangle.containsPoint=function(){var a=new THREE.Vector3;return function(b,c,d,e){b=THREE.Triangle.barycoordFromPoint(b,c,d,e,a);return 0<=b.x&&0<=b.y&&1>=b.x+b.y}}();
-THREE.Triangle.prototype={constructor:THREE.Triangle,set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},area:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(){a.subVectors(this.c,this.b);b.subVectors(this.a,this.b);return 0.5*a.cross(b).length()}}(),midpoint:function(a){return(a||
-new THREE.Vector3).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(a){return THREE.Triangle.normal(this.a,this.b,this.c,a)},plane:function(a){return(a||new THREE.Plane).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(a,b){return THREE.Triangle.barycoordFromPoint(a,this.a,this.b,this.c,b)},containsPoint:function(a){return THREE.Triangle.containsPoint(a,this.a,this.b,this.c)},equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)},
-clone:function(){return(new THREE.Triangle).copy(this)}};THREE.Vertex=function(a){console.warn("THREE.Vertex has been DEPRECATED. Use THREE.Vector3 instead.");return a};THREE.Clock=function(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1};
-THREE.Clock.prototype={constructor:THREE.Clock,start:function(){this.oldTime=this.startTime=void 0!==self.performance&&void 0!==self.performance.now?self.performance.now():Date.now();this.running=!0},stop:function(){this.getElapsedTime();this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;this.autoStart&&!this.running&&this.start();if(this.running){var b=void 0!==self.performance&&void 0!==self.performance.now?self.performance.now():Date.now(),
-a=0.001*(b-this.oldTime);this.oldTime=b;this.elapsedTime+=a}return a}};THREE.EventDispatcher=function(){};
-THREE.EventDispatcher.prototype={constructor:THREE.EventDispatcher,apply:function(a){a.addEventListener=THREE.EventDispatcher.prototype.addEventListener;a.hasEventListener=THREE.EventDispatcher.prototype.hasEventListener;a.removeEventListener=THREE.EventDispatcher.prototype.removeEventListener;a.dispatchEvent=THREE.EventDispatcher.prototype.dispatchEvent},addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&&
-c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)?!0:!1},removeEventListener:function(a,b){if(void 0!==this._listeners){var c=this._listeners[a];if(void 0!==c){var d=c.indexOf(b);-1!==d&&c.splice(d,1)}}},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;for(var c=[],d=b.length,e=0;e<d;e++)c[e]=b[e];for(e=0;e<d;e++)c[e].call(this,a)}}}};(function(a){a.Raycaster=function(b,c,d,e){this.ray=new a.Ray(b,c);this.near=d||0;this.far=e||Infinity};var b=new a.Sphere,c=new a.Ray;new a.Plane;new a.Vector3;var d=new a.Vector3,e=new a.Matrix4,f=function(a,b){return a.distance-b.distance},g=new a.Vector3,h=new a.Vector3,k=new a.Vector3,l=function(f,n,s){if(f instanceof a.Sprite){d.setFromMatrixPosition(f.matrixWorld);var t=n.ray.distanceToPoint(d);if(t>f.scale.x)return s;s.push({distance:t,point:f.position,face:null,object:f})}else if(f instanceof
-a.LOD)d.setFromMatrixPosition(f.matrixWorld),t=n.ray.origin.distanceTo(d),l(f.getObjectForDistance(t),n,s);else if(f instanceof a.Mesh){var r=f.geometry;null===r.boundingSphere&&r.computeBoundingSphere();b.copy(r.boundingSphere);b.applyMatrix4(f.matrixWorld);if(!1===n.ray.isIntersectionSphere(b))return s;e.getInverse(f.matrixWorld);c.copy(n.ray).applyMatrix4(e);if(null!==r.boundingBox&&!1===c.isIntersectionBox(r.boundingBox))return s;if(r instanceof a.BufferGeometry){var v=f.material;if(void 0===
-v)return s;var w=r.attributes,u,y,L=n.precision;if(void 0!==w.index){var x=w.index.array,N=w.position.array,J=r.offsets;0===J.length&&(J=[{start:0,count:N.length,index:0}]);for(var B=0,K=J.length;B<K;++B)for(var w=J[B].start,A=J[B].index,r=w,G=w+J[B].count;r<G;r+=3){w=A+x[r];u=A+x[r+1];y=A+x[r+2];g.set(N[3*w],N[3*w+1],N[3*w+2]);h.set(N[3*u],N[3*u+1],N[3*u+2]);k.set(N[3*y],N[3*y+1],N[3*y+2]);var D=v.side===a.BackSide?c.intersectTriangle(k,h,g,!0):c.intersectTriangle(g,h,k,v.side!==a.DoubleSide);null!==
-D&&(D.applyMatrix4(f.matrixWorld),t=n.ray.origin.distanceTo(D),t<L||t<n.near||t>n.far||s.push({distance:t,point:D,indices:[w,u,y],face:null,faceIndex:null,object:f}))}}else for(N=w.position.array,r=0,G=w.position.array.length;r<G;r+=3)w=r,u=r+1,y=r+2,g.set(N[3*w],N[3*w+1],N[3*w+2]),h.set(N[3*u],N[3*u+1],N[3*u+2]),k.set(N[3*y],N[3*y+1],N[3*y+2]),D=v.side===a.BackSide?c.intersectTriangle(k,h,g,!0):c.intersectTriangle(g,h,k,v.side!==a.DoubleSide),null!==D&&(D.applyMatrix4(f.matrixWorld),t=n.ray.origin.distanceTo(D),
-t<L||t<n.near||t>n.far||s.push({distance:t,point:D,indices:[w,u,y],face:null,faceIndex:null,object:f}))}else if(r instanceof a.Geometry)for(N=f.material instanceof a.MeshFaceMaterial,J=!0===N?f.material.materials:null,L=n.precision,x=r.vertices,B=0,K=r.faces.length;B<K;B++)if(A=r.faces[B],v=!0===N?J[A.materialIndex]:f.material,void 0!==v){w=x[A.a];u=x[A.b];y=x[A.c];if(!0===v.morphTargets){t=r.morphTargets;D=f.morphTargetInfluences;g.set(0,0,0);h.set(0,0,0);k.set(0,0,0);for(var G=0,C=t.length;G<C;G++){var F=
-D[G];if(0!==F){var z=t[G].vertices;g.x+=(z[A.a].x-w.x)*F;g.y+=(z[A.a].y-w.y)*F;g.z+=(z[A.a].z-w.z)*F;h.x+=(z[A.b].x-u.x)*F;h.y+=(z[A.b].y-u.y)*F;h.z+=(z[A.b].z-u.z)*F;k.x+=(z[A.c].x-y.x)*F;k.y+=(z[A.c].y-y.y)*F;k.z+=(z[A.c].z-y.z)*F}}g.add(w);h.add(u);k.add(y);w=g;u=h;y=k}D=v.side===a.BackSide?c.intersectTriangle(y,u,w,!0):c.intersectTriangle(w,u,y,v.side!==a.DoubleSide);null!==D&&(D.applyMatrix4(f.matrixWorld),t=n.ray.origin.distanceTo(D),t<L||t<n.near||t>n.far||s.push({distance:t,point:D,face:A,
-faceIndex:B,object:f}))}}else if(f instanceof a.Line){L=n.linePrecision;v=L*L;r=f.geometry;null===r.boundingSphere&&r.computeBoundingSphere();b.copy(r.boundingSphere);b.applyMatrix4(f.matrixWorld);if(!1===n.ray.isIntersectionSphere(b))return s;e.getInverse(f.matrixWorld);c.copy(n.ray).applyMatrix4(e);if(r instanceof a.Geometry)for(x=r.vertices,L=x.length,w=new a.Vector3,u=new a.Vector3,y=f.type===a.LineStrip?1:2,r=0;r<L-1;r+=y)c.distanceSqToSegment(x[r],x[r+1],u,w)>v||(t=c.origin.distanceTo(u),t<
-n.near||t>n.far||s.push({distance:t,point:w.clone().applyMatrix4(f.matrixWorld),face:null,faceIndex:null,object:f}))}},n=function(a,b,c){a=a.getDescendants();for(var d=0,e=a.length;d<e;d++)l(a[d],b,c)};a.Raycaster.prototype.precision=1E-4;a.Raycaster.prototype.linePrecision=1;a.Raycaster.prototype.set=function(a,b){this.ray.set(a,b)};a.Raycaster.prototype.intersectObject=function(a,b){var c=[];!0===b&&n(a,this,c);l(a,this,c);c.sort(f);return c};a.Raycaster.prototype.intersectObjects=function(a,b){for(var c=
-[],d=0,e=a.length;d<e;d++)l(a[d],this,c),!0===b&&n(a[d],this,c);c.sort(f);return c}})(THREE);THREE.Object3D=function(){this.id=THREE.Object3DIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.parent=void 0;this.children=[];this.up=new THREE.Vector3(0,1,0);this.position=new THREE.Vector3;var a=this;Object.defineProperties(this,{rotation:{enumerable:!0,value:(new THREE.Euler).onChange(function(){a.quaternion.setFromEuler(a.rotation,!1)})},quaternion:{enumerable:!0,value:(new THREE.Quaternion).onChange(function(){a.rotation.setFromQuaternion(a.quaternion,void 0,!1)})},scale:{enumerable:!0,
-value:new THREE.Vector3(1,1,1)}});this.renderDepth=null;this.rotationAutoUpdate=!0;this.matrix=new THREE.Matrix4;this.matrixWorld=new THREE.Matrix4;this.matrixAutoUpdate=!0;this.matrixWorldNeedsUpdate=!1;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.userData={}};
-THREE.Object3D.prototype={constructor:THREE.Object3D,get eulerOrder(){console.warn("DEPRECATED: Object3D's .eulerOrder has been moved to Object3D's .rotation.order.");return this.rotation.order},set eulerOrder(a){console.warn("DEPRECATED: Object3D's .eulerOrder has been moved to Object3D's .rotation.order.");this.rotation.order=a},get useQuaternion(){console.warn("DEPRECATED: Object3D's .useQuaternion has been removed. The library now uses quaternions by default.")},set useQuaternion(a){console.warn("DEPRECATED: Object3D's .useQuaternion has been removed. The library now uses quaternions by default.")},
-applyMatrix:function(a){this.matrix.multiplyMatrices(a,this.matrix);this.matrix.decompose(this.position,this.quaternion,this.scale)},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(){var a=new THREE.Quaternion;return function(b,c){a.setFromAxisAngle(b,
-c);this.quaternion.multiply(a);return this}}(),rotateX:function(){var a=new THREE.Vector3(1,0,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateY:function(){var a=new THREE.Vector3(0,1,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateZ:function(){var a=new THREE.Vector3(0,0,1);return function(b){return this.rotateOnAxis(a,b)}}(),translateOnAxis:function(){var a=new THREE.Vector3;return function(b,c){a.copy(b);a.applyQuaternion(this.quaternion);this.position.add(a.multiplyScalar(c));
-return this}}(),translate:function(a,b){console.warn("DEPRECATED: Object3D's .translate() has been removed. Use .translateOnAxis( axis, distance ) instead. Note args have been changed.");return this.translateOnAxis(b,a)},translateX:function(){var a=new THREE.Vector3(1,0,0);return function(b){return this.translateOnAxis(a,b)}}(),translateY:function(){var a=new THREE.Vector3(0,1,0);return function(b){return this.translateOnAxis(a,b)}}(),translateZ:function(){var a=new THREE.Vector3(0,0,1);return function(b){return this.translateOnAxis(a,
-b)}}(),localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var a=new THREE.Matrix4;return function(b){return b.applyMatrix4(a.getInverse(this.matrixWorld))}}(),lookAt:function(){var a=new THREE.Matrix4;return function(b){a.lookAt(b,this.position,this.up);this.quaternion.setFromRotationMatrix(a)}}(),add:function(a){if(a===this)console.warn("THREE.Object3D.add: An object can't be added as a child of itself.");else if(a instanceof THREE.Object3D){void 0!==a.parent&&
-a.parent.remove(a);a.parent=this;a.dispatchEvent({type:"added"});this.children.push(a);for(var b=this;void 0!==b.parent;)b=b.parent;void 0!==b&&b instanceof THREE.Scene&&b.__addObject(a)}},remove:function(a){var b=this.children.indexOf(a);if(-1!==b){a.parent=void 0;a.dispatchEvent({type:"removed"});this.children.splice(b,1);for(b=this;void 0!==b.parent;)b=b.parent;void 0!==b&&b instanceof THREE.Scene&&b.__removeObject(a)}},traverse:function(a){a(this);for(var b=0,c=this.children.length;b<c;b++)this.children[b].traverse(a)},
-getObjectById:function(a,b){for(var c=0,d=this.children.length;c<d;c++){var e=this.children[c];if(e.id===a||!0===b&&(e=e.getObjectById(a,b),void 0!==e))return e}},getObjectByName:function(a,b){for(var c=0,d=this.children.length;c<d;c++){var e=this.children[c];if(e.name===a||!0===b&&(e=e.getObjectByName(a,b),void 0!==e))return e}},getChildByName:function(a,b){console.warn("DEPRECATED: Object3D's .getChildByName() has been renamed to .getObjectByName().");return this.getObjectByName(a,b)},getDescendants:function(a){void 0===
-a&&(a=[]);Array.prototype.push.apply(a,this.children);for(var b=0,c=this.children.length;b<c;b++)this.children[b].getDescendants(a);return a},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(a){!0===this.matrixAutoUpdate&&this.updateMatrix();if(!0===this.matrixWorldNeedsUpdate||!0===a)void 0===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),
-this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=0,c=this.children.length;b<c;b++)this.children[b].updateMatrixWorld(a)},clone:function(a,b){void 0===a&&(a=new THREE.Object3D);void 0===b&&(b=!0);a.name=this.name;a.up.copy(this.up);a.position.copy(this.position);a.quaternion.copy(this.quaternion);a.scale.copy(this.scale);a.renderDepth=this.renderDepth;a.rotationAutoUpdate=this.rotationAutoUpdate;a.matrix.copy(this.matrix);a.matrixWorld.copy(this.matrixWorld);a.matrixAutoUpdate=this.matrixAutoUpdate;a.matrixWorldNeedsUpdate=
-this.matrixWorldNeedsUpdate;a.visible=this.visible;a.castShadow=this.castShadow;a.receiveShadow=this.receiveShadow;a.frustumCulled=this.frustumCulled;a.userData=JSON.parse(JSON.stringify(this.userData));if(!0===b)for(var c=0;c<this.children.length;c++)a.add(this.children[c].clone());return a}};THREE.EventDispatcher.prototype.apply(THREE.Object3D.prototype);THREE.Object3DIdCount=0;THREE.Projector=function(){function a(){if(n===p){var a=new THREE.RenderableVertex;q.push(a);p++;n++;return a}return q[n++]}function b(){if(t===v){var a=new THREE.RenderableFace;r.push(a);v++;t++;return a}return r[t++]}function c(){if(u===L){var a=new THREE.RenderableLine;y.push(a);L++;u++;return a}return y[u++]}function d(a,b){return a.z!==b.z?b.z-a.z:a.id!==b.id?a.id-b.id:0}function e(a,b){var c=0,d=1,e=a.z+a.w,f=b.z+b.w,g=-a.z+a.w,h=-b.z+b.w;if(0<=e&&0<=f&&0<=g&&0<=h)return!0;if(0>e&&0>f||0>g&&
-0>h)return!1;0>e?c=Math.max(c,e/(e-f)):0>f&&(d=Math.min(d,e/(e-f)));0>g?c=Math.max(c,g/(g-h)):0>h&&(d=Math.min(d,g/(g-h)));if(d<c)return!1;a.lerp(b,c);b.lerp(a,1-d);return!0}var f,g,h=[],k=0,l,n,q=[],p=0,s,t,r=[],v=0,w,u,y=[],L=0,x,N,J=[],B=0,K={objects:[],lights:[],elements:[]},A=new THREE.Vector3,G=new THREE.Vector3,D=new THREE.Vector3,C=new THREE.Vector3,F=new THREE.Vector4,z=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),H=new THREE.Box3,E=Array(3),Q=new THREE.Matrix4,Y=
-new THREE.Matrix4,U,la=new THREE.Matrix4,W=new THREE.Matrix3,R=new THREE.Frustum,I=new THREE.Vector4,da=new THREE.Vector4;this.projectVector=function(a,b){b.matrixWorldInverse.getInverse(b.matrixWorld);Y.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);return a.applyProjection(Y)};this.unprojectVector=function(){var a=new THREE.Matrix4;return function(b,c){a.getInverse(c.projectionMatrix);Y.multiplyMatrices(c.matrixWorld,a);return b.applyProjection(Y)}}();this.pickingRay=function(a,b){a.z=
--1;var c=new THREE.Vector3(a.x,a.y,1);this.unprojectVector(a,b);this.unprojectVector(c,b);c.sub(a).normalize();return new THREE.Raycaster(a,c)};var V=function(a){if(!1!==a.visible){if(a instanceof THREE.Light)K.lights.push(a);else if(a instanceof THREE.Mesh||a instanceof THREE.Line||a instanceof THREE.Sprite)if(!1===a.frustumCulled||!0===R.intersectsObject(a)){if(g===k){var b=new THREE.RenderableObject;h.push(b);k++;g++;f=b}else f=h[g++];f.id=a.id;f.object=a;null!==a.renderDepth?f.z=a.renderDepth:
-(C.setFromMatrixPosition(a.matrixWorld),C.applyProjection(Y),f.z=C.z);K.objects.push(f)}for(var b=0,c=a.children.length;b<c;b++)V(a.children[b])}},X=new function(){var d=[],e=[],f=null,g=null,h=new THREE.Matrix3,k=function(a){var b=a.positionWorld,c=a.positionScreen;b.copy(a.position).applyMatrix4(U);c.copy(b).applyMatrix4(Y);b=1/c.w;c.x*=b;c.y*=b;c.z*=b;a.visible=-1<=c.x&&1>=c.x&&-1<=c.y&&1>=c.y&&-1<=c.z&&1>=c.z},n=function(a,b,c){if(!0===a.visible||!0===b.visible||!0===c.visible)return!0;E[0]=a.positionScreen;
-E[1]=b.positionScreen;E[2]=c.positionScreen;return z.isIntersectionBox(H.setFromPoints(E))},r=function(a,b,c){return 0>(c.positionScreen.x-a.positionScreen.x)*(b.positionScreen.y-a.positionScreen.y)-(c.positionScreen.y-a.positionScreen.y)*(b.positionScreen.x-a.positionScreen.x)};return{setObject:function(a){f=a;g=f.material;h.getNormalMatrix(f.matrixWorld);d.length=0;e.length=0},projectVertex:k,checkTriangleVisibility:n,checkBackfaceCulling:r,pushVertex:function(b,c,d){l=a();l.position.set(b,c,d);
-k(l)},pushNormal:function(a,b,c){d.push(a,b,c)},pushUv:function(a,b){e.push(a,b)},pushLine:function(a,b){var d=q[a],e=q[b];w=c();w.id=f.id;w.v1.copy(d);w.v2.copy(e);w.z=(d.positionScreen.z+e.positionScreen.z)/2;w.material=f.material;K.elements.push(w)},pushTriangle:function(a,c,k){var l=q[a],p=q[c],t=q[k];if(!1!==n(l,p,t)&&(g.side===THREE.DoubleSide||!0===r(l,p,t))){s=b();s.id=f.id;s.v1.copy(l);s.v2.copy(p);s.v3.copy(t);s.z=(l.positionScreen.z+p.positionScreen.z+t.positionScreen.z)/3;for(l=0;3>l;l++)p=
-3*arguments[l],t=s.vertexNormalsModel[l],t.set(d[p],d[p+1],d[p+2]),t.applyMatrix3(h).normalize(),p=2*arguments[l],s.uvs[l].set(e[p],e[p+1]);s.vertexNormalsLength=3;s.material=f.material;K.elements.push(s)}}}};this.projectScene=function(f,h,k,l){var r,p,v,y,L,C,z,E;N=u=t=0;K.elements.length=0;!0===f.autoUpdate&&f.updateMatrixWorld();void 0===h.parent&&h.updateMatrixWorld();Q.copy(h.matrixWorldInverse.getInverse(h.matrixWorld));Y.multiplyMatrices(h.projectionMatrix,Q);R.setFromMatrix(Y);g=0;K.objects.length=
-0;K.lights.length=0;V(f);!0===k&&K.objects.sort(d);f=0;for(k=K.objects.length;f<k;f++)if(r=K.objects[f].object,p=r.geometry,X.setObject(r),U=r.matrixWorld,n=0,r instanceof THREE.Mesh)if(p instanceof THREE.BufferGeometry){if(C=p.attributes,r=p.offsets,void 0!==C.position){z=C.position.array;p=0;for(y=z.length;p<y;p+=3)X.pushVertex(z[p],z[p+1],z[p+2]);if(void 0!==C.normal)for(E=C.normal.array,p=0,y=E.length;p<y;p+=3)X.pushNormal(E[p],E[p+1],E[p+2]);if(void 0!==C.uv)for(E=C.uv.array,p=0,y=E.length;p<
-y;p+=2)X.pushUv(E[p],E[p+1]);if(void 0!==C.index)if(C=C.index.array,0<r.length)for(f=0;f<r.length;f++)for(y=r[f],z=y.index,p=y.start,y=y.start+y.count;p<y;p+=3)X.pushTriangle(C[p]+z,C[p+1]+z,C[p+2]+z);else for(p=0,y=C.length;p<y;p+=3)X.pushTriangle(C[p],C[p+1],C[p+2]);else for(p=0,y=z.length/3;p<y;p+=3)X.pushTriangle(p,p+1,p+2)}}else{if(p instanceof THREE.Geometry){v=p.vertices;y=p.faces;C=p.faceVertexUvs[0];W.getNormalMatrix(U);z=r.material instanceof THREE.MeshFaceMaterial;E=!0===z?r.material:null;
-for(var H=0,Fa=v.length;H<Fa;H++){var ia=v[H];X.pushVertex(ia.x,ia.y,ia.z)}H=0;for(Fa=y.length;H<Fa;H++){v=y[H];var ma=!0===z?E.materials[v.materialIndex]:r.material;if(void 0!==ma){var ya=ma.side,ia=q[v.a],Z=q[v.b],qa=q[v.c];if(!0===ma.morphTargets){L=p.morphTargets;var ua=r.morphTargetInfluences,Ca=ia.position,va=Z.position,Da=qa.position;A.set(0,0,0);G.set(0,0,0);D.set(0,0,0);for(var Ja=0,ja=L.length;Ja<ja;Ja++){var ra=ua[Ja];if(0!==ra){var Ka=L[Ja].vertices;A.x+=(Ka[v.a].x-Ca.x)*ra;A.y+=(Ka[v.a].y-
-Ca.y)*ra;A.z+=(Ka[v.a].z-Ca.z)*ra;G.x+=(Ka[v.b].x-va.x)*ra;G.y+=(Ka[v.b].y-va.y)*ra;G.z+=(Ka[v.b].z-va.z)*ra;D.x+=(Ka[v.c].x-Da.x)*ra;D.y+=(Ka[v.c].y-Da.y)*ra;D.z+=(Ka[v.c].z-Da.z)*ra}}ia.position.add(A);Z.position.add(G);qa.position.add(D);X.projectVertex(ia);X.projectVertex(Z);X.projectVertex(qa)}if(!1!==X.checkTriangleVisibility(ia,Z,qa)){ua=X.checkBackfaceCulling(ia,Z,qa);if(ya!==THREE.DoubleSide){if(ya===THREE.FrontSide&&!1===ua)continue;if(ya===THREE.BackSide&&!0===ua)continue}s=b();s.id=r.id;
-s.v1.copy(ia);s.v2.copy(Z);s.v3.copy(qa);s.normalModel.copy(v.normal);!1!==ua||ya!==THREE.BackSide&&ya!==THREE.DoubleSide||s.normalModel.negate();s.normalModel.applyMatrix3(W).normalize();L=v.vertexNormals;Ca=0;for(va=Math.min(L.length,3);Ca<va;Ca++)Da=s.vertexNormalsModel[Ca],Da.copy(L[Ca]),!1!==ua||ya!==THREE.BackSide&&ya!==THREE.DoubleSide||Da.negate(),Da.applyMatrix3(W).normalize();s.vertexNormalsLength=L.length;ya=C[H];if(void 0!==ya)for(L=0;3>L;L++)s.uvs[L].copy(ya[L]);s.color=v.color;s.material=
-ma;s.z=(ia.positionScreen.z+Z.positionScreen.z+qa.positionScreen.z)/3;K.elements.push(s)}}}}}else if(r instanceof THREE.Line)if(p instanceof THREE.BufferGeometry){if(C=p.attributes,void 0!==C.position){z=C.position.array;p=0;for(y=z.length;p<y;p+=3)X.pushVertex(z[p],z[p+1],z[p+2]);if(void 0!==C.index)for(C=C.index.array,p=0,y=C.length;p<y;p+=2)X.pushLine(C[p],C[p+1]);else for(p=0,y=z.length/3-1;p<y;p++)X.pushLine(p,p+1)}}else{if(p instanceof THREE.Geometry&&(la.multiplyMatrices(Y,U),v=r.geometry.vertices,
-0!==v.length))for(ia=a(),ia.positionScreen.copy(v[0]).applyMatrix4(la),p=r.type===THREE.LinePieces?2:1,H=1,Fa=v.length;H<Fa;H++)ia=a(),ia.positionScreen.copy(v[H]).applyMatrix4(la),0<(H+1)%p||(Z=q[n-2],I.copy(ia.positionScreen),da.copy(Z.positionScreen),!0===e(I,da)&&(I.multiplyScalar(1/I.w),da.multiplyScalar(1/da.w),w=c(),w.id=r.id,w.v1.positionScreen.copy(I),w.v2.positionScreen.copy(da),w.z=Math.max(I.z,da.z),w.material=r.material,r.material.vertexColors===THREE.VertexColors&&(w.vertexColors[0].copy(r.geometry.colors[H]),
-w.vertexColors[1].copy(r.geometry.colors[H-1])),K.elements.push(w)))}else r instanceof THREE.Sprite&&(F.set(U.elements[12],U.elements[13],U.elements[14],1),F.applyMatrix4(Y),p=1/F.w,F.z*=p,-1<=F.z&&1>=F.z&&(N===B?(y=new THREE.RenderableSprite,J.push(y),B++,N++,x=y):x=J[N++],x.id=r.id,x.x=F.x*p,x.y=F.y*p,x.z=F.z,x.object=r,x.rotation=r.rotation,x.scale.x=r.scale.x*Math.abs(x.x-(F.x+h.projectionMatrix.elements[0])/(F.w+h.projectionMatrix.elements[12])),x.scale.y=r.scale.y*Math.abs(x.y-(F.y+h.projectionMatrix.elements[5])/
-(F.w+h.projectionMatrix.elements[13])),x.material=r.material,K.elements.push(x)));!0===l&&K.elements.sort(d);return K}};THREE.Face3=function(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.color=e instanceof THREE.Color?e:new THREE.Color;this.vertexColors=e instanceof Array?e:[];this.vertexTangents=[];this.materialIndex=void 0!==f?f:0};
-THREE.Face3.prototype={constructor:THREE.Face3,clone:function(){var a=new THREE.Face3(this.a,this.b,this.c);a.normal.copy(this.normal);a.color.copy(this.color);a.materialIndex=this.materialIndex;var b,c;b=0;for(c=this.vertexNormals.length;b<c;b++)a.vertexNormals[b]=this.vertexNormals[b].clone();b=0;for(c=this.vertexColors.length;b<c;b++)a.vertexColors[b]=this.vertexColors[b].clone();b=0;for(c=this.vertexTangents.length;b<c;b++)a.vertexTangents[b]=this.vertexTangents[b].clone();return a}};THREE.Face4=function(a,b,c,d,e,f,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new THREE.Face3(a,b,c,e,f,g)};THREE.BufferAttribute=function(){};
-THREE.BufferAttribute.prototype={constructor:THREE.BufferAttribute,get length(){return this.array.length},set:function(a){this.array.set(a)},setX:function(a,b){this.array[a*this.itemSize]=b},setY:function(a,b){this.array[a*this.itemSize+1]=b},setZ:function(a,b){this.array[a*this.itemSize+2]=b},setXY:function(a,b,c){a*=this.itemSize;this.array[a]=b;this.array[a+1]=c},setXYZ:function(a,b,c,d){a*=this.itemSize;this.array[a]=b;this.array[a+1]=c;this.array[a+2]=d},setXYZW:function(a,b,c,d,e){a*=this.itemSize;
-this.array[a]=b;this.array[a+1]=c;this.array[a+2]=d;this.array[a+3]=e}};THREE.Int8Attribute=function(a,b){this.array=new Int8Array(a*b);this.itemSize=b};THREE.Int8Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Uint8Attribute=function(a,b){this.array=new Uint8Array(a*b);this.itemSize=b};THREE.Uint8Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Uint8ClampedAttribute=function(a,b){this.array=new Uint8ClampedArray(a*b);this.itemSize=b};
-THREE.Uint8ClampedAttribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Int16Attribute=function(a,b){this.array=new Int16Array(a*b);this.itemSize=b};THREE.Int16Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Uint16Attribute=function(a,b){this.array=new Uint16Array(a*b);this.itemSize=b};THREE.Uint16Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Int32Attribute=function(a,b){this.array=new Int32Array(a*b);this.itemSize=b};
-THREE.Int32Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Uint32Attribute=function(a,b){this.array=new Uint32Array(a*b);this.itemSize=b};THREE.Uint32Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Float32Attribute=function(a,b){this.array=new Float32Array(a*b);this.itemSize=b};THREE.Float32Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.Float64Attribute=function(a,b){this.array=new Float64Array(a*b);this.itemSize=b};
-THREE.Float64Attribute.prototype=Object.create(THREE.BufferAttribute.prototype);THREE.BufferGeometry=function(){this.id=THREE.GeometryIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.attributes={};this.offsets=this.drawcalls=[];this.boundingSphere=this.boundingBox=null};
-THREE.BufferGeometry.prototype={constructor:THREE.BufferGeometry,addAttribute:function(a,b,c){!1===b instanceof THREE.BufferAttribute?(console.warn("DEPRECATED: BufferGeometry's addAttribute() now expects ( name, attribute )."),this.attributes[a]={array:b,itemSize:c}):this.attributes[a]=b},getAttribute:function(a){return this.attributes[a]},addDrawCall:function(a,b,c){this.drawcalls.push({start:a,count:b,index:void 0!==c?c:0})},applyMatrix:function(a){var b=this.attributes.position;void 0!==b&&(a.applyToVector3Array(b.array),
-b.needsUpdate=!0);b=this.attributes.normal;void 0!==b&&((new THREE.Matrix3).getNormalMatrix(a).applyToVector3Array(b.array),b.needsUpdate=!0)},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.attributes.position.array;if(a){var b=this.boundingBox;3<=a.length&&(b.min.x=b.max.x=a[0],b.min.y=b.max.y=a[1],b.min.z=b.max.z=a[2]);for(var c=3,d=a.length;c<d;c+=3){var e=a[c],f=a[c+1],g=a[c+2];e<b.min.x?b.min.x=e:e>b.max.x&&(b.max.x=e);f<b.min.y?b.min.y=f:
-f>b.max.y&&(b.max.y=f);g<b.min.z?b.min.z=g:g>b.max.z&&(b.max.z=g)}}if(void 0===a||0===a.length)this.boundingBox.min.set(0,0,0),this.boundingBox.max.set(0,0,0)},computeBoundingSphere:function(){var a=new THREE.Box3,b=new THREE.Vector3;return function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var c=this.attributes.position.array;if(c){a.makeEmpty();for(var d=this.boundingSphere.center,e=0,f=c.length;e<f;e+=3)b.set(c[e],c[e+1],c[e+2]),a.addPoint(b);a.center(d);for(var g=0,
-e=0,f=c.length;e<f;e+=3)b.set(c[e],c[e+1],c[e+2]),g=Math.max(g,d.distanceToSquared(b));this.boundingSphere.radius=Math.sqrt(g)}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){if(this.attributes.position){var a,b,c,d;a=this.attributes.position.array.length;if(void 0===this.attributes.normal)this.attributes.normal={itemSize:3,array:new Float32Array(a)};else for(a=0,b=this.attributes.normal.array.length;a<b;a++)this.attributes.normal.array[a]=0;var e=this.attributes.position.array,
-f=this.attributes.normal.array,g,h,k,l,n,q,p=new THREE.Vector3,s=new THREE.Vector3,t=new THREE.Vector3,r=new THREE.Vector3,v=new THREE.Vector3;if(this.attributes.index){var w=this.attributes.index.array,u=0<this.offsets.length?this.offsets:[{start:0,count:w.length,index:0}];c=0;for(d=u.length;c<d;++c){b=u[c].start;g=u[c].count;var y=u[c].index;a=b;for(b+=g;a<b;a+=3)g=y+w[a],h=y+w[a+1],k=y+w[a+2],l=e[3*g],n=e[3*g+1],q=e[3*g+2],p.set(l,n,q),l=e[3*h],n=e[3*h+1],q=e[3*h+2],s.set(l,n,q),l=e[3*k],n=e[3*
-k+1],q=e[3*k+2],t.set(l,n,q),r.subVectors(t,s),v.subVectors(p,s),r.cross(v),f[3*g]+=r.x,f[3*g+1]+=r.y,f[3*g+2]+=r.z,f[3*h]+=r.x,f[3*h+1]+=r.y,f[3*h+2]+=r.z,f[3*k]+=r.x,f[3*k+1]+=r.y,f[3*k+2]+=r.z}}else for(a=0,b=e.length;a<b;a+=9)l=e[a],n=e[a+1],q=e[a+2],p.set(l,n,q),l=e[a+3],n=e[a+4],q=e[a+5],s.set(l,n,q),l=e[a+6],n=e[a+7],q=e[a+8],t.set(l,n,q),r.subVectors(t,s),v.subVectors(p,s),r.cross(v),f[a]=r.x,f[a+1]=r.y,f[a+2]=r.z,f[a+3]=r.x,f[a+4]=r.y,f[a+5]=r.z,f[a+6]=r.x,f[a+7]=r.y,f[a+8]=r.z;this.normalizeNormals();
-this.normalsNeedUpdate=!0}},computeTangents:function(){function a(a,b,c){q=d[3*a];p=d[3*a+1];s=d[3*a+2];t=d[3*b];r=d[3*b+1];v=d[3*b+2];w=d[3*c];u=d[3*c+1];y=d[3*c+2];L=f[2*a];x=f[2*a+1];N=f[2*b];J=f[2*b+1];B=f[2*c];K=f[2*c+1];A=t-q;G=w-q;D=r-p;C=u-p;F=v-s;z=y-s;H=N-L;E=B-L;Q=J-x;Y=K-x;U=1/(H*Y-E*Q);la.set((Y*A-Q*G)*U,(Y*D-Q*C)*U,(Y*F-Q*z)*U);W.set((H*G-E*A)*U,(H*C-E*D)*U,(H*z-E*F)*U);k[a].add(la);k[b].add(la);k[c].add(la);l[a].add(W);l[b].add(W);l[c].add(W)}function b(a){fa.x=e[3*a];fa.y=e[3*a+1];
-fa.z=e[3*a+2];za.copy(fa);Ea=k[a];wa.copy(Ea);wa.sub(fa.multiplyScalar(fa.dot(Ea))).normalize();Ha.crossVectors(za,Ea);Ga=Ha.dot(l[a]);Ia=0>Ga?-1:1;h[4*a]=wa.x;h[4*a+1]=wa.y;h[4*a+2]=wa.z;h[4*a+3]=Ia}if(void 0===this.attributes.index||void 0===this.attributes.position||void 0===this.attributes.normal||void 0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");else{var c=this.attributes.index.array,d=this.attributes.position.array,
-e=this.attributes.normal.array,f=this.attributes.uv.array,g=d.length/3;void 0===this.attributes.tangent&&(this.attributes.tangent={itemSize:4,array:new Float32Array(4*g)});for(var h=this.attributes.tangent.array,k=[],l=[],n=0;n<g;n++)k[n]=new THREE.Vector3,l[n]=new THREE.Vector3;var q,p,s,t,r,v,w,u,y,L,x,N,J,B,K,A,G,D,C,F,z,H,E,Q,Y,U,la=new THREE.Vector3,W=new THREE.Vector3,R,I,da,V,X,P=this.offsets,n=0;for(I=P.length;n<I;++n){R=P[n].start;da=P[n].count;var ga=P[n].index,g=R;for(R+=da;g<R;g+=3)da=
-ga+c[g],V=ga+c[g+1],X=ga+c[g+2],a(da,V,X)}var wa=new THREE.Vector3,Ha=new THREE.Vector3,fa=new THREE.Vector3,za=new THREE.Vector3,Ia,Ea,Ga,n=0;for(I=P.length;n<I;++n)for(R=P[n].start,da=P[n].count,ga=P[n].index,g=R,R+=da;g<R;g+=3)da=ga+c[g],V=ga+c[g+1],X=ga+c[g+2],b(da),b(V),b(X)}},computeOffsets:function(a){var b=a;void 0===a&&(b=65535);Date.now();a=this.attributes.index.array;for(var c=this.attributes.position.array,d=a.length/3,e=new Uint16Array(a.length),f=0,g=0,h=[{start:0,count:0,index:0}],
-k=h[0],l=0,n=0,q=new Int32Array(6),p=new Int32Array(c.length),s=new Int32Array(c.length),t=0;t<c.length;t++)p[t]=-1,s[t]=-1;for(c=0;c<d;c++){for(var r=n=0;3>r;r++)t=a[3*c+r],-1==p[t]?(q[2*r]=t,q[2*r+1]=-1,n++):p[t]<k.index?(q[2*r]=t,q[2*r+1]=-1,l++):(q[2*r]=t,q[2*r+1]=p[t]);if(g+n>k.index+b)for(k={start:f,count:0,index:g},h.push(k),n=0;6>n;n+=2)r=q[n+1],-1<r&&r<k.index&&(q[n+1]=-1);for(n=0;6>n;n+=2)t=q[n],r=q[n+1],-1===r&&(r=g++),p[t]=r,s[r]=t,e[f++]=r-k.index,k.count++}this.reorderBuffers(e,s,g);
-return this.offsets=h},merge:function(){console.log("BufferGeometry.merge(): TODO")},normalizeNormals:function(){for(var a=this.attributes.normal.array,b,c,d,e=0,f=a.length;e<f;e+=3)b=a[e],c=a[e+1],d=a[e+2],b=1/Math.sqrt(b*b+c*c+d*d),a[e]*=b,a[e+1]*=b,a[e+2]*=b},reorderBuffers:function(a,b,c){var d={},e=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],f;for(f in this.attributes)if("index"!=f)for(var g=this.attributes[f].array,h=0,k=e.length;h<
-k;h++){var l=e[h];if(g instanceof l){d[f]=new l(this.attributes[f].itemSize*c);break}}for(e=0;e<c;e++)for(f in g=b[e],this.attributes)if("index"!=f)for(var h=this.attributes[f].array,k=this.attributes[f].itemSize,l=d[f],n=0;n<k;n++)l[e*k+n]=h[g*k+n];this.attributes.index.array=a;for(f in this.attributes)"index"!=f&&(this.attributes[f].array=d[f],this.attributes[f].numItems=this.attributes[f].itemSize*c)},clone:function(){var a=new THREE.BufferGeometry,b=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,
-Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],c;for(c in this.attributes){for(var d=this.attributes[c],e=d.array,f={itemSize:d.itemSize,array:null},d=0,g=b.length;d<g;d++){var h=b[d];if(e instanceof h){f.array=new h(e);break}}a.attributes[c]=f}d=0;for(g=this.offsets.length;d<g;d++)b=this.offsets[d],a.offsets.push({start:b.start,index:b.index,count:b.count});return a},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.BufferGeometry.prototype);THREE.Geometry=function(){this.id=THREE.GeometryIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphColors=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.hasTangents=!1;this.dynamic=!0;this.buffersNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.tangentsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=
-this.elementsNeedUpdate=this.verticesNeedUpdate=!1};
-THREE.Geometry.prototype={constructor:THREE.Geometry,applyMatrix:function(a){for(var b=(new THREE.Matrix3).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.vertexNormals[e].applyMatrix3(b).normalize()}this.boundingBox instanceof THREE.Box3&&this.computeBoundingBox();this.boundingSphere instanceof THREE.Sphere&&this.computeBoundingSphere()},
-computeFaceNormals:function(){for(var a=new THREE.Vector3,b=new THREE.Vector3,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){var b,c,d;d=Array(this.vertices.length);b=0;for(c=this.vertices.length;b<c;b++)d[b]=new THREE.Vector3;if(a){var e,f,g,h=new THREE.Vector3,k=new THREE.Vector3;new THREE.Vector3;new THREE.Vector3;new THREE.Vector3;
-a=0;for(b=this.faces.length;a<b;a++)c=this.faces[a],e=this.vertices[c.a],f=this.vertices[c.b],g=this.vertices[c.c],h.subVectors(g,f),k.subVectors(e,f),h.cross(k),d[c.a].add(h),d[c.b].add(h),d[c.c].add(h)}else for(a=0,b=this.faces.length;a<b;a++)c=this.faces[a],d[c.a].add(c.normal),d[c.b].add(c.normal),d[c.c].add(c.normal);b=0;for(c=this.vertices.length;b<c;b++)d[b].normalize();a=0;for(b=this.faces.length;a<b;a++)c=this.faces[a],c.vertexNormals[0]=d[c.a].clone(),c.vertexNormals[1]=d[c.b].clone(),c.vertexNormals[2]=
-d[c.c].clone()},computeMorphNormals:function(){var a,b,c,d,e;c=0;for(d=this.faces.length;c<d;c++)for(e=this.faces[c],e.__originalFaceNormal?e.__originalFaceNormal.copy(e.normal):e.__originalFaceNormal=e.normal.clone(),e.__originalVertexNormals||(e.__originalVertexNormals=[]),a=0,b=e.vertexNormals.length;a<b;a++)e.__originalVertexNormals[a]?e.__originalVertexNormals[a].copy(e.vertexNormals[a]):e.__originalVertexNormals[a]=e.vertexNormals[a].clone();var f=new THREE.Geometry;f.faces=this.faces;a=0;for(b=
-this.morphTargets.length;a<b;a++){if(!this.morphNormals[a]){this.morphNormals[a]={};this.morphNormals[a].faceNormals=[];this.morphNormals[a].vertexNormals=[];e=this.morphNormals[a].faceNormals;var g=this.morphNormals[a].vertexNormals,h,k;c=0;for(d=this.faces.length;c<d;c++)h=new THREE.Vector3,k={a:new THREE.Vector3,b:new THREE.Vector3,c:new THREE.Vector3},e.push(h),g.push(k)}g=this.morphNormals[a];f.vertices=this.morphTargets[a].vertices;f.computeFaceNormals();f.computeVertexNormals();c=0;for(d=this.faces.length;c<
-d;c++)e=this.faces[c],h=g.faceNormals[c],k=g.vertexNormals[c],h.copy(e.normal),k.a.copy(e.vertexNormals[0]),k.b.copy(e.vertexNormals[1]),k.c.copy(e.vertexNormals[2])}c=0;for(d=this.faces.length;c<d;c++)e=this.faces[c],e.normal=e.__originalFaceNormal,e.vertexNormals=e.__originalVertexNormals},computeTangents:function(){var a,b,c,d,e,f,g,h,k,l,n,q,p,s,t,r,v,w=[],u=[];c=new THREE.Vector3;var y=new THREE.Vector3,L=new THREE.Vector3,x=new THREE.Vector3,N=new THREE.Vector3;a=0;for(b=this.vertices.length;a<
-b;a++)w[a]=new THREE.Vector3,u[a]=new THREE.Vector3;a=0;for(b=this.faces.length;a<b;a++)e=this.faces[a],f=this.faceVertexUvs[0][a],d=e.a,v=e.b,e=e.c,g=this.vertices[d],h=this.vertices[v],k=this.vertices[e],l=f[0],n=f[1],q=f[2],f=h.x-g.x,p=k.x-g.x,s=h.y-g.y,t=k.y-g.y,h=h.z-g.z,g=k.z-g.z,k=n.x-l.x,r=q.x-l.x,n=n.y-l.y,l=q.y-l.y,q=1/(k*l-r*n),c.set((l*f-n*p)*q,(l*s-n*t)*q,(l*h-n*g)*q),y.set((k*p-r*f)*q,(k*t-r*s)*q,(k*g-r*h)*q),w[d].add(c),w[v].add(c),w[e].add(c),u[d].add(y),u[v].add(y),u[e].add(y);y=
-["a","b","c","d"];a=0;for(b=this.faces.length;a<b;a++)for(e=this.faces[a],c=0;c<Math.min(e.vertexNormals.length,3);c++)N.copy(e.vertexNormals[c]),d=e[y[c]],v=w[d],L.copy(v),L.sub(N.multiplyScalar(N.dot(v))).normalize(),x.crossVectors(e.vertexNormals[c],v),d=x.dot(u[d]),d=0>d?-1:1,e.vertexTangents[c]=new THREE.Vector4(L.x,L.y,L.z,d);this.hasTangents=!0},computeLineDistances:function(){for(var a=0,b=this.vertices,c=0,d=b.length;c<d;c++)0<c&&(a+=b[c].distanceTo(b[c-1])),this.lineDistances[c]=a},computeBoundingBox:function(){null===
-this.boundingBox&&(this.boundingBox=new THREE.Box3);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(!1===a instanceof THREE.Geometry)console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a);else{var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,k=a.faces,l=this.faceVertexUvs[0];
-a=a.faceVertexUvs[0];void 0===c&&(c=0);void 0!==b&&(d=(new THREE.Matrix3).getNormalMatrix(b));for(var n=0,q=g.length;n<q;n++){var p=g[n].clone();void 0!==b&&p.applyMatrix4(b);f.push(p)}n=0;for(q=k.length;n<q;n++){var g=k[n],s,t=g.vertexNormals,r=g.vertexColors,p=new THREE.Face3(g.a+e,g.b+e,g.c+e);p.normal.copy(g.normal);void 0!==d&&p.normal.applyMatrix3(d).normalize();b=0;for(f=t.length;b<f;b++)s=t[b].clone(),void 0!==d&&s.applyMatrix3(d).normalize(),p.vertexNormals.push(s);p.color.copy(g.color);
-b=0;for(f=r.length;b<f;b++)s=r[b],p.vertexColors.push(s.clone());p.materialIndex=g.materialIndex+c;h.push(p)}n=0;for(q=a.length;n<q;n++)if(c=a[n],d=[],void 0!==c){b=0;for(f=c.length;b<f;b++)d.push(new THREE.Vector2(c[b].x,c[b].y));l.push(d)}}},mergeVertices:function(){var a={},b=[],c=[],d,e=Math.pow(10,4),f,g;f=0;for(g=this.vertices.length;f<g;f++)d=this.vertices[f],d=Math.round(d.x*e)+"_"+Math.round(d.y*e)+"_"+Math.round(d.z*e),void 0===a[d]?(a[d]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=
-c[a[d]];a=[];f=0;for(g=this.faces.length;f<g;f++)for(e=this.faces[f],e.a=c[e.a],e.b=c[e.b],e.c=c[e.c],e=[e.a,e.b,e.c],d=0;3>d;d++)if(e[d]==e[(d+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(e=a[f],this.faces.splice(e,1),c=0,g=this.faceVertexUvs.length;c<g;c++)this.faceVertexUvs[c].splice(e,1);f=this.vertices.length-b.length;this.vertices=b;return f},makeGroups:function(){var a=0;return function(b,c){var d,e,f,g,h={},k=this.morphTargets.length,l=this.morphNormals.length;this.geometryGroups=
-{};d=0;for(e=this.faces.length;d<e;d++)f=this.faces[d],f=b?f.materialIndex:0,f in h||(h[f]={hash:f,counter:0}),g=h[f].hash+"_"+h[f].counter,g in this.geometryGroups||(this.geometryGroups[g]={faces3:[],materialIndex:f,vertices:0,numMorphTargets:k,numMorphNormals:l}),this.geometryGroups[g].vertices+3>c&&(h[f].counter+=1,g=h[f].hash+"_"+h[f].counter,g in this.geometryGroups||(this.geometryGroups[g]={faces3:[],materialIndex:f,vertices:0,numMorphTargets:k,numMorphNormals:l})),this.geometryGroups[g].faces3.push(d),
-this.geometryGroups[g].vertices+=3;this.geometryGroupsList=[];for(var n in this.geometryGroups)this.geometryGroups[n].id=a++,this.geometryGroupsList.push(this.geometryGroups[n])}}(),clone:function(){for(var a=new THREE.Geometry,b=this.vertices,c=0,d=b.length;c<d;c++)a.vertices.push(b[c].clone());b=this.faces;c=0;for(d=b.length;c<d;c++)a.faces.push(b[c].clone());b=this.faceVertexUvs[0];c=0;for(d=b.length;c<d;c++){for(var e=b[c],f=[],g=0,h=e.length;g<h;g++)f.push(new THREE.Vector2(e[g].x,e[g].y));a.faceVertexUvs[0].push(f)}return a},
-dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.Geometry.prototype);THREE.GeometryIdCount=0;THREE.Camera=function(){THREE.Object3D.call(this);this.matrixWorldInverse=new THREE.Matrix4;this.projectionMatrix=new THREE.Matrix4};THREE.Camera.prototype=Object.create(THREE.Object3D.prototype);THREE.Camera.prototype.lookAt=function(){var a=new THREE.Matrix4;return function(b){a.lookAt(this.position,b,this.up);this.quaternion.setFromRotationMatrix(a)}}();
-THREE.Camera.prototype.clone=function(a){void 0===a&&(a=new THREE.Camera);THREE.Object3D.prototype.clone.call(this,a);a.matrixWorldInverse.copy(this.matrixWorldInverse);a.projectionMatrix.copy(this.projectionMatrix);return a};THREE.OrthographicCamera=function(a,b,c,d,e,f){THREE.Camera.call(this);this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==e?e:0.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()};THREE.OrthographicCamera.prototype=Object.create(THREE.Camera.prototype);THREE.OrthographicCamera.prototype.updateProjectionMatrix=function(){this.projectionMatrix.makeOrthographic(this.left,this.right,this.top,this.bottom,this.near,this.far)};
-THREE.OrthographicCamera.prototype.clone=function(){var a=new THREE.OrthographicCamera;THREE.Camera.prototype.clone.call(this,a);a.left=this.left;a.right=this.right;a.top=this.top;a.bottom=this.bottom;a.near=this.near;a.far=this.far;return a};THREE.PerspectiveCamera=function(a,b,c,d){THREE.Camera.call(this);this.fov=void 0!==a?a:50;this.aspect=void 0!==b?b:1;this.near=void 0!==c?c:0.1;this.far=void 0!==d?d:2E3;this.updateProjectionMatrix()};THREE.PerspectiveCamera.prototype=Object.create(THREE.Camera.prototype);THREE.PerspectiveCamera.prototype.setLens=function(a,b){void 0===b&&(b=24);this.fov=2*THREE.Math.radToDeg(Math.atan(b/(2*a)));this.updateProjectionMatrix()};
-THREE.PerspectiveCamera.prototype.setViewOffset=function(a,b,c,d,e,f){this.fullWidth=a;this.fullHeight=b;this.x=c;this.y=d;this.width=e;this.height=f;this.updateProjectionMatrix()};
-THREE.PerspectiveCamera.prototype.updateProjectionMatrix=function(){if(this.fullWidth){var a=this.fullWidth/this.fullHeight,b=Math.tan(THREE.Math.degToRad(0.5*this.fov))*this.near,c=-b,d=a*c,a=Math.abs(a*b-d),c=Math.abs(b-c);this.projectionMatrix.makeFrustum(d+this.x*a/this.fullWidth,d+(this.x+this.width)*a/this.fullWidth,b-(this.y+this.height)*c/this.fullHeight,b-this.y*c/this.fullHeight,this.near,this.far)}else this.projectionMatrix.makePerspective(this.fov,this.aspect,this.near,this.far)};
-THREE.PerspectiveCamera.prototype.clone=function(){var a=new THREE.PerspectiveCamera;THREE.Camera.prototype.clone.call(this,a);a.fov=this.fov;a.aspect=this.aspect;a.near=this.near;a.far=this.far;return a};THREE.Light=function(a){THREE.Object3D.call(this);this.color=new THREE.Color(a)};THREE.Light.prototype=Object.create(THREE.Object3D.prototype);THREE.Light.prototype.clone=function(a){void 0===a&&(a=new THREE.Light);THREE.Object3D.prototype.clone.call(this,a);a.color.copy(this.color);return a};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=Object.create(THREE.Light.prototype);THREE.AmbientLight.prototype.clone=function(){var a=new THREE.AmbientLight;THREE.Light.prototype.clone.call(this,a);return a};THREE.AreaLight=function(a,b){THREE.Light.call(this,a);this.normal=new THREE.Vector3(0,-1,0);this.right=new THREE.Vector3(1,0,0);this.intensity=void 0!==b?b:1;this.height=this.width=1;this.constantAttenuation=1.5;this.linearAttenuation=0.5;this.quadraticAttenuation=0.1};THREE.AreaLight.prototype=Object.create(THREE.Light.prototype);THREE.DirectionalLight=function(a,b){THREE.Light.call(this,a);this.position.set(0,1,0);this.target=new THREE.Object3D;this.intensity=void 0!==b?b:1;this.onlyShadow=this.castShadow=!1;this.shadowCameraNear=50;this.shadowCameraFar=5E3;this.shadowCameraLeft=-500;this.shadowCameraTop=this.shadowCameraRight=500;this.shadowCameraBottom=-500;this.shadowCameraVisible=!1;this.shadowBias=0;this.shadowDarkness=0.5;this.shadowMapHeight=this.shadowMapWidth=512;this.shadowCascade=!1;this.shadowCascadeOffset=new THREE.Vector3(0,
-0,-1E3);this.shadowCascadeCount=2;this.shadowCascadeBias=[0,0,0];this.shadowCascadeWidth=[512,512,512];this.shadowCascadeHeight=[512,512,512];this.shadowCascadeNearZ=[-1,0.99,0.998];this.shadowCascadeFarZ=[0.99,0.998,1];this.shadowCascadeArray=[];this.shadowMatrix=this.shadowCamera=this.shadowMapSize=this.shadowMap=null};THREE.DirectionalLight.prototype=Object.create(THREE.Light.prototype);
-THREE.DirectionalLight.prototype.clone=function(){var a=new THREE.DirectionalLight;THREE.Light.prototype.clone.call(this,a);a.target=this.target.clone();a.intensity=this.intensity;a.castShadow=this.castShadow;a.onlyShadow=this.onlyShadow;a.shadowCameraNear=this.shadowCameraNear;a.shadowCameraFar=this.shadowCameraFar;a.shadowCameraLeft=this.shadowCameraLeft;a.shadowCameraRight=this.shadowCameraRight;a.shadowCameraTop=this.shadowCameraTop;a.shadowCameraBottom=this.shadowCameraBottom;a.shadowCameraVisible=
-this.shadowCameraVisible;a.shadowBias=this.shadowBias;a.shadowDarkness=this.shadowDarkness;a.shadowMapWidth=this.shadowMapWidth;a.shadowMapHeight=this.shadowMapHeight;a.shadowCascade=this.shadowCascade;a.shadowCascadeOffset.copy(this.shadowCascadeOffset);a.shadowCascadeCount=this.shadowCascadeCount;a.shadowCascadeBias=this.shadowCascadeBias.slice(0);a.shadowCascadeWidth=this.shadowCascadeWidth.slice(0);a.shadowCascadeHeight=this.shadowCascadeHeight.slice(0);a.shadowCascadeNearZ=this.shadowCascadeNearZ.slice(0);
-a.shadowCascadeFarZ=this.shadowCascadeFarZ.slice(0);return a};THREE.HemisphereLight=function(a,b,c){THREE.Light.call(this,a);this.position.set(0,100,0);this.groundColor=new THREE.Color(b);this.intensity=void 0!==c?c:1};THREE.HemisphereLight.prototype=Object.create(THREE.Light.prototype);THREE.HemisphereLight.prototype.clone=function(){var a=new THREE.HemisphereLight;THREE.Light.prototype.clone.call(this,a);a.groundColor.copy(this.groundColor);a.intensity=this.intensity;return a};THREE.PointLight=function(a,b,c){THREE.Light.call(this,a);this.intensity=void 0!==b?b:1;this.distance=void 0!==c?c:0};THREE.PointLight.prototype=Object.create(THREE.Light.prototype);THREE.PointLight.prototype.clone=function(){var a=new THREE.PointLight;THREE.Light.prototype.clone.call(this,a);a.intensity=this.intensity;a.distance=this.distance;return a};THREE.SpotLight=function(a,b,c,d,e){THREE.Light.call(this,a);this.position.set(0,1,0);this.target=new THREE.Object3D;this.intensity=void 0!==b?b:1;this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.exponent=void 0!==e?e:10;this.onlyShadow=this.castShadow=!1;this.shadowCameraNear=50;this.shadowCameraFar=5E3;this.shadowCameraFov=50;this.shadowCameraVisible=!1;this.shadowBias=0;this.shadowDarkness=0.5;this.shadowMapHeight=this.shadowMapWidth=512;this.shadowMatrix=this.shadowCamera=this.shadowMapSize=
-this.shadowMap=null};THREE.SpotLight.prototype=Object.create(THREE.Light.prototype);
-THREE.SpotLight.prototype.clone=function(){var a=new THREE.SpotLight;THREE.Light.prototype.clone.call(this,a);a.target=this.target.clone();a.intensity=this.intensity;a.distance=this.distance;a.angle=this.angle;a.exponent=this.exponent;a.castShadow=this.castShadow;a.onlyShadow=this.onlyShadow;a.shadowCameraNear=this.shadowCameraNear;a.shadowCameraFar=this.shadowCameraFar;a.shadowCameraFov=this.shadowCameraFov;a.shadowCameraVisible=this.shadowCameraVisible;a.shadowBias=this.shadowBias;a.shadowDarkness=
-this.shadowDarkness;a.shadowMapWidth=this.shadowMapWidth;a.shadowMapHeight=this.shadowMapHeight;return a};THREE.Cache=function(){this.files={}};THREE.Cache.prototype={constructor:THREE.Cache,add:function(a,b){this.files[a]=b},get:function(a){return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}};THREE.Loader=function(a){this.statusDomElement=(this.showStatus=a)?THREE.Loader.prototype.addStatusElement():null;this.imageLoader=new THREE.ImageLoader;this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}};
-THREE.Loader.prototype={constructor:THREE.Loader,crossOrigin:void 0,addStatusElement:function(){var a=document.createElement("div");a.style.position="absolute";a.style.right="0px";a.style.top="0px";a.style.fontSize="0.8em";a.style.textAlign="left";a.style.background="rgba(0,0,0,0.25)";a.style.color="#fff";a.style.width="120px";a.style.padding="0.5em 0.5em 0.5em 0.5em";a.style.zIndex=1E3;a.innerHTML="Loading ...";return a},updateProgress:function(a){var b="Loaded ",b=a.total?b+((100*a.loaded/a.total).toFixed(0)+
-"%"):b+((a.loaded/1024).toFixed(2)+" KB");this.statusDomElement.innerHTML=b},extractUrlBase:function(a){a=a.split("/");if(1===a.length)return"./";a.pop();return a.join("/")+"/"},initMaterials:function(a,b){for(var c=[],d=0;d<a.length;++d)c[d]=this.createMaterial(a[d],b);return c},needsTangents:function(a){for(var b=0,c=a.length;b<c;b++)if(a[b]instanceof THREE.ShaderMaterial)return!0;return!1},createMaterial:function(a,b){function c(a){a=Math.log(a)/Math.LN2;return Math.pow(2,Math.round(a))}function d(a,
-d,e,g,h,k,r){var v=/\.dds$/i.test(e),w=b+e;if(v){var u=THREE.ImageUtils.loadCompressedTexture(w);a[d]=u}else u=document.createElement("canvas"),a[d]=new THREE.Texture(u);a[d].sourceFile=e;g&&(a[d].repeat.set(g[0],g[1]),1!==g[0]&&(a[d].wrapS=THREE.RepeatWrapping),1!==g[1]&&(a[d].wrapT=THREE.RepeatWrapping));h&&a[d].offset.set(h[0],h[1]);k&&(e={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping},void 0!==e[k[0]]&&(a[d].wrapS=e[k[0]]),void 0!==e[k[1]]&&(a[d].wrapT=e[k[1]]));r&&(a[d].anisotropy=
-r);v||(u=a[d],f.imageLoader.crossOrigin=f.crossOrigin,f.imageLoader.load(w,function(a){if(!1===THREE.Math.isPowerOfTwo(a.width)||!1===THREE.Math.isPowerOfTwo(a.height)){var b=c(a.width),d=c(a.height);u.image.width=b;u.image.height=d;u.image.getContext("2d").drawImage(a,0,0,b,d)}else u.image=a;u.needsUpdate=!0}))}function e(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]}var f=this,g="MeshLambertMaterial",h={color:15658734,opacity:1,map:null,lightMap:null,normalMap:null,bumpMap:null,wireframe:!1};if(a.shading){var k=
-a.shading.toLowerCase();"phong"===k?g="MeshPhongMaterial":"basic"===k&&(g="MeshBasicMaterial")}void 0!==a.blending&&void 0!==THREE[a.blending]&&(h.blending=THREE[a.blending]);if(void 0!==a.transparent||1>a.opacity)h.transparent=a.transparent;void 0!==a.depthTest&&(h.depthTest=a.depthTest);void 0!==a.depthWrite&&(h.depthWrite=a.depthWrite);void 0!==a.visible&&(h.visible=a.visible);void 0!==a.flipSided&&(h.side=THREE.BackSide);void 0!==a.doubleSided&&(h.side=THREE.DoubleSide);void 0!==a.wireframe&&
-(h.wireframe=a.wireframe);void 0!==a.vertexColors&&("face"===a.vertexColors?h.vertexColors=THREE.FaceColors:a.vertexColors&&(h.vertexColors=THREE.VertexColors));a.colorDiffuse?h.color=e(a.colorDiffuse):a.DbgColor&&(h.color=a.DbgColor);a.colorSpecular&&(h.specular=e(a.colorSpecular));a.colorAmbient&&(h.ambient=e(a.colorAmbient));a.colorEmissive&&(h.emissive=e(a.colorEmissive));a.transparency&&(h.opacity=a.transparency);a.specularCoef&&(h.shininess=a.specularCoef);a.mapDiffuse&&b&&d(h,"map",a.mapDiffuse,
-a.mapDiffuseRepeat,a.mapDiffuseOffset,a.mapDiffuseWrap,a.mapDiffuseAnisotropy);a.mapLight&&b&&d(h,"lightMap",a.mapLight,a.mapLightRepeat,a.mapLightOffset,a.mapLightWrap,a.mapLightAnisotropy);a.mapBump&&b&&d(h,"bumpMap",a.mapBump,a.mapBumpRepeat,a.mapBumpOffset,a.mapBumpWrap,a.mapBumpAnisotropy);a.mapNormal&&b&&d(h,"normalMap",a.mapNormal,a.mapNormalRepeat,a.mapNormalOffset,a.mapNormalWrap,a.mapNormalAnisotropy);a.mapSpecular&&b&&d(h,"specularMap",a.mapSpecular,a.mapSpecularRepeat,a.mapSpecularOffset,
-a.mapSpecularWrap,a.mapSpecularAnisotropy);a.mapBumpScale&&(h.bumpScale=a.mapBumpScale);a.mapNormal?(g=THREE.ShaderLib.normalmap,k=THREE.UniformsUtils.clone(g.uniforms),k.tNormal.value=h.normalMap,a.mapNormalFactor&&k.uNormalScale.value.set(a.mapNormalFactor,a.mapNormalFactor),h.map&&(k.tDiffuse.value=h.map,k.enableDiffuse.value=!0),h.specularMap&&(k.tSpecular.value=h.specularMap,k.enableSpecular.value=!0),h.lightMap&&(k.tAO.value=h.lightMap,k.enableAO.value=!0),k.diffuse.value.setHex(h.color),k.specular.value.setHex(h.specular),
-k.ambient.value.setHex(h.ambient),k.shininess.value=h.shininess,void 0!==h.opacity&&(k.opacity.value=h.opacity),g=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,vertexShader:g.vertexShader,uniforms:k,lights:!0,fog:!0}),h.transparent&&(g.transparent=!0)):g=new THREE[g](h);void 0!==a.DbgName&&(g.name=a.DbgName);return g}};THREE.XHRLoader=function(a){this.cache=new THREE.Cache;this.manager=void 0!==a?a:THREE.DefaultLoadingManager};
-THREE.XHRLoader.prototype={constructor:THREE.XHRLoader,load:function(a,b,c,d){var e=this,f=e.cache.get(a);void 0!==f?b(f):(f=new XMLHttpRequest,void 0!==b&&f.addEventListener("load",function(c){e.cache.add(a,c.target.responseText);b(c.target.responseText);e.manager.itemEnd(a)},!1),void 0!==c&&f.addEventListener("progress",function(a){c(a)},!1),void 0!==d&&f.addEventListener("error",function(a){d(a)},!1),void 0!==this.crossOrigin&&(f.crossOrigin=this.crossOrigin),f.open("GET",a,!0),f.send(null),e.manager.itemStart(a))},
-setCrossOrigin:function(a){this.crossOrigin=a}};THREE.ImageLoader=function(a){this.cache=new THREE.Cache;this.manager=void 0!==a?a:THREE.DefaultLoadingManager};
-THREE.ImageLoader.prototype={constructor:THREE.ImageLoader,load:function(a,b,c,d){var e=this,f=e.cache.get(a);if(void 0!==f)b(f);else return f=document.createElement("img"),void 0!==b&&f.addEventListener("load",function(c){e.cache.add(a,this);b(this);e.manager.itemEnd(a)},!1),void 0!==c&&f.addEventListener("progress",function(a){c(a)},!1),void 0!==d&&f.addEventListener("error",function(a){d(a)},!1),void 0!==this.crossOrigin&&(f.crossOrigin=this.crossOrigin),f.src=a,e.manager.itemStart(a),f},setCrossOrigin:function(a){this.crossOrigin=
-a}};THREE.JSONLoader=function(a){THREE.Loader.call(this,a);this.withCredentials=!1};THREE.JSONLoader.prototype=Object.create(THREE.Loader.prototype);THREE.JSONLoader.prototype.load=function(a,b,c){c=c&&"string"===typeof c?c:this.extractUrlBase(a);this.onLoadStart();this.loadAjaxJSON(this,a,b,c)};
-THREE.JSONLoader.prototype.loadAjaxJSON=function(a,b,c,d,e){var f=new XMLHttpRequest,g=0;f.onreadystatechange=function(){if(f.readyState===f.DONE)if(200===f.status||0===f.status){if(f.responseText){var h=JSON.parse(f.responseText);if(void 0!==h.metadata&&"scene"===h.metadata.type){console.error('THREE.JSONLoader: "'+b+'" seems to be a Scene. Use THREE.SceneLoader instead.');return}h=a.parse(h,d);c(h.geometry,h.materials)}else console.error('THREE.JSONLoader: "'+b+'" seems to be unreachable or the file is empty.');
-a.onLoadComplete()}else console.error("THREE.JSONLoader: Couldn't load \""+b+'" ('+f.status+")");else f.readyState===f.LOADING?e&&(0===g&&(g=f.getResponseHeader("Content-Length")),e({total:g,loaded:f.responseText.length})):f.readyState===f.HEADERS_RECEIVED&&void 0!==e&&(g=f.getResponseHeader("Content-Length"))};f.open("GET",b,!0);f.withCredentials=this.withCredentials;f.send(null)};
-THREE.JSONLoader.prototype.parse=function(a,b){var c=new THREE.Geometry,d=void 0!==a.scale?1/a.scale:1;(function(b){var d,g,h,k,l,n,q,p,s,t,r,v,w,u=a.faces;n=a.vertices;var y=a.normals,L=a.colors,x=0;if(void 0!==a.uvs){for(d=0;d<a.uvs.length;d++)a.uvs[d].length&&x++;for(d=0;d<x;d++)c.faceVertexUvs[d]=[]}k=0;for(l=n.length;k<l;)d=new THREE.Vector3,d.x=n[k++]*b,d.y=n[k++]*b,d.z=n[k++]*b,c.vertices.push(d);k=0;for(l=u.length;k<l;)if(b=u[k++],s=b&1,h=b&2,d=b&8,q=b&16,t=b&32,n=b&64,b&=128,s){s=new THREE.Face3;
-s.a=u[k];s.b=u[k+1];s.c=u[k+3];r=new THREE.Face3;r.a=u[k+1];r.b=u[k+2];r.c=u[k+3];k+=4;h&&(h=u[k++],s.materialIndex=h,r.materialIndex=h);h=c.faces.length;if(d)for(d=0;d<x;d++)for(v=a.uvs[d],c.faceVertexUvs[d][h]=[],c.faceVertexUvs[d][h+1]=[],g=0;4>g;g++)p=u[k++],w=v[2*p],p=v[2*p+1],w=new THREE.Vector2(w,p),2!==g&&c.faceVertexUvs[d][h].push(w),0!==g&&c.faceVertexUvs[d][h+1].push(w);q&&(q=3*u[k++],s.normal.set(y[q++],y[q++],y[q]),r.normal.copy(s.normal));if(t)for(d=0;4>d;d++)q=3*u[k++],t=new THREE.Vector3(y[q++],
-y[q++],y[q]),2!==d&&s.vertexNormals.push(t),0!==d&&r.vertexNormals.push(t);n&&(n=u[k++],n=L[n],s.color.setHex(n),r.color.setHex(n));if(b)for(d=0;4>d;d++)n=u[k++],n=L[n],2!==d&&s.vertexColors.push(new THREE.Color(n)),0!==d&&r.vertexColors.push(new THREE.Color(n));c.faces.push(s);c.faces.push(r)}else{s=new THREE.Face3;s.a=u[k++];s.b=u[k++];s.c=u[k++];h&&(h=u[k++],s.materialIndex=h);h=c.faces.length;if(d)for(d=0;d<x;d++)for(v=a.uvs[d],c.faceVertexUvs[d][h]=[],g=0;3>g;g++)p=u[k++],w=v[2*p],p=v[2*p+1],
-w=new THREE.Vector2(w,p),c.faceVertexUvs[d][h].push(w);q&&(q=3*u[k++],s.normal.set(y[q++],y[q++],y[q]));if(t)for(d=0;3>d;d++)q=3*u[k++],t=new THREE.Vector3(y[q++],y[q++],y[q]),s.vertexNormals.push(t);n&&(n=u[k++],s.color.setHex(L[n]));if(b)for(d=0;3>d;d++)n=u[k++],s.vertexColors.push(new THREE.Color(L[n]));c.faces.push(s)}})(d);(function(){var b=void 0!==a.influencesPerVertex?a.influencesPerVertex:2;if(a.skinWeights)for(var d=0,g=a.skinWeights.length;d<g;d+=b)c.skinWeights.push(new THREE.Vector4(a.skinWeights[d],
-1<b?a.skinWeights[d+1]:0,2<b?a.skinWeights[d+2]:0,3<b?a.skinWeights[d+3]:0));if(a.skinIndices)for(d=0,g=a.skinIndices.length;d<g;d+=b)c.skinIndices.push(new THREE.Vector4(a.skinIndices[d],1<b?a.skinIndices[d+1]:0,2<b?a.skinIndices[d+2]:0,3<b?a.skinIndices[d+3]:0));c.bones=a.bones;c.bones&&0<c.bones.length&&(c.skinWeights.length!==c.skinIndices.length||c.skinIndices.length!==c.vertices.length)&&console.warn("When skinning, number of vertices ("+c.vertices.length+"), skinIndices ("+c.skinIndices.length+
-"), and skinWeights ("+c.skinWeights.length+") should match.");c.animation=a.animation;c.animations=a.animations})();(function(b){if(void 0!==a.morphTargets){var d,g,h,k,l,n;d=0;for(g=a.morphTargets.length;d<g;d++)for(c.morphTargets[d]={},c.morphTargets[d].name=a.morphTargets[d].name,c.morphTargets[d].vertices=[],l=c.morphTargets[d].vertices,n=a.morphTargets[d].vertices,h=0,k=n.length;h<k;h+=3){var q=new THREE.Vector3;q.x=n[h]*b;q.y=n[h+1]*b;q.z=n[h+2]*b;l.push(q)}}if(void 0!==a.morphColors)for(d=
-0,g=a.morphColors.length;d<g;d++)for(c.morphColors[d]={},c.morphColors[d].name=a.morphColors[d].name,c.morphColors[d].colors=[],k=c.morphColors[d].colors,l=a.morphColors[d].colors,b=0,h=l.length;b<h;b+=3)n=new THREE.Color(16755200),n.setRGB(l[b],l[b+1],l[b+2]),k.push(n)})(d);c.computeFaceNormals();c.computeBoundingSphere();if(void 0===a.materials||0===a.materials.length)return{geometry:c};d=this.initMaterials(a.materials,b);this.needsTangents(d)&&c.computeTangents();return{geometry:c,materials:d}};THREE.LoadingManager=function(a,b,c){var d=this,e=0,f=0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){f++};this.itemEnd=function(a){e++;if(void 0!==d.onProgress)d.onProgress(a,e,f);if(e===f&&void 0!==d.onLoad)d.onLoad()}};THREE.DefaultLoadingManager=new THREE.LoadingManager;THREE.BufferGeometryLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager};
-THREE.BufferGeometryLoader.prototype={constructor:THREE.BufferGeometryLoader,load:function(a,b,c,d){var e=this;c=new THREE.XHRLoader;c.setCrossOrigin(this.crossOrigin);c.load(a,function(a){b(e.parse(JSON.parse(a)))})},setCrossOrigin:function(a){this.crossOrigin=a},parse:function(a){var b=new THREE.BufferGeometry,c=a.attributes,d=a.offsets;a=a.boundingSphere;for(var e in c){var f=c[e];b.attributes[e]={itemSize:f.itemSize,array:new self[f.type](f.array)}}void 0!==d&&(b.offsets=JSON.parse(JSON.stringify(d)));
-void 0!==a&&(b.boundingSphere=new THREE.Sphere((new THREE.Vector3).fromArray(void 0!==a.center?a.center:[0,0,0]),a.radius));return b}};THREE.MaterialLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager};
-THREE.MaterialLoader.prototype={constructor:THREE.MaterialLoader,load:function(a,b,c,d){var e=this;c=new THREE.XHRLoader;c.setCrossOrigin(this.crossOrigin);c.load(a,function(a){b(e.parse(JSON.parse(a)))})},setCrossOrigin:function(a){this.crossOrigin=a},parse:function(a){var b=new THREE[a.type];void 0!==a.color&&b.color.setHex(a.color);void 0!==a.ambient&&b.ambient.setHex(a.ambient);void 0!==a.emissive&&b.emissive.setHex(a.emissive);void 0!==a.specular&&b.specular.setHex(a.specular);void 0!==a.shininess&&
-(b.shininess=a.shininess);void 0!==a.vertexColors&&(b.vertexColors=a.vertexColors);void 0!==a.blending&&(b.blending=a.blending);void 0!==a.side&&(b.side=a.side);void 0!==a.opacity&&(b.opacity=a.opacity);void 0!==a.transparent&&(b.transparent=a.transparent);void 0!==a.wireframe&&(b.wireframe=a.wireframe);if(void 0!==a.materials)for(var c=0,d=a.materials.length;c<d;c++)b.materials.push(this.parse(a.materials[c]));return b}};THREE.ObjectLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager};
-THREE.ObjectLoader.prototype={constructor:THREE.ObjectLoader,load:function(a,b,c,d){var e=this;c=new THREE.XHRLoader(e.manager);c.setCrossOrigin(this.crossOrigin);c.load(a,function(a){b(e.parse(JSON.parse(a)))})},setCrossOrigin:function(a){this.crossOrigin=a},parse:function(a){var b=this.parseGeometries(a.geometries),c=this.parseMaterials(a.materials);return this.parseObject(a.object,b,c)},parseGeometries:function(a){var b={};if(void 0!==a)for(var c=new THREE.JSONLoader,d=new THREE.BufferGeometryLoader,
-e=0,f=a.length;e<f;e++){var g,h=a[e];switch(h.type){case "PlaneGeometry":g=new THREE.PlaneGeometry(h.width,h.height,h.widthSegments,h.heightSegments);break;case "BoxGeometry":case "CubeGeometry":g=new THREE.BoxGeometry(h.width,h.height,h.depth,h.widthSegments,h.heightSegments,h.depthSegments);break;case "CircleGeometry":g=new THREE.CircleGeometry(h.radius,h.segments);break;case "CylinderGeometry":g=new THREE.CylinderGeometry(h.radiusTop,h.radiusBottom,h.height,h.radialSegments,h.heightSegments,h.openEnded);
-break;case "SphereGeometry":g=new THREE.SphereGeometry(h.radius,h.widthSegments,h.heightSegments,h.phiStart,h.phiLength,h.thetaStart,h.thetaLength);break;case "IcosahedronGeometry":g=new THREE.IcosahedronGeometry(h.radius,h.detail);break;case "TorusGeometry":g=new THREE.TorusGeometry(h.radius,h.tube,h.radialSegments,h.tubularSegments,h.arc);break;case "TorusKnotGeometry":g=new THREE.TorusKnotGeometry(h.radius,h.tube,h.radialSegments,h.tubularSegments,h.p,h.q,h.heightScale);break;case "BufferGeometry":g=
-d.parse(h.data);break;case "Geometry":g=c.parse(h.data).geometry}g.uuid=h.uuid;void 0!==h.name&&(g.name=h.name);b[h.uuid]=g}return b},parseMaterials:function(a){var b={};if(void 0!==a)for(var c=new THREE.MaterialLoader,d=0,e=a.length;d<e;d++){var f=a[d],g=c.parse(f);g.uuid=f.uuid;void 0!==f.name&&(g.name=f.name);b[f.uuid]=g}return b},parseObject:function(){var a=new THREE.Matrix4;return function(b,c,d){var e;switch(b.type){case "Scene":e=new THREE.Scene;break;case "PerspectiveCamera":e=new THREE.PerspectiveCamera(b.fov,
-b.aspect,b.near,b.far);break;case "OrthographicCamera":e=new THREE.OrthographicCamera(b.left,b.right,b.top,b.bottom,b.near,b.far);break;case "AmbientLight":e=new THREE.AmbientLight(b.color);break;case "DirectionalLight":e=new THREE.DirectionalLight(b.color,b.intensity);break;case "PointLight":e=new THREE.PointLight(b.color,b.intensity,b.distance);break;case "SpotLight":e=new THREE.SpotLight(b.color,b.intensity,b.distance,b.angle,b.exponent);break;case "HemisphereLight":e=new THREE.HemisphereLight(b.color,
-b.groundColor,b.intensity);break;case "Mesh":e=c[b.geometry];var f=d[b.material];void 0===e&&console.error("THREE.ObjectLoader: Undefined geometry "+b.geometry);void 0===f&&console.error("THREE.ObjectLoader: Undefined material "+b.material);e=new THREE.Mesh(e,f);break;case "Sprite":f=d[b.material];void 0===f&&console.error("THREE.ObjectLoader: Undefined material "+b.material);e=new THREE.Sprite(f);break;default:e=new THREE.Object3D}e.uuid=b.uuid;void 0!==b.name&&(e.name=b.name);void 0!==b.matrix?
-(a.fromArray(b.matrix),a.decompose(e.position,e.quaternion,e.scale)):(void 0!==b.position&&e.position.fromArray(b.position),void 0!==b.rotation&&e.rotation.fromArray(b.rotation),void 0!==b.scale&&e.scale.fromArray(b.scale));void 0!==b.visible&&(e.visible=b.visible);void 0!==b.userData&&(e.userData=b.userData);if(void 0!==b.children)for(var g in b.children)e.add(this.parseObject(b.children[g],c,d));return e}}()};THREE.SceneLoader=function(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){};this.callbackSync=function(){};this.callbackProgress=function(){};this.geometryHandlers={};this.hierarchyHandlers={};this.addGeometryHandler("ascii",THREE.JSONLoader)};
-THREE.SceneLoader.prototype={constructor:THREE.SceneLoader,load:function(a,b,c,d){var e=this;c=new THREE.XHRLoader(e.manager);c.setCrossOrigin(this.crossOrigin);c.load(a,function(c){e.parse(JSON.parse(c),b,a)})},setCrossOrigin:function(a){this.crossOrigin=a},addGeometryHandler:function(a,b){this.geometryHandlers[a]={loaderClass:b}},addHierarchyHandler:function(a,b){this.hierarchyHandlers[a]={loaderClass:b}},parse:function(a,b,c){function d(a,b){return"relativeToHTML"==b?a:s+a}function e(){f(B.scene,
-A.objects)}function f(a,b){var c,e,g,h,l,n;for(n in b){var q=B.objects[n],s=b[n];if(void 0===q){if(s.type&&s.type in p.hierarchyHandlers){if(void 0===s.loading){c={type:1,url:1,material:1,position:1,rotation:1,scale:1,visible:1,children:1,userData:1,skin:1,morph:1,mirroredLoop:1,duration:1};var u={},w;for(w in s)w in c||(u[w]=s[w]);r=B.materials[s.material];s.loading=!0;c=p.hierarchyHandlers[s.type].loaderObject;c.options?c.load(d(s.url,A.urlBaseType),k(n,a,r,s)):c.load(d(s.url,A.urlBaseType),k(n,
-a,r,s),u)}}else if(void 0!==s.geometry){if(t=B.geometries[s.geometry]){q=!1;r=B.materials[s.material];q=r instanceof THREE.ShaderMaterial;e=s.position;g=s.rotation;h=s.scale;c=s.matrix;l=s.quaternion;s.material||(r=new THREE.MeshFaceMaterial(B.face_materials[s.geometry]));r instanceof THREE.MeshFaceMaterial&&0===r.materials.length&&(r=new THREE.MeshFaceMaterial(B.face_materials[s.geometry]));if(r instanceof THREE.MeshFaceMaterial)for(u=0;u<r.materials.length;u++)q=q||r.materials[u]instanceof THREE.ShaderMaterial;
-q&&t.computeTangents();s.skin?q=new THREE.SkinnedMesh(t,r):s.morph?(q=new THREE.MorphAnimMesh(t,r),void 0!==s.duration&&(q.duration=s.duration),void 0!==s.time&&(q.time=s.time),void 0!==s.mirroredLoop&&(q.mirroredLoop=s.mirroredLoop),r.morphNormals&&t.computeMorphNormals()):q=new THREE.Mesh(t,r);q.name=n;c?(q.matrixAutoUpdate=!1,q.matrix.set(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15])):(q.position.fromArray(e),l?q.quaternion.fromArray(l):q.rotation.fromArray(g),
-q.scale.fromArray(h));q.visible=s.visible;q.castShadow=s.castShadow;q.receiveShadow=s.receiveShadow;a.add(q);B.objects[n]=q}}else if("AmbientLight"===s.type||"PointLight"===s.type||"DirectionalLight"===s.type||"SpotLight"===s.type||"HemisphereLight"===s.type||"AreaLight"===s.type){u=s.color;c=s.intensity;e=s.distance;g=s.position;h=s.rotation;switch(s.type){case "AmbientLight":y=new THREE.AmbientLight(u);break;case "PointLight":y=new THREE.PointLight(u,c,e);y.position.fromArray(g);break;case "DirectionalLight":y=
-new THREE.DirectionalLight(u,c);y.position.fromArray(s.direction);break;case "SpotLight":y=new THREE.SpotLight(u,c,e,1);y.angle=s.angle;y.position.fromArray(g);y.target.set(g[0],g[1]-e,g[2]);y.target.applyEuler(new THREE.Euler(h[0],h[1],h[2],"XYZ"));break;case "HemisphereLight":y=new THREE.DirectionalLight(u,c,e);y.target.set(g[0],g[1]-e,g[2]);y.target.applyEuler(new THREE.Euler(h[0],h[1],h[2],"XYZ"));break;case "AreaLight":y=new THREE.AreaLight(u,c),y.position.fromArray(g),y.width=s.size,y.height=
-s.size_y}a.add(y);y.name=n;B.lights[n]=y;B.objects[n]=y}else"PerspectiveCamera"===s.type||"OrthographicCamera"===s.type?(e=s.position,g=s.rotation,l=s.quaternion,"PerspectiveCamera"===s.type?v=new THREE.PerspectiveCamera(s.fov,s.aspect,s.near,s.far):"OrthographicCamera"===s.type&&(v=new THREE.OrthographicCamera(s.left,s.right,s.top,s.bottom,s.near,s.far)),v.name=n,v.position.fromArray(e),void 0!==l?v.quaternion.fromArray(l):void 0!==g&&v.rotation.fromArray(g),a.add(v),B.cameras[n]=v,B.objects[n]=
-v):(e=s.position,g=s.rotation,h=s.scale,l=s.quaternion,q=new THREE.Object3D,q.name=n,q.position.fromArray(e),l?q.quaternion.fromArray(l):q.rotation.fromArray(g),q.scale.fromArray(h),q.visible=void 0!==s.visible?s.visible:!1,a.add(q),B.objects[n]=q,B.empties[n]=q);if(q){if(void 0!==s.userData)for(var L in s.userData)q.userData[L]=s.userData[L];if(void 0!==s.groups)for(u=0;u<s.groups.length;u++)c=s.groups[u],void 0===B.groups[c]&&(B.groups[c]=[]),B.groups[c].push(n)}}void 0!==q&&void 0!==s.children&&
-f(q,s.children)}}function g(a,b,c,d,f){var g=f.rotation,h=f.quaternion,k=f.scale;a.position.fromArray(f.position);h?a.quaternion.fromArray(h):a.rotation.fromArray(g);a.scale.fromArray(k);d&&a.traverse(function(a){a.material=d});var l=void 0!==f.visible?f.visible:!0;a.traverse(function(a){a.visible=l});c.add(a);a.name=b;B.objects[b]=a;e()}function h(a){return function(b,c){b.name=a;B.geometries[a]=b;B.face_materials[a]=c;e();L-=1;p.onLoadComplete();n()}}function k(a,b,c,d){return function(e){g(e.content?
-e.content:e.dae?e.scene:e,a,b,c,d);L-=1;p.onLoadComplete();n()}}function l(a){return function(b,c){b.name=a;B.geometries[a]=b;B.face_materials[a]=c}}function n(){p.callbackProgress({totalModels:N,totalTextures:J,loadedModels:N-L,loadedTextures:J-x},B);p.onLoadProgress();if(0===L&&0===x){for(var a=0;a<K.length;a++){var c=K[a],d=B.objects[c.targetName];d?c.object.target=d:(c.object.target=new THREE.Object3D,B.scene.add(c.object.target));c.object.target.userData.targetInverse=c.object}b(B)}}function q(a,
-b){b(a);if(void 0!==a.children)for(var c in a.children)q(a.children[c],b)}var p=this,s=THREE.Loader.prototype.extractUrlBase(c),t,r,v,w,u,y,L,x,N,J,B,K=[],A=a,G;for(G in this.geometryHandlers)a=this.geometryHandlers[G].loaderClass,this.geometryHandlers[G].loaderObject=new a;for(G in this.hierarchyHandlers)a=this.hierarchyHandlers[G].loaderClass,this.hierarchyHandlers[G].loaderObject=new a;x=L=0;B={scene:new THREE.Scene,geometries:{},face_materials:{},materials:{},textures:{},objects:{},cameras:{},
-lights:{},fogs:{},empties:{},groups:{}};A.transform&&(G=A.transform.position,a=A.transform.rotation,c=A.transform.scale,G&&B.scene.position.fromArray(G),a&&B.scene.rotation.fromArray(a),c&&B.scene.scale.fromArray(c),G||a||c)&&(B.scene.updateMatrix(),B.scene.updateMatrixWorld());G=function(a){return function(){x-=a;n();p.onLoadComplete()}};for(var D in A.fogs)a=A.fogs[D],"linear"===a.type?w=new THREE.Fog(0,a.near,a.far):"exp2"===a.type&&(w=new THREE.FogExp2(0,a.density)),a=a.color,w.color.setRGB(a[0],
-a[1],a[2]),B.fogs[D]=w;for(var C in A.geometries)w=A.geometries[C],w.type in this.geometryHandlers&&(L+=1,p.onLoadStart());for(var F in A.objects)q(A.objects[F],function(a){a.type&&a.type in p.hierarchyHandlers&&(L+=1,p.onLoadStart())});N=L;for(C in A.geometries)if(w=A.geometries[C],"cube"===w.type)t=new THREE.BoxGeometry(w.width,w.height,w.depth,w.widthSegments,w.heightSegments,w.depthSegments),t.name=C,B.geometries[C]=t;else if("plane"===w.type)t=new THREE.PlaneGeometry(w.width,w.height,w.widthSegments,
-w.heightSegments),t.name=C,B.geometries[C]=t;else if("sphere"===w.type)t=new THREE.SphereGeometry(w.radius,w.widthSegments,w.heightSegments),t.name=C,B.geometries[C]=t;else if("cylinder"===w.type)t=new THREE.CylinderGeometry(w.topRad,w.botRad,w.height,w.radSegs,w.heightSegs),t.name=C,B.geometries[C]=t;else if("torus"===w.type)t=new THREE.TorusGeometry(w.radius,w.tube,w.segmentsR,w.segmentsT),t.name=C,B.geometries[C]=t;else if("icosahedron"===w.type)t=new THREE.IcosahedronGeometry(w.radius,w.subdivisions),
-t.name=C,B.geometries[C]=t;else if(w.type in this.geometryHandlers){F={};for(u in w)"type"!==u&&"url"!==u&&(F[u]=w[u]);this.geometryHandlers[w.type].loaderObject.load(d(w.url,A.urlBaseType),h(C),F)}else"embedded"===w.type&&(F=A.embeds[w.id],F.metadata=A.metadata,F&&(F=this.geometryHandlers.ascii.loaderObject.parse(F,""),l(C)(F.geometry,F.materials)));for(var z in A.textures)if(C=A.textures[z],C.url instanceof Array)for(x+=C.url.length,u=0;u<C.url.length;u++)p.onLoadStart();else x+=1,p.onLoadStart();
-J=x;for(z in A.textures){C=A.textures[z];void 0!==C.mapping&&void 0!==THREE[C.mapping]&&(C.mapping=new THREE[C.mapping]);if(C.url instanceof Array){F=C.url.length;w=[];for(u=0;u<F;u++)w[u]=d(C.url[u],A.urlBaseType);u=(u=/\.dds$/i.test(w[0]))?THREE.ImageUtils.loadCompressedTextureCube(w,C.mapping,G(F)):THREE.ImageUtils.loadTextureCube(w,C.mapping,G(F))}else u=/\.dds$/i.test(C.url),F=d(C.url,A.urlBaseType),w=G(1),u=u?THREE.ImageUtils.loadCompressedTexture(F,C.mapping,w):THREE.ImageUtils.loadTexture(F,
-C.mapping,w),void 0!==THREE[C.minFilter]&&(u.minFilter=THREE[C.minFilter]),void 0!==THREE[C.magFilter]&&(u.magFilter=THREE[C.magFilter]),C.anisotropy&&(u.anisotropy=C.anisotropy),C.repeat&&(u.repeat.set(C.repeat[0],C.repeat[1]),1!==C.repeat[0]&&(u.wrapS=THREE.RepeatWrapping),1!==C.repeat[1]&&(u.wrapT=THREE.RepeatWrapping)),C.offset&&u.offset.set(C.offset[0],C.offset[1]),C.wrap&&(F={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping},void 0!==F[C.wrap[0]]&&(u.wrapS=F[C.wrap[0]]),void 0!==
-F[C.wrap[1]]&&(u.wrapT=F[C.wrap[1]]));B.textures[z]=u}var H,E;for(H in A.materials){z=A.materials[H];for(E in z.parameters)"envMap"===E||"map"===E||"lightMap"===E||"bumpMap"===E?z.parameters[E]=B.textures[z.parameters[E]]:"shading"===E?z.parameters[E]="flat"===z.parameters[E]?THREE.FlatShading:THREE.SmoothShading:"side"===E?z.parameters[E]="double"==z.parameters[E]?THREE.DoubleSide:"back"==z.parameters[E]?THREE.BackSide:THREE.FrontSide:"blending"===E?z.parameters[E]=z.parameters[E]in THREE?THREE[z.parameters[E]]:
-THREE.NormalBlending:"combine"===E?z.parameters[E]=z.parameters[E]in THREE?THREE[z.parameters[E]]:THREE.MultiplyOperation:"vertexColors"===E?"face"==z.parameters[E]?z.parameters[E]=THREE.FaceColors:z.parameters[E]&&(z.parameters[E]=THREE.VertexColors):"wrapRGB"===E&&(G=z.parameters[E],z.parameters[E]=new THREE.Vector3(G[0],G[1],G[2]));void 0!==z.parameters.opacity&&1>z.parameters.opacity&&(z.parameters.transparent=!0);z.parameters.normalMap?(G=THREE.ShaderLib.normalmap,C=THREE.UniformsUtils.clone(G.uniforms),
-u=z.parameters.color,F=z.parameters.specular,w=z.parameters.ambient,D=z.parameters.shininess,C.tNormal.value=B.textures[z.parameters.normalMap],z.parameters.normalScale&&C.uNormalScale.value.set(z.parameters.normalScale[0],z.parameters.normalScale[1]),z.parameters.map&&(C.tDiffuse.value=z.parameters.map,C.enableDiffuse.value=!0),z.parameters.envMap&&(C.tCube.value=z.parameters.envMap,C.enableReflection.value=!0,C.reflectivity.value=z.parameters.reflectivity),z.parameters.lightMap&&(C.tAO.value=z.parameters.lightMap,
-C.enableAO.value=!0),z.parameters.specularMap&&(C.tSpecular.value=B.textures[z.parameters.specularMap],C.enableSpecular.value=!0),z.parameters.displacementMap&&(C.tDisplacement.value=B.textures[z.parameters.displacementMap],C.enableDisplacement.value=!0,C.uDisplacementBias.value=z.parameters.displacementBias,C.uDisplacementScale.value=z.parameters.displacementScale),C.diffuse.value.setHex(u),C.specular.value.setHex(F),C.ambient.value.setHex(w),C.shininess.value=D,z.parameters.opacity&&(C.opacity.value=
-z.parameters.opacity),r=new THREE.ShaderMaterial({fragmentShader:G.fragmentShader,vertexShader:G.vertexShader,uniforms:C,lights:!0,fog:!0})):r=new THREE[z.type](z.parameters);r.name=H;B.materials[H]=r}for(H in A.materials)if(z=A.materials[H],z.parameters.materials){E=[];for(u=0;u<z.parameters.materials.length;u++)E.push(B.materials[z.parameters.materials[u]]);B.materials[H].materials=E}e();B.cameras&&A.defaults.camera&&(B.currentCamera=B.cameras[A.defaults.camera]);B.fogs&&A.defaults.fog&&(B.scene.fog=
-B.fogs[A.defaults.fog]);p.callbackSync(B);n()}};THREE.TextureLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager};THREE.TextureLoader.prototype={constructor:THREE.TextureLoader,load:function(a,b,c,d){c=new THREE.ImageLoader(this.manager);c.setCrossOrigin(this.crossOrigin);c.load(a,function(a){a=new THREE.Texture(a);a.needsUpdate=!0;void 0!==b&&b(a)})},setCrossOrigin:function(a){this.crossOrigin=a}};THREE.Material=function(){this.id=THREE.MaterialIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.side=THREE.FrontSide;this.opacity=1;this.transparent=!1;this.blending=THREE.NormalBlending;this.blendSrc=THREE.SrcAlphaFactor;this.blendDst=THREE.OneMinusSrcAlphaFactor;this.blendEquation=THREE.AddEquation;this.depthWrite=this.depthTest=!0;this.polygonOffset=!1;this.overdraw=this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.needsUpdate=this.visible=!0};
-THREE.Material.prototype={constructor:THREE.Material,setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if(b in this){var d=this[b];d instanceof THREE.Color?d.set(c):d instanceof THREE.Vector3&&c instanceof THREE.Vector3?d.copy(c):this[b]="overdraw"==b?Number(c):c}}},clone:function(a){void 0===a&&(a=new THREE.Material);a.name=this.name;a.side=this.side;a.opacity=this.opacity;a.transparent=this.transparent;
-a.blending=this.blending;a.blendSrc=this.blendSrc;a.blendDst=this.blendDst;a.blendEquation=this.blendEquation;a.depthTest=this.depthTest;a.depthWrite=this.depthWrite;a.polygonOffset=this.polygonOffset;a.polygonOffsetFactor=this.polygonOffsetFactor;a.polygonOffsetUnits=this.polygonOffsetUnits;a.alphaTest=this.alphaTest;a.overdraw=this.overdraw;a.visible=this.visible;return a},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.Material.prototype);
-THREE.MaterialIdCount=0;THREE.LineBasicMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.vertexColors=!1;this.fog=!0;this.setValues(a)};THREE.LineBasicMaterial.prototype=Object.create(THREE.Material.prototype);
-THREE.LineBasicMaterial.prototype.clone=function(){var a=new THREE.LineBasicMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.linewidth=this.linewidth;a.linecap=this.linecap;a.linejoin=this.linejoin;a.vertexColors=this.vertexColors;a.fog=this.fog;return a};THREE.LineDashedMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.scale=this.linewidth=1;this.dashSize=3;this.gapSize=1;this.vertexColors=!1;this.fog=!0;this.setValues(a)};THREE.LineDashedMaterial.prototype=Object.create(THREE.Material.prototype);
-THREE.LineDashedMaterial.prototype.clone=function(){var a=new THREE.LineDashedMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.linewidth=this.linewidth;a.scale=this.scale;a.dashSize=this.dashSize;a.gapSize=this.gapSize;a.vertexColors=this.vertexColors;a.fog=this.fog;return a};THREE.MeshBasicMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.envMap=this.specularMap=this.lightMap=this.map=null;this.combine=THREE.MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.fog=!0;this.shading=THREE.SmoothShading;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.vertexColors=THREE.NoColors;this.morphTargets=this.skinning=!1;this.setValues(a)};
-THREE.MeshBasicMaterial.prototype=Object.create(THREE.Material.prototype);
-THREE.MeshBasicMaterial.prototype.clone=function(){var a=new THREE.MeshBasicMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.map=this.map;a.lightMap=this.lightMap;a.specularMap=this.specularMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;a.shading=this.shading;a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;a.wireframeLinecap=this.wireframeLinecap;a.wireframeLinejoin=
-this.wireframeLinejoin;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;return a};THREE.MeshLambertMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.ambient=new THREE.Color(16777215);this.emissive=new THREE.Color(0);this.wrapAround=!1;this.wrapRGB=new THREE.Vector3(1,1,1);this.envMap=this.specularMap=this.lightMap=this.map=null;this.combine=THREE.MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.fog=!0;this.shading=THREE.SmoothShading;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap=
-"round";this.vertexColors=THREE.NoColors;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)};THREE.MeshLambertMaterial.prototype=Object.create(THREE.Material.prototype);
-THREE.MeshLambertMaterial.prototype.clone=function(){var a=new THREE.MeshLambertMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.ambient.copy(this.ambient);a.emissive.copy(this.emissive);a.wrapAround=this.wrapAround;a.wrapRGB.copy(this.wrapRGB);a.map=this.map;a.lightMap=this.lightMap;a.specularMap=this.specularMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;a.shading=this.shading;
-a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;a.wireframeLinecap=this.wireframeLinecap;a.wireframeLinejoin=this.wireframeLinejoin;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;a.morphNormals=this.morphNormals;return a};THREE.MeshPhongMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.ambient=new THREE.Color(16777215);this.emissive=new THREE.Color(0);this.specular=new THREE.Color(1118481);this.shininess=30;this.wrapAround=this.metal=!1;this.wrapRGB=new THREE.Vector3(1,1,1);this.bumpMap=this.lightMap=this.map=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new THREE.Vector2(1,1);this.envMap=this.specularMap=null;this.combine=THREE.MultiplyOperation;this.reflectivity=
-1;this.refractionRatio=0.98;this.fog=!0;this.shading=THREE.SmoothShading;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.vertexColors=THREE.NoColors;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)};THREE.MeshPhongMaterial.prototype=Object.create(THREE.Material.prototype);
-THREE.MeshPhongMaterial.prototype.clone=function(){var a=new THREE.MeshPhongMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.ambient.copy(this.ambient);a.emissive.copy(this.emissive);a.specular.copy(this.specular);a.shininess=this.shininess;a.metal=this.metal;a.wrapAround=this.wrapAround;a.wrapRGB.copy(this.wrapRGB);a.map=this.map;a.lightMap=this.lightMap;a.bumpMap=this.bumpMap;a.bumpScale=this.bumpScale;a.normalMap=this.normalMap;a.normalScale.copy(this.normalScale);
-a.specularMap=this.specularMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;a.shading=this.shading;a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;a.wireframeLinecap=this.wireframeLinecap;a.wireframeLinejoin=this.wireframeLinejoin;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;a.morphNormals=this.morphNormals;return a};THREE.MeshDepthMaterial=function(a){THREE.Material.call(this);this.wireframe=this.morphTargets=!1;this.wireframeLinewidth=1;this.setValues(a)};THREE.MeshDepthMaterial.prototype=Object.create(THREE.Material.prototype);THREE.MeshDepthMaterial.prototype.clone=function(){var a=new THREE.MeshDepthMaterial;THREE.Material.prototype.clone.call(this,a);a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;return a};THREE.MeshNormalMaterial=function(a){THREE.Material.call(this,a);this.shading=THREE.FlatShading;this.wireframe=!1;this.wireframeLinewidth=1;this.morphTargets=!1;this.setValues(a)};THREE.MeshNormalMaterial.prototype=Object.create(THREE.Material.prototype);THREE.MeshNormalMaterial.prototype.clone=function(){var a=new THREE.MeshNormalMaterial;THREE.Material.prototype.clone.call(this,a);a.shading=this.shading;a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;return a};THREE.MeshFaceMaterial=function(a){this.materials=a instanceof Array?a:[]};THREE.MeshFaceMaterial.prototype.clone=function(){for(var a=new THREE.MeshFaceMaterial,b=0;b<this.materials.length;b++)a.materials.push(this.materials[b].clone());return a};THREE.ParticleSystemMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.vertexColors=!1;this.fog=!0;this.setValues(a)};THREE.ParticleSystemMaterial.prototype=Object.create(THREE.Material.prototype);
-THREE.ParticleSystemMaterial.prototype.clone=function(){var a=new THREE.ParticleSystemMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.map=this.map;a.size=this.size;a.sizeAttenuation=this.sizeAttenuation;a.vertexColors=this.vertexColors;a.fog=this.fog;return a};THREE.ParticleBasicMaterial=THREE.ParticleSystemMaterial;THREE.ShaderMaterial=function(a){THREE.Material.call(this);this.vertexShader=this.fragmentShader="void main() {}";this.uniforms={};this.defines={};this.attributes=null;this.shading=THREE.SmoothShading;this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.lights=this.fog=!1;this.vertexColors=THREE.NoColors;this.morphNormals=this.morphTargets=this.skinning=!1;this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.setValues(a)};
-THREE.ShaderMaterial.prototype=Object.create(THREE.Material.prototype);
-THREE.ShaderMaterial.prototype.clone=function(){var a=new THREE.ShaderMaterial;THREE.Material.prototype.clone.call(this,a);a.fragmentShader=this.fragmentShader;a.vertexShader=this.vertexShader;a.uniforms=THREE.UniformsUtils.clone(this.uniforms);a.attributes=this.attributes;a.defines=this.defines;a.shading=this.shading;a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;a.fog=this.fog;a.lights=this.lights;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=
-this.morphTargets;a.morphNormals=this.morphNormals;return a};THREE.RawShaderMaterial=function(a){THREE.ShaderMaterial.call(this,a)};THREE.RawShaderMaterial.prototype=Object.create(THREE.ShaderMaterial.prototype);THREE.RawShaderMaterial.prototype.clone=function(){var a=new THREE.RawShaderMaterial;THREE.ShaderMaterial.prototype.clone.call(this,a);return a};THREE.SpriteMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.map=null;this.rotation=0;this.fog=!1;this.setValues(a)};THREE.SpriteMaterial.prototype=Object.create(THREE.Material.prototype);THREE.SpriteMaterial.prototype.clone=function(){var a=new THREE.SpriteMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.map=this.map;a.rotation=this.rotation;a.fog=this.fog;return a};THREE.SpriteCanvasMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.program=function(a,c){};this.setValues(a)};THREE.SpriteCanvasMaterial.prototype=Object.create(THREE.Material.prototype);THREE.SpriteCanvasMaterial.prototype.clone=function(){var a=new THREE.SpriteCanvasMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.program=this.program;return a};THREE.ParticleCanvasMaterial=THREE.SpriteCanvasMaterial;THREE.Texture=function(a,b,c,d,e,f,g,h,k){this.id=THREE.TextureIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.image=a;this.mipmaps=[];this.mapping=void 0!==b?b:new THREE.UVMapping;this.wrapS=void 0!==c?c:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==d?d:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==e?e:THREE.LinearFilter;this.minFilter=void 0!==f?f:THREE.LinearMipMapLinearFilter;this.anisotropy=void 0!==k?k:1;this.format=void 0!==g?g:THREE.RGBAFormat;this.type=void 0!==h?h:THREE.UnsignedByteType;
-this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this._needsUpdate=!1;this.onUpdate=null};
-THREE.Texture.prototype={constructor:THREE.Texture,get needsUpdate(){return this._needsUpdate},set needsUpdate(a){!0===a&&this.update();this._needsUpdate=a},clone:function(a){void 0===a&&(a=new THREE.Texture);a.image=this.image;a.mipmaps=this.mipmaps.slice(0);a.mapping=this.mapping;a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.anisotropy=this.anisotropy;a.format=this.format;a.type=this.type;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.generateMipmaps=
-this.generateMipmaps;a.premultiplyAlpha=this.premultiplyAlpha;a.flipY=this.flipY;a.unpackAlignment=this.unpackAlignment;return a},update:function(){this.dispatchEvent({type:"update"})},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.Texture.prototype);THREE.TextureIdCount=0;THREE.CompressedTexture=function(a,b,c,d,e,f,g,h,k,l,n){THREE.Texture.call(this,null,f,g,h,k,l,d,e,n);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=!1};THREE.CompressedTexture.prototype=Object.create(THREE.Texture.prototype);THREE.CompressedTexture.prototype.clone=function(){var a=new THREE.CompressedTexture;THREE.Texture.prototype.clone.call(this,a);return a};THREE.DataTexture=function(a,b,c,d,e,f,g,h,k,l,n){THREE.Texture.call(this,null,f,g,h,k,l,d,e,n);this.image={data:a,width:b,height:c}};THREE.DataTexture.prototype=Object.create(THREE.Texture.prototype);THREE.DataTexture.prototype.clone=function(){var a=new THREE.DataTexture;THREE.Texture.prototype.clone.call(this,a);return a};THREE.ParticleSystem=function(a,b){THREE.Object3D.call(this);this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.ParticleSystemMaterial({color:16777215*Math.random()});this.frustumCulled=this.sortParticles=!1};THREE.ParticleSystem.prototype=Object.create(THREE.Object3D.prototype);
-THREE.ParticleSystem.prototype.clone=function(a){void 0===a&&(a=new THREE.ParticleSystem(this.geometry,this.material));a.sortParticles=this.sortParticles;THREE.Object3D.prototype.clone.call(this,a);return a};THREE.Line=function(a,b,c){THREE.Object3D.call(this);this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.LineBasicMaterial({color:16777215*Math.random()});this.type=void 0!==c?c:THREE.LineStrip};THREE.LineStrip=0;THREE.LinePieces=1;THREE.Line.prototype=Object.create(THREE.Object3D.prototype);THREE.Line.prototype.clone=function(a){void 0===a&&(a=new THREE.Line(this.geometry,this.material,this.type));THREE.Object3D.prototype.clone.call(this,a);return a};THREE.Mesh=function(a,b){THREE.Object3D.call(this);this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.MeshBasicMaterial({color:16777215*Math.random()});this.updateMorphTargets()};THREE.Mesh.prototype=Object.create(THREE.Object3D.prototype);
-THREE.Mesh.prototype.updateMorphTargets=function(){if(void 0!==this.geometry.morphTargets&&0<this.geometry.morphTargets.length){this.morphTargetBase=-1;this.morphTargetForcedOrder=[];this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var a=0,b=this.geometry.morphTargets.length;a<b;a++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[this.geometry.morphTargets[a].name]=a}};
-THREE.Mesh.prototype.getMorphTargetIndexByName=function(a){if(void 0!==this.morphTargetDictionary[a])return this.morphTargetDictionary[a];console.log("THREE.Mesh.getMorphTargetIndexByName: morph target "+a+" does not exist. Returning 0.");return 0};THREE.Mesh.prototype.clone=function(a,b){void 0===a&&(a=new THREE.Mesh(this.geometry,this.material));THREE.Object3D.prototype.clone.call(this,a,b);return a};THREE.Bone=function(a){THREE.Object3D.call(this);this.skin=a;this.skinMatrix=new THREE.Matrix4;this.accumulatedSclWeight=this.accumulatedPosWeight=this.accumulatedRotWeight=0};THREE.Bone.prototype=Object.create(THREE.Object3D.prototype);
-THREE.Bone.prototype.update=function(a,b){this.matrixAutoUpdate&&(b|=this.updateMatrix());if(b||this.matrixWorldNeedsUpdate)a?this.skinMatrix.multiplyMatrices(a,this.matrix):this.skinMatrix.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,b=!0,this.accumulatedSclWeight=this.accumulatedPosWeight=this.accumulatedRotWeight=0;for(var c=0,d=this.children.length;c<d;c++)this.children[c].update(this.skinMatrix,b)};THREE.Skeleton=function(a,b){this.useVertexTexture=void 0!==b?b:!0;this.bones=[];this.boneMatrices=[];var c,d,e,f,g;if(void 0!==a){for(var h=0;h<a.length;++h)d=a[h],e=d.pos,f=d.rotq,g=d.scl,c=this.addBone(),c.name=d.name,c.position.set(e[0],e[1],e[2]),c.quaternion.set(f[0],f[1],f[2],f[3]),void 0!==g?c.scale.set(g[0],g[1],g[2]):c.scale.set(1,1,1);for(h=0;h<a.length;++h)d=a[h],-1!==d.parent&&this.bones[d.parent].add(this.bones[h]);c=this.bones.length;this.useVertexTexture?(this.boneTextureHeight=this.boneTextureWidth=
-c=256<c?64:64<c?32:16<c?16:8,this.boneMatrices=new Float32Array(this.boneTextureWidth*this.boneTextureHeight*4),this.boneTexture=new THREE.DataTexture(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,THREE.RGBAFormat,THREE.FloatType),this.boneTexture.minFilter=THREE.NearestFilter,this.boneTexture.magFilter=THREE.NearestFilter,this.boneTexture.generateMipmaps=!1,this.boneTexture.flipY=!1):this.boneMatrices=new Float32Array(16*c)}};THREE.Skeleton.prototype=Object.create(THREE.Mesh.prototype);
-THREE.Skeleton.prototype.addBone=function(a){void 0===a&&(a=new THREE.Bone(this));this.bones.push(a);return a};THREE.Skeleton.prototype.calculateInverses=function(a){this.boneInverses=[];a=0;for(var b=this.bones.length;a<b;++a){var c=new THREE.Matrix4;c.getInverse(this.bones[a].skinMatrix);this.boneInverses.push(c)}};THREE.SkinnedMesh=function(a,b,c){THREE.Mesh.call(this,a,b);this.skeleton=new THREE.Skeleton(this.geometry&&this.geometry.bones,c);for(a=0;a<this.skeleton.bones.length;++a)b=this.skeleton.bones[a],void 0===b.parent&&this.add(b);this.identityMatrix=new THREE.Matrix4;this.pose()};THREE.SkinnedMesh.prototype=Object.create(THREE.Mesh.prototype);
-THREE.SkinnedMesh.prototype.updateMatrixWorld=function(){var a=new THREE.Matrix4;return function(b){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||b)this.parent?this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1;b=0;for(var c=this.children.length;b<c;b++){var d=this.children[b];d instanceof THREE.Bone?d.update(this.identityMatrix,!1):d.updateMatrixWorld(!0)}void 0===this.skeleton.boneInverses&&
-this.skeleton.calculateInverses();b=0;for(c=this.skeleton.bones.length;b<c;b++)a.multiplyMatrices(this.skeleton.bones[b].skinMatrix,this.skeleton.boneInverses[b]),a.flattenToArrayOffset(this.skeleton.boneMatrices,16*b);this.skeleton.useVertexTexture&&(this.skeleton.boneTexture.needsUpdate=!0)}}();THREE.SkinnedMesh.prototype.pose=function(){this.updateMatrixWorld(!0);this.normalizeSkinWeights()};
-THREE.SkinnedMesh.prototype.normalizeSkinWeights=function(){if(this.geometry instanceof THREE.Geometry)for(var a=0;a<this.geometry.skinIndices.length;a++){var b=this.geometry.skinWeights[a],c=1/b.lengthManhattan();Infinity!==c?b.multiplyScalar(c):b.set(1)}};THREE.SkinnedMesh.prototype.clone=function(a){void 0===a&&(a=new THREE.SkinnedMesh(this.geometry,this.material,this.useVertexTexture));THREE.Mesh.prototype.clone.call(this,a);return a};THREE.MorphAnimMesh=function(a,b){THREE.Mesh.call(this,a,b);this.duration=1E3;this.mirroredLoop=!1;this.currentKeyframe=this.lastKeyframe=this.time=0;this.direction=1;this.directionBackwards=!1;this.setFrameRange(0,this.geometry.morphTargets.length-1)};THREE.MorphAnimMesh.prototype=Object.create(THREE.Mesh.prototype);THREE.MorphAnimMesh.prototype.setFrameRange=function(a,b){this.startKeyframe=a;this.endKeyframe=b;this.length=this.endKeyframe-this.startKeyframe+1};
-THREE.MorphAnimMesh.prototype.setDirectionForward=function(){this.direction=1;this.directionBackwards=!1};THREE.MorphAnimMesh.prototype.setDirectionBackward=function(){this.direction=-1;this.directionBackwards=!0};
-THREE.MorphAnimMesh.prototype.parseAnimations=function(){var a=this.geometry;a.animations||(a.animations={});for(var b,c=a.animations,d=/([a-z]+)(\d+)/,e=0,f=a.morphTargets.length;e<f;e++){var g=a.morphTargets[e].name.match(d);if(g&&1<g.length){g=g[1];c[g]||(c[g]={start:Infinity,end:-Infinity});var h=c[g];e<h.start&&(h.start=e);e>h.end&&(h.end=e);b||(b=g)}}a.firstAnimation=b};
-THREE.MorphAnimMesh.prototype.setAnimationLabel=function(a,b,c){this.geometry.animations||(this.geometry.animations={});this.geometry.animations[a]={start:b,end:c}};THREE.MorphAnimMesh.prototype.playAnimation=function(a,b){var c=this.geometry.animations[a];c?(this.setFrameRange(c.start,c.end),this.duration=(c.end-c.start)/b*1E3,this.time=0):console.warn("animation["+a+"] undefined")};
-THREE.MorphAnimMesh.prototype.updateAnimation=function(a){var b=this.duration/this.length;this.time+=this.direction*a;if(this.mirroredLoop){if(this.time>this.duration||0>this.time)this.direction*=-1,this.time>this.duration&&(this.time=this.duration,this.directionBackwards=!0),0>this.time&&(this.time=0,this.directionBackwards=!1)}else this.time%=this.duration,0>this.time&&(this.time+=this.duration);a=this.startKeyframe+THREE.Math.clamp(Math.floor(this.time/b),0,this.length-1);a!==this.currentKeyframe&&
-(this.morphTargetInfluences[this.lastKeyframe]=0,this.morphTargetInfluences[this.currentKeyframe]=1,this.morphTargetInfluences[a]=0,this.lastKeyframe=this.currentKeyframe,this.currentKeyframe=a);b=this.time%b/b;this.directionBackwards&&(b=1-b);this.morphTargetInfluences[this.currentKeyframe]=b;this.morphTargetInfluences[this.lastKeyframe]=1-b};
-THREE.MorphAnimMesh.prototype.clone=function(a){void 0===a&&(a=new THREE.MorphAnimMesh(this.geometry,this.material));a.duration=this.duration;a.mirroredLoop=this.mirroredLoop;a.time=this.time;a.lastKeyframe=this.lastKeyframe;a.currentKeyframe=this.currentKeyframe;a.direction=this.direction;a.directionBackwards=this.directionBackwards;THREE.Mesh.prototype.clone.call(this,a);return a};THREE.LOD=function(){THREE.Object3D.call(this);this.objects=[]};THREE.LOD.prototype=Object.create(THREE.Object3D.prototype);THREE.LOD.prototype.addLevel=function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=0;c<this.objects.length&&!(b<this.objects[c].distance);c++);this.objects.splice(c,0,{distance:b,object:a});this.add(a)};THREE.LOD.prototype.getObjectForDistance=function(a){for(var b=1,c=this.objects.length;b<c&&!(a<this.objects[b].distance);b++);return this.objects[b-1].object};
-THREE.LOD.prototype.update=function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c){if(1<this.objects.length){a.setFromMatrixPosition(c.matrixWorld);b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);this.objects[0].object.visible=!0;for(var d=1,e=this.objects.length;d<e;d++)if(c>=this.objects[d].distance)this.objects[d-1].object.visible=!1,this.objects[d].object.visible=!0;else break;for(;d<e;d++)this.objects[d].object.visible=!1}}}();
-THREE.LOD.prototype.clone=function(a){void 0===a&&(a=new THREE.LOD);THREE.Object3D.prototype.clone.call(this,a);for(var b=0,c=this.objects.length;b<c;b++){var d=this.objects[b].object.clone();d.visible=0===b;a.addLevel(d,this.objects[b].distance)}return a};THREE.Sprite=function(){var a=new THREE.Float32Attribute(3,3);a.set([-0.5,-0.5,0,0.5,-0.5,0,0.5,0.5,0]);var b=new THREE.BufferGeometry;b.addAttribute("position",a);return function(a){THREE.Object3D.call(this);this.geometry=b;this.material=void 0!==a?a:new THREE.SpriteMaterial}}();THREE.Sprite.prototype=Object.create(THREE.Object3D.prototype);THREE.Sprite.prototype.updateMatrix=function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0};
-THREE.Sprite.prototype.clone=function(a){void 0===a&&(a=new THREE.Sprite(this.material));THREE.Object3D.prototype.clone.call(this,a);return a};THREE.Particle=THREE.Sprite;THREE.Scene=function(){THREE.Object3D.call(this);this.overrideMaterial=this.fog=null;this.autoUpdate=!0;this.matrixAutoUpdate=!1;this.__lights=[];this.__objectsAdded=[];this.__objectsRemoved=[]};THREE.Scene.prototype=Object.create(THREE.Object3D.prototype);
-THREE.Scene.prototype.__addObject=function(a){if(a instanceof THREE.Light)-1===this.__lights.indexOf(a)&&this.__lights.push(a),a.target&&void 0===a.target.parent&&this.add(a.target);else if(!(a instanceof THREE.Camera||a instanceof THREE.Bone)){this.__objectsAdded.push(a);var b=this.__objectsRemoved.indexOf(a);-1!==b&&this.__objectsRemoved.splice(b,1)}this.dispatchEvent({type:"objectAdded",object:a});a.dispatchEvent({type:"addedToScene",scene:this});for(b=0;b<a.children.length;b++)this.__addObject(a.children[b])};
-THREE.Scene.prototype.__removeObject=function(a){if(a instanceof THREE.Light){var b=this.__lights.indexOf(a);-1!==b&&this.__lights.splice(b,1);if(a.shadowCascadeArray)for(b=0;b<a.shadowCascadeArray.length;b++)this.__removeObject(a.shadowCascadeArray[b])}else a instanceof THREE.Camera||(this.__objectsRemoved.push(a),b=this.__objectsAdded.indexOf(a),-1!==b&&this.__objectsAdded.splice(b,1));this.dispatchEvent({type:"objectRemoved",object:a});a.dispatchEvent({type:"removedFromScene",scene:this});for(b=
-0;b<a.children.length;b++)this.__removeObject(a.children[b])};THREE.Scene.prototype.clone=function(a){void 0===a&&(a=new THREE.Scene);THREE.Object3D.prototype.clone.call(this,a);null!==this.fog&&(a.fog=this.fog.clone());null!==this.overrideMaterial&&(a.overrideMaterial=this.overrideMaterial.clone());a.autoUpdate=this.autoUpdate;a.matrixAutoUpdate=this.matrixAutoUpdate;return a};THREE.Fog=function(a,b,c){this.name="";this.color=new THREE.Color(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3};THREE.Fog.prototype.clone=function(){return new THREE.Fog(this.color.getHex(),this.near,this.far)};THREE.FogExp2=function(a,b){this.name="";this.color=new THREE.Color(a);this.density=void 0!==b?b:2.5E-4};THREE.FogExp2.prototype.clone=function(){return new THREE.FogExp2(this.color.getHex(),this.density)};THREE.CanvasRenderer=function(a){function b(a,b,c,d){l(b);n(c);q(d);p(a.getStyle());A.stroke();qa.expandByScalar(2*b)}function c(a){s(a.getStyle());A.fill()}function d(a){e(a.target)}function e(a){var b=a.wrapS===THREE.RepeatWrapping,c=a.wrapT===THREE.RepeatWrapping,d=a.image,e=document.createElement("canvas");e.width=d.width;e.height=d.height;var f=e.getContext("2d");f.setTransform(1,0,0,-1,0,d.height);f.drawImage(d,0,0);Ga[a.id]=A.createPattern(e,!0===b&&!0===c?"repeat":!0===b&&!1===c?"repeat-x":
-!1===b&&!0===c?"repeat-y":"no-repeat")}function f(a,b,c,f,g,h,k,l,n,m,p,r,q){if(!(q instanceof THREE.DataTexture)){!1===q.hasEventListener("update",d)&&(void 0!==q.image&&0<q.image.width&&e(q),q.addEventListener("update",d));var t=Ga[q.id];if(void 0!==t){s(t);var t=q.offset.x/q.repeat.x,u=q.offset.y/q.repeat.y,w=q.image.width*q.repeat.x;q=q.image.height*q.repeat.y;k=(k+t)*w;l=(l+u)*q;c-=a;f-=b;g-=a;h-=b;n=(n+t)*w-k;m=(m+u)*q-l;p=(p+t)*w-k;r=(r+u)*q-l;q=n*r-p*m;0!==q&&(t=1/q,q=(r*c-m*g)*t,m=(r*f-m*
-h)*t,c=(n*g-p*c)*t,f=(n*h-p*f)*t,a=a-q*k-c*l,b=b-m*k-f*l,A.save(),A.transform(q,m,c,f,a,b),A.fill(),A.restore())}else s("rgba(0,0,0,1)"),A.fill()}}function g(a,b,c){var d=b.x-a.x,e=b.y-a.y,f=d*d+e*e;0!==f&&(c/=Math.sqrt(f),d*=c,e*=c,b.x+=d,b.y+=e,a.x-=d,a.y-=e)}function h(a){C!==a&&(C=A.globalAlpha=a)}function k(a){F!==a&&(a===THREE.NormalBlending?A.globalCompositeOperation="source-over":a===THREE.AdditiveBlending?A.globalCompositeOperation="lighter":a===THREE.SubtractiveBlending&&(A.globalCompositeOperation=
-"darker"),F=a)}function l(a){E!==a&&(E=A.lineWidth=a)}function n(a){Q!==a&&(Q=A.lineCap=a)}function q(a){Y!==a&&(Y=A.lineJoin=a)}function p(a){z!==a&&(z=A.strokeStyle=a)}function s(a){H!==a&&(H=A.fillStyle=a)}function t(a,b){if(U!==a||la!==b)A.setLineDash([a,b]),U=a,la=b}console.log("THREE.CanvasRenderer",THREE.REVISION);var r=THREE.Math.smoothstep;a=a||{};var v=this,w,u,y,L=new THREE.Projector,x=void 0!==a.canvas?a.canvas:document.createElement("canvas"),N=x.width,J=x.height,B=Math.floor(N/2),K=
-Math.floor(J/2),A=x.getContext("2d",{alpha:!0===a.alpha}),G=new THREE.Color(0),D=0,C=1,F=0,z=null,H=null,E=null,Q=null,Y=null,U=null,la=0,W,R,I,da;new THREE.RenderableVertex;new THREE.RenderableVertex;var V,X,P,ga,wa,Ha,fa=new THREE.Color;new THREE.Color;new THREE.Color;new THREE.Color;new THREE.Color;var za=new THREE.Color,Ia=new THREE.Color,Ea=new THREE.Color,Ga={},ha,Oa,Ra,Sa,Fa,ia,ma,ya=new THREE.Box2,Z=new THREE.Box2,qa=new THREE.Box2,ua=new THREE.Color,Ca=new THREE.Color,va=new THREE.Color,
-Da=new THREE.Vector3,Ja=new THREE.Vector3,ja=new THREE.Vector3,ra=new THREE.Matrix3;void 0===A.setLineDash&&(A.setLineDash=function(){});this.domElement=x;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,faces:0}};this.supportsVertexTextures=function(){};this.setFaceCulling=function(){};this.setSize=function(a,b,c){N=a*this.devicePixelRatio;
-J=b*this.devicePixelRatio;x.width=N;x.height=J;B=Math.floor(N/2);K=Math.floor(J/2);!1!==c&&(x.style.width=a+"px",x.style.height=b+"px");ya.min.set(-B,-K);ya.max.set(B,K);Z.min.set(-B,-K);Z.max.set(B,K);C=1;F=0;Y=Q=E=H=z=null;this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){A.setTransform(c*this.devicePixelRatio/N,0,0,-(d*this.devicePixelRatio)/J,a*this.devicePixelRatio,J-b*this.devicePixelRatio);A.translate(B,K)};this.setScissor=function(){};this.enableScissorTest=function(){};this.setClearColor=
-function(a,b){G.set(a);D=void 0!==b?b:1;Z.min.set(-B,-K);Z.max.set(B,K)};this.setClearColorHex=function(a,b){console.warn("DEPRECATED: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};this.getMaxAnisotropy=function(){return 0};this.clear=function(){!1===Z.empty()&&(Z.intersect(ya),Z.expandByScalar(2),1>D&&A.clearRect(Z.min.x|0,Z.min.y|0,Z.max.x-Z.min.x|0,Z.max.y-Z.min.y|0),0<D&&(k(THREE.NormalBlending),h(1),s("rgba("+Math.floor(255*G.r)+","+Math.floor(255*
-G.g)+","+Math.floor(255*G.b)+","+D+")"),A.fillRect(Z.min.x|0,Z.min.y|0,Z.max.x-Z.min.x|0,Z.max.y-Z.min.y|0)),Z.makeEmpty())};this.clearColor=function(){};this.clearDepth=function(){};this.clearStencil=function(){};this.render=function(a,x){if(!1===x instanceof THREE.Camera)console.error("THREE.CanvasRenderer.render: camera is not an instance of THREE.Camera.");else{!0===this.autoClear&&this.clear();v.info.render.vertices=0;v.info.render.faces=0;w=L.projectScene(a,x,this.sortObjects,this.sortElements);
-u=w.elements;y=w.lights;W=x;ra.getNormalMatrix(x.matrixWorldInverse);ua.setRGB(0,0,0);Ca.setRGB(0,0,0);va.setRGB(0,0,0);for(var C=0,J=y.length;C<J;C++){var z=y[C],G=z.color;z instanceof THREE.AmbientLight?ua.add(G):z instanceof THREE.DirectionalLight?Ca.add(G):z instanceof THREE.PointLight&&va.add(G)}C=0;for(J=u.length;C<J;C++){var E=u[C],N=E.material;if(void 0!==N&&0!==N.opacity){qa.makeEmpty();if(E instanceof THREE.RenderableSprite){R=E;R.x*=B;R.y*=K;var z=R,H=E,G=N;h(G.opacity);k(G.blending);var m=
-H.scale.x*B,H=H.scale.y*K,E=0.5*Math.sqrt(m*m+H*H);qa.min.set(z.x-E,z.y-E);qa.max.set(z.x+E,z.y+E);if(G instanceof THREE.SpriteMaterial||G instanceof THREE.ParticleSystemMaterial){var D=G.map;if(null!==D){!1===D.hasEventListener("update",d)&&(void 0!==D.image&&0<D.image.width&&e(D),D.addEventListener("update",d));E=Ga[D.id];void 0!==E?s(E):s("rgba( 0, 0, 0, 1 )");var F=D.image,E=F.width*D.offset.x,N=F.height*D.offset.y,Q=F.width*D.repeat.x,D=F.height*D.repeat.y,F=m/Q,U=H/D;A.save();A.translate(z.x,
-z.y);0!==G.rotation&&A.rotate(G.rotation);A.translate(-m/2,-H/2);A.scale(F,U);A.translate(-E,-N);A.fillRect(E,N,Q,D)}else s(G.color.getStyle()),A.save(),A.translate(z.x,z.y),0!==G.rotation&&A.rotate(G.rotation),A.scale(m,-H),A.fillRect(-0.5,-0.5,1,1);A.restore()}else G instanceof THREE.SpriteCanvasMaterial&&(p(G.color.getStyle()),s(G.color.getStyle()),A.save(),A.translate(z.x,z.y),0!==G.rotation&&A.rotate(G.rotation),A.scale(m,H),G.program(A),A.restore())}else if(E instanceof THREE.RenderableLine){if(R=
-E.v1,I=E.v2,R.positionScreen.x*=B,R.positionScreen.y*=K,I.positionScreen.x*=B,I.positionScreen.y*=K,qa.setFromPoints([R.positionScreen,I.positionScreen]),!0===ya.isIntersectionBox(qa))if(z=R,G=I,m=E,H=N,h(H.opacity),k(H.blending),A.beginPath(),A.moveTo(z.positionScreen.x,z.positionScreen.y),A.lineTo(G.positionScreen.x,G.positionScreen.y),H instanceof THREE.LineBasicMaterial){l(H.linewidth);n(H.linecap);q(H.linejoin);if(H.vertexColors!==THREE.VertexColors)p(H.color.getStyle());else if(E=m.vertexColors[0].getStyle(),
-m=m.vertexColors[1].getStyle(),E===m)p(E);else{try{var Y=A.createLinearGradient(z.positionScreen.x,z.positionScreen.y,G.positionScreen.x,G.positionScreen.y);Y.addColorStop(0,E);Y.addColorStop(1,m)}catch(la){Y=E}p(Y)}A.stroke();qa.expandByScalar(2*H.linewidth)}else H instanceof THREE.LineDashedMaterial&&(l(H.linewidth),n(H.linecap),q(H.linejoin),p(H.color.getStyle()),t(H.dashSize,H.gapSize),A.stroke(),qa.expandByScalar(2*H.linewidth),t(null,null))}else if(E instanceof THREE.RenderableFace){R=E.v1;
-I=E.v2;da=E.v3;if(-1>R.positionScreen.z||1<R.positionScreen.z)continue;if(-1>I.positionScreen.z||1<I.positionScreen.z)continue;if(-1>da.positionScreen.z||1<da.positionScreen.z)continue;R.positionScreen.x*=B;R.positionScreen.y*=K;I.positionScreen.x*=B;I.positionScreen.y*=K;da.positionScreen.x*=B;da.positionScreen.y*=K;0<N.overdraw&&(g(R.positionScreen,I.positionScreen,N.overdraw),g(I.positionScreen,da.positionScreen,N.overdraw),g(da.positionScreen,R.positionScreen,N.overdraw));qa.setFromPoints([R.positionScreen,
-I.positionScreen,da.positionScreen]);if(!0===ya.isIntersectionBox(qa)){G=R;m=I;H=da;z=N;v.info.render.vertices+=3;v.info.render.faces++;h(z.opacity);k(z.blending);V=G.positionScreen.x;X=G.positionScreen.y;P=m.positionScreen.x;ga=m.positionScreen.y;wa=H.positionScreen.x;Ha=H.positionScreen.y;var N=V,Q=X,D=P,F=ga,U=wa,Db=Ha;A.beginPath();A.moveTo(N,Q);A.lineTo(D,F);A.lineTo(U,Db);A.closePath();if((z instanceof THREE.MeshLambertMaterial||z instanceof THREE.MeshPhongMaterial)&&null===z.map){za.copy(z.color);
-Ia.copy(z.emissive);z.vertexColors===THREE.FaceColors&&za.multiply(E.color);fa.copy(ua);Ja.copy(G.positionWorld).add(m.positionWorld).add(H.positionWorld).divideScalar(3);G=Ja;m=E.normalModel;H=fa;E=0;for(N=y.length;E<N;E++)Q=y[E],Ea.copy(Q.color),Q instanceof THREE.DirectionalLight?(D=Da.setFromMatrixPosition(Q.matrixWorld).normalize(),F=m.dot(D),0>=F||(F*=Q.intensity,H.add(Ea.multiplyScalar(F)))):Q instanceof THREE.PointLight&&(D=Da.setFromMatrixPosition(Q.matrixWorld),F=m.dot(Da.subVectors(D,G).normalize()),
-0>=F||(F*=0==Q.distance?1:1-Math.min(G.distanceTo(D)/Q.distance,1),0!=F&&(F*=Q.intensity,H.add(Ea.multiplyScalar(F)))));fa.multiply(za).add(Ia);!0===z.wireframe?b(fa,z.wireframeLinewidth,z.wireframeLinecap,z.wireframeLinejoin):c(fa)}else z instanceof THREE.MeshBasicMaterial||z instanceof THREE.MeshLambertMaterial||z instanceof THREE.MeshPhongMaterial?null!==z.map?z.map.mapping instanceof THREE.UVMapping&&(ha=E.uvs,f(V,X,P,ga,wa,Ha,ha[0].x,ha[0].y,ha[1].x,ha[1].y,ha[2].x,ha[2].y,z.map)):null!==z.envMap?
-z.envMap.mapping instanceof THREE.SphericalReflectionMapping?(ja.copy(E.vertexNormalsModel[0]).applyMatrix3(ra),Oa=0.5*ja.x+0.5,Ra=0.5*ja.y+0.5,ja.copy(E.vertexNormalsModel[1]).applyMatrix3(ra),Sa=0.5*ja.x+0.5,Fa=0.5*ja.y+0.5,ja.copy(E.vertexNormalsModel[2]).applyMatrix3(ra),ia=0.5*ja.x+0.5,ma=0.5*ja.y+0.5,f(V,X,P,ga,wa,Ha,Oa,Ra,Sa,Fa,ia,ma,z.envMap)):z.envMap.mapping instanceof THREE.SphericalRefractionMapping&&(ja.copy(E.vertexNormalsModel[0]).applyMatrix3(ra),Oa=-0.5*ja.x+0.5,Ra=-0.5*ja.y+0.5,
-ja.copy(E.vertexNormalsModel[1]).applyMatrix3(ra),Sa=-0.5*ja.x+0.5,Fa=-0.5*ja.y+0.5,ja.copy(E.vertexNormalsModel[2]).applyMatrix3(ra),ia=-0.5*ja.x+0.5,ma=-0.5*ja.y+0.5,f(V,X,P,ga,wa,Ha,Oa,Ra,Sa,Fa,ia,ma,z.envMap)):(fa.copy(z.color),z.vertexColors===THREE.FaceColors&&fa.multiply(E.color),!0===z.wireframe?b(fa,z.wireframeLinewidth,z.wireframeLinecap,z.wireframeLinejoin):c(fa)):(z instanceof THREE.MeshDepthMaterial?fa.r=fa.g=fa.b=1-r(G.positionScreen.z*G.positionScreen.w,W.near,W.far):z instanceof THREE.MeshNormalMaterial?
-(ja.copy(E.normalModel).applyMatrix3(ra),fa.setRGB(ja.x,ja.y,ja.z).multiplyScalar(0.5).addScalar(0.5)):fa.setRGB(1,1,1),!0===z.wireframe?b(fa,z.wireframeLinewidth,z.wireframeLinecap,z.wireframeLinejoin):c(fa))}}Z.union(qa)}}}}};THREE.ShaderChunk={fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\t#else\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t#endif\n\t#ifdef FOG_EXP2\n\t\tconst float LOG2 = 1.442695;\n\t\tfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\n\t\tfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n\t#endif\n\tgl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n#endif",
-envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\tuniform samplerCube envMap;\n\tuniform float flipEnvMap;\n\tuniform int combine;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\t\tuniform bool useRefract;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_fragment:"#ifdef USE_ENVMAP\n\tvec3 reflectVec;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = normalize( vec3( vec4( normal, 0.0 ) * viewMatrix ) );\n\t\tif ( useRefract ) {\n\t\t\treflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t} else { \n\t\t\treflectVec = reflect( cameraToVertex, worldNormal );\n\t\t}\n\t#else\n\t\treflectVec = vReflect;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tfloat flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\t\tvec4 cubeColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 cubeColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#endif\n\t#ifdef GAMMA_INPUT\n\t\tcubeColor.xyz *= cubeColor.xyz;\n\t#endif\n\tif ( combine == 1 ) {\n\t\tgl_FragColor.xyz = mix( gl_FragColor.xyz, cubeColor.xyz, specularStrength * reflectivity );\n\t} else if ( combine == 2 ) {\n\t\tgl_FragColor.xyz += cubeColor.xyz * specularStrength * reflectivity;\n\t} else {\n\t\tgl_FragColor.xyz = mix( gl_FragColor.xyz, gl_FragColor.xyz * cubeColor.xyz, specularStrength * reflectivity );\n\t}\n#endif",
-envmap_pars_vertex:"#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP )\n\tvarying vec3 vReflect;\n\tuniform float refractionRatio;\n\tuniform bool useRefract;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n\t#ifdef USE_SKINNING\n\t\tvec4 worldPosition = modelMatrix * skinned;\n\t#endif\n\t#if defined( USE_MORPHTARGETS ) && ! defined( USE_SKINNING )\n\t\tvec4 worldPosition = modelMatrix * vec4( morphed, 1.0 );\n\t#endif\n\t#if ! defined( USE_MORPHTARGETS ) && ! defined( USE_SKINNING )\n\t\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\t#endif\n#endif",
-envmap_vertex:"#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP )\n\tvec3 worldNormal = mat3( modelMatrix[ 0 ].xyz, modelMatrix[ 1 ].xyz, modelMatrix[ 2 ].xyz ) * objectNormal;\n\tworldNormal = normalize( worldNormal );\n\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\tif ( useRefract ) {\n\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t} else {\n\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t}\n#endif",
-map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#ifdef USE_MAP\n\tgl_FragColor = gl_FragColor * texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) );\n#endif",map_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP )\n\tvarying vec2 vUv;\n\tuniform vec4 offsetRepeat;\n#endif",map_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",
-map_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP )\n\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\t#ifdef GAMMA_INPUT\n\t\ttexelColor.xyz *= texelColor.xyz;\n\t#endif\n\tgl_FragColor = gl_FragColor * texelColor;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tvarying vec2 vUv2;\n\tuniform sampler2D lightMap;\n#endif",lightmap_pars_vertex:"#ifdef USE_LIGHTMAP\n\tvarying vec2 vUv2;\n#endif",
-lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tgl_FragColor = gl_FragColor * texture2D( lightMap, vUv2 );\n#endif",lightmap_vertex:"#ifdef USE_LIGHTMAP\n\tvUv2 = uv2;\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos );\n\t\tvec3 vSigmaY = dFdy( surf_pos );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",
-normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif",
-specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",lights_lambert_pars_vertex:"uniform vec3 ambient;\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_HEMI_LIGHTS > 0\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#endif\n#if MAX_SPOT_LIGHTS > 0\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n#endif\n#ifdef WRAP_AROUND\n\tuniform vec3 wrapRGB;\n#endif",
-lights_lambert_vertex:"vLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\ntransformedNormal = normalize( transformedNormal );\n#if MAX_DIR_LIGHTS > 0\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\tvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\n\tvec3 dirVector = normalize( lDirection.xyz );\n\tfloat dotProduct = dot( transformedNormal, dirVector );\n\tvec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\t#ifdef DOUBLE_SIDED\n\t\tvec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\t\t#ifdef WRAP_AROUND\n\t\t\tvec3 directionalLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t#endif\n\t#endif\n\t#ifdef WRAP_AROUND\n\t\tvec3 directionalLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\tdirectionalLightWeighting = mix( directionalLightWeighting, directionalLightWeightingHalf, wrapRGB );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tdirectionalLightWeightingBack = mix( directionalLightWeightingBack, directionalLightWeightingHalfBack, wrapRGB );\n\t\t#endif\n\t#endif\n\tvLightFront += directionalLightColor[ i ] * directionalLightWeighting;\n\t#ifdef DOUBLE_SIDED\n\t\tvLightBack += directionalLightColor[ i ] * directionalLightWeightingBack;\n\t#endif\n}\n#endif\n#if MAX_POINT_LIGHTS > 0\n\tfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\t\tfloat lDistance = 1.0;\n\t\tif ( pointLightDistance[ i ] > 0.0 )\n\t\t\tlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\n\t\tlVector = normalize( lVector );\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\t\tvec3 pointLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvec3 pointLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\t\t\t#ifdef WRAP_AROUND\n\t\t\t\tvec3 pointLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef WRAP_AROUND\n\t\t\tvec3 pointLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\tpointLightWeighting = mix( pointLightWeighting, pointLightWeightingHalf, wrapRGB );\n\t\t\t#ifdef DOUBLE_SIDED\n\t\t\t\tpointLightWeightingBack = mix( pointLightWeightingBack, pointLightWeightingHalfBack, wrapRGB );\n\t\t\t#endif\n\t\t#endif\n\t\tvLightFront += pointLightColor[ i ] * pointLightWeighting * lDistance;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += pointLightColor[ i ] * pointLightWeightingBack * lDistance;\n\t\t#endif\n\t}\n#endif\n#if MAX_SPOT_LIGHTS > 0\n\tfor( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - worldPosition.xyz ) );\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\t\t\tspotEffect = max( pow( spotEffect, spotLightExponent[ i ] ), 0.0 );\n\t\t\tfloat lDistance = 1.0;\n\t\t\tif ( spotLightDistance[ i ] > 0.0 )\n\t\t\t\tlDistance = 1.0 - min( ( length( lVector ) / spotLightDistance[ i ] ), 1.0 );\n\t\t\tlVector = normalize( lVector );\n\t\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\t\t\tvec3 spotLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\t\t\t#ifdef DOUBLE_SIDED\n\t\t\t\tvec3 spotLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\t\t\t\t#ifdef WRAP_AROUND\n\t\t\t\t\tvec3 spotLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef WRAP_AROUND\n\t\t\t\tvec3 spotLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\t\tspotLightWeighting = mix( spotLightWeighting, spotLightWeightingHalf, wrapRGB );\n\t\t\t\t#ifdef DOUBLE_SIDED\n\t\t\t\t\tspotLightWeightingBack = mix( spotLightWeightingBack, spotLightWeightingHalfBack, wrapRGB );\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\tvLightFront += spotLightColor[ i ] * spotLightWeighting * lDistance * spotEffect;\n\t\t\t#ifdef DOUBLE_SIDED\n\t\t\t\tvLightBack += spotLightColor[ i ] * spotLightWeightingBack * lDistance * spotEffect;\n\t\t\t#endif\n\t\t}\n\t}\n#endif\n#if MAX_HEMI_LIGHTS > 0\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\t\tvec4 lDirection = viewMatrix * vec4( hemisphereLightDirection[ i ], 0.0 );\n\t\tvec3 lVector = normalize( lDirection.xyz );\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\t\tfloat hemiDiffuseWeightBack = -0.5 * dotProduct + 0.5;\n\t\tvLightFront += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeightBack );\n\t\t#endif\n\t}\n#endif\nvLightFront = vLightFront * diffuse + ambient * ambientLightColor + emissive;\n#ifdef DOUBLE_SIDED\n\tvLightBack = vLightBack * diffuse + ambient * ambientLightColor + emissive;\n#endif",
-lights_phong_pars_vertex:"#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\tvarying vec3 vWorldPosition;\n#endif",lights_phong_vertex:"#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\tvWorldPosition = worldPosition.xyz;\n#endif",lights_phong_pars_fragment:"uniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_HEMI_LIGHTS > 0\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#endif\n#if MAX_SPOT_LIGHTS > 0\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n#endif\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\tvarying vec3 vWorldPosition;\n#endif\n#ifdef WRAP_AROUND\n\tuniform vec3 wrapRGB;\n#endif\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;",
-lights_phong_fragment:"vec3 normal = normalize( vNormal );\nvec3 viewPosition = normalize( vViewPosition );\n#ifdef DOUBLE_SIDED\n\tnormal = normal * ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n#endif\n#ifdef USE_NORMALMAP\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n#if MAX_POINT_LIGHTS > 0\n\tvec3 pointDiffuse = vec3( 0.0 );\n\tvec3 pointSpecular = vec3( 0.0 );\n\tfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\t\tfloat lDistance = 1.0;\n\t\tif ( pointLightDistance[ i ] > 0.0 )\n\t\t\tlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\n\t\tlVector = normalize( lVector );\n\t\tfloat dotProduct = dot( normal, lVector );\n\t\t#ifdef WRAP_AROUND\n\t\t\tfloat pointDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat pointDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\t\t\tvec3 pointDiffuseWeight = mix( vec3( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n\t\t#else\n\t\t\tfloat pointDiffuseWeight = max( dotProduct, 0.0 );\n\t\t#endif\n\t\tpointDiffuse += diffuse * pointLightColor[ i ] * pointDiffuseWeight * lDistance;\n\t\tvec3 pointHalfVector = normalize( lVector + viewPosition );\n\t\tfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\n\t\tfloat pointSpecularWeight = specularStrength * max( pow( pointDotNormalHalf, shininess ), 0.0 );\n\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, pointHalfVector ), 0.0 ), 5.0 );\n\t\tpointSpecular += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * lDistance * specularNormalization;\n\t}\n#endif\n#if MAX_SPOT_LIGHTS > 0\n\tvec3 spotDiffuse = vec3( 0.0 );\n\tvec3 spotSpecular = vec3( 0.0 );\n\tfor ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\t\tfloat lDistance = 1.0;\n\t\tif ( spotLightDistance[ i ] > 0.0 )\n\t\t\tlDistance = 1.0 - min( ( length( lVector ) / spotLightDistance[ i ] ), 1.0 );\n\t\tlVector = normalize( lVector );\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\t\t\tspotEffect = max( pow( spotEffect, spotLightExponent[ i ] ), 0.0 );\n\t\t\tfloat dotProduct = dot( normal, lVector );\n\t\t\t#ifdef WRAP_AROUND\n\t\t\t\tfloat spotDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\t\tfloat spotDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\t\t\t\tvec3 spotDiffuseWeight = mix( vec3( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n\t\t\t#else\n\t\t\t\tfloat spotDiffuseWeight = max( dotProduct, 0.0 );\n\t\t\t#endif\n\t\t\tspotDiffuse += diffuse * spotLightColor[ i ] * spotDiffuseWeight * lDistance * spotEffect;\n\t\t\tvec3 spotHalfVector = normalize( lVector + viewPosition );\n\t\t\tfloat spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\n\t\t\tfloat spotSpecularWeight = specularStrength * max( pow( spotDotNormalHalf, shininess ), 0.0 );\n\t\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, spotHalfVector ), 0.0 ), 5.0 );\n\t\t\tspotSpecular += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * lDistance * specularNormalization * spotEffect;\n\t\t}\n\t}\n#endif\n#if MAX_DIR_LIGHTS > 0\n\tvec3 dirDiffuse = vec3( 0.0 );\n\tvec3 dirSpecular = vec3( 0.0 );\n\tfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\t\tvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\n\t\tvec3 dirVector = normalize( lDirection.xyz );\n\t\tfloat dotProduct = dot( normal, dirVector );\n\t\t#ifdef WRAP_AROUND\n\t\t\tfloat dirDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat dirDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\t\t\tvec3 dirDiffuseWeight = mix( vec3( dirDiffuseWeightFull ), vec3( dirDiffuseWeightHalf ), wrapRGB );\n\t\t#else\n\t\t\tfloat dirDiffuseWeight = max( dotProduct, 0.0 );\n\t\t#endif\n\t\tdirDiffuse += diffuse * directionalLightColor[ i ] * dirDiffuseWeight;\n\t\tvec3 dirHalfVector = normalize( dirVector + viewPosition );\n\t\tfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\n\t\tfloat dirSpecularWeight = specularStrength * max( pow( dirDotNormalHalf, shininess ), 0.0 );\n\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( dirVector, dirHalfVector ), 0.0 ), 5.0 );\n\t\tdirSpecular += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n\t}\n#endif\n#if MAX_HEMI_LIGHTS > 0\n\tvec3 hemiDiffuse = vec3( 0.0 );\n\tvec3 hemiSpecular = vec3( 0.0 );\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\t\tvec4 lDirection = viewMatrix * vec4( hemisphereLightDirection[ i ], 0.0 );\n\t\tvec3 lVector = normalize( lDirection.xyz );\n\t\tfloat dotProduct = dot( normal, lVector );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\t\tvec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\t\themiDiffuse += diffuse * hemiColor;\n\t\tvec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\n\t\tfloat hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\n\t\tfloat hemiSpecularWeightSky = specularStrength * max( pow( hemiDotNormalHalfSky, shininess ), 0.0 );\n\t\tvec3 lVectorGround = -lVector;\n\t\tvec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\n\t\tfloat hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\n\t\tfloat hemiSpecularWeightGround = specularStrength * max( pow( hemiDotNormalHalfGround, shininess ), 0.0 );\n\t\tfloat dotProductGround = dot( normal, lVectorGround );\n\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\tvec3 schlickSky = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, hemiHalfVectorSky ), 0.0 ), 5.0 );\n\t\tvec3 schlickGround = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 0.0 ), 5.0 );\n\t\themiSpecular += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n\t}\n#endif\nvec3 totalDiffuse = vec3( 0.0 );\nvec3 totalSpecular = vec3( 0.0 );\n#if MAX_DIR_LIGHTS > 0\n\ttotalDiffuse += dirDiffuse;\n\ttotalSpecular += dirSpecular;\n#endif\n#if MAX_HEMI_LIGHTS > 0\n\ttotalDiffuse += hemiDiffuse;\n\ttotalSpecular += hemiSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\n\ttotalDiffuse += pointDiffuse;\n\ttotalSpecular += pointSpecular;\n#endif\n#if MAX_SPOT_LIGHTS > 0\n\ttotalDiffuse += spotDiffuse;\n\ttotalSpecular += spotSpecular;\n#endif\n#ifdef METAL\n\tgl_FragColor.xyz = gl_FragColor.xyz * ( emissive + totalDiffuse + ambientLightColor * ambient + totalSpecular );\n#else\n\tgl_FragColor.xyz = gl_FragColor.xyz * ( emissive + totalDiffuse + ambientLightColor * ambient ) + totalSpecular;\n#endif",
-color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_fragment:"#ifdef USE_COLOR\n\tgl_FragColor = gl_FragColor * vec4( vColor, 1.0 );\n#endif",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\t#ifdef GAMMA_INPUT\n\t\tvColor = color * color;\n\t#else\n\t\tvColor = color;\n\t#endif\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureWidth;\n\t\tuniform int boneTextureHeight;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureWidth ) );\n\t\t\tfloat y = floor( j / float( boneTextureWidth ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureWidth );\n\t\t\tfloat dy = 1.0 / float( boneTextureHeight );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneGlobalMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneGlobalMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",
-skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\t#ifdef USE_MORPHTARGETS\n\tvec4 skinVertex = vec4( morphed, 1.0 );\n\t#else\n\tvec4 skinVertex = vec4( position, 1.0 );\n\t#endif\n\tvec4 skinned = boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n#endif",
-morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\tvec3 morphed = vec3( 0.0 );\n\tmorphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\tmorphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\tmorphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\tmorphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\tmorphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\tmorphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\tmorphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\tmorphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n\tmorphed += position;\n#endif",
-default_vertex:"vec4 mvPosition;\n#ifdef USE_SKINNING\n\tmvPosition = modelViewMatrix * skinned;\n#endif\n#if !defined( USE_SKINNING ) && defined( USE_MORPHTARGETS )\n\tmvPosition = modelViewMatrix * vec4( morphed, 1.0 );\n#endif\n#if !defined( USE_SKINNING ) && ! defined( USE_MORPHTARGETS )\n\tmvPosition = modelViewMatrix * vec4( position, 1.0 );\n#endif\ngl_Position = projectionMatrix * mvPosition;",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tvec3 morphedNormal = vec3( 0.0 );\n\tmorphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tmorphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tmorphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tmorphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n\tmorphedNormal += normal;\n#endif",
-skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = skinWeight.x * boneMatX;\n\tskinMatrix \t+= skinWeight.y * boneMatY;\n\tskinMatrix \t+= skinWeight.z * boneMatZ;\n\tskinMatrix \t+= skinWeight.w * boneMatW;\n\t#ifdef USE_MORPHNORMALS\n\tvec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );\n\t#else\n\tvec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );\n\t#endif\n#endif",defaultnormal_vertex:"vec3 objectNormal;\n#ifdef USE_SKINNING\n\tobjectNormal = skinnedNormal.xyz;\n#endif\n#if !defined( USE_SKINNING ) && defined( USE_MORPHNORMALS )\n\tobjectNormal = morphedNormal;\n#endif\n#if !defined( USE_SKINNING ) && ! defined( USE_MORPHNORMALS )\n\tobjectNormal = normal;\n#endif\n#ifdef FLIP_SIDED\n\tobjectNormal = -objectNormal;\n#endif\nvec3 transformedNormal = normalMatrix * objectNormal;",
-shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\tuniform sampler2D shadowMap[ MAX_SHADOWS ];\n\tuniform vec2 shadowMapSize[ MAX_SHADOWS ];\n\tuniform float shadowDarkness[ MAX_SHADOWS ];\n\tuniform float shadowBias[ MAX_SHADOWS ];\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\tfloat unpackDepth( const in vec4 rgba_depth ) {\n\t\tconst vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\n\t\tfloat depth = dot( rgba_depth, bit_shift );\n\t\treturn depth;\n\t}\n#endif",
-shadowmap_fragment:"#ifdef USE_SHADOWMAP\n\t#ifdef SHADOWMAP_DEBUG\n\t\tvec3 frustumColors[3];\n\t\tfrustumColors[0] = vec3( 1.0, 0.5, 0.0 );\n\t\tfrustumColors[1] = vec3( 0.0, 1.0, 0.8 );\n\t\tfrustumColors[2] = vec3( 0.0, 0.5, 1.0 );\n\t#endif\n\t#ifdef SHADOWMAP_CASCADE\n\t\tint inFrustumCount = 0;\n\t#endif\n\tfloat fDepth;\n\tvec3 shadowColor = vec3( 1.0 );\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\t\tvec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\t#ifdef SHADOWMAP_CASCADE\n\t\t\tinFrustumCount += int( inFrustum );\n\t\t\tbvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );\n\t\t#else\n\t\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\t#endif\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t\tshadowCoord.z += shadowBias[ i ];\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\t\tfloat shadow = 0.0;\n\t\t\t\tconst float shadowDelta = 1.0 / 9.0;\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\t\t\t\tfloat dx0 = -1.25 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.25 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.25 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.25 * yPixelOffset;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\t\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\t\tfloat shadow = 0.0;\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\t\t\t\tfloat dx0 = -1.0 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.0 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.0 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.0 * yPixelOffset;\n\t\t\t\tmat3 shadowKernel;\n\t\t\t\tmat3 depthKernel;\n\t\t\t\tdepthKernel[0][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tdepthKernel[0][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tdepthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tdepthKernel[1][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tdepthKernel[1][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tdepthKernel[1][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tdepthKernel[2][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tdepthKernel[2][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tdepthKernel[2][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\t\t\t\tvec3 shadowZ = vec3( shadowCoord.z );\n\t\t\t\tshadowKernel[0] = vec3(lessThan(depthKernel[0], shadowZ ));\n\t\t\t\tshadowKernel[0] *= vec3(0.25);\n\t\t\t\tshadowKernel[1] = vec3(lessThan(depthKernel[1], shadowZ ));\n\t\t\t\tshadowKernel[1] *= vec3(0.25);\n\t\t\t\tshadowKernel[2] = vec3(lessThan(depthKernel[2], shadowZ ));\n\t\t\t\tshadowKernel[2] *= vec3(0.25);\n\t\t\t\tvec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[i].xy );\n\t\t\t\tshadowKernel[0] = mix( shadowKernel[1], shadowKernel[0], fractionalCoord.x );\n\t\t\t\tshadowKernel[1] = mix( shadowKernel[2], shadowKernel[1], fractionalCoord.x );\n\t\t\t\tvec4 shadowValues;\n\t\t\t\tshadowValues.x = mix( shadowKernel[0][1], shadowKernel[0][0], fractionalCoord.y );\n\t\t\t\tshadowValues.y = mix( shadowKernel[0][2], shadowKernel[0][1], fractionalCoord.y );\n\t\t\t\tshadowValues.z = mix( shadowKernel[1][1], shadowKernel[1][0], fractionalCoord.y );\n\t\t\t\tshadowValues.w = mix( shadowKernel[1][2], shadowKernel[1][1], fractionalCoord.y );\n\t\t\t\tshadow = dot( shadowValues, vec4( 1.0 ) );\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\t\t\t#else\n\t\t\t\tvec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\n\t\t\t\tfloat fDepth = unpackDepth( rgbaDepth );\n\t\t\t\tif ( fDepth < shadowCoord.z )\n\t\t\t\t\tshadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ i ] );\n\t\t\t#endif\n\t\t}\n\t\t#ifdef SHADOWMAP_DEBUG\n\t\t\t#ifdef SHADOWMAP_CASCADE\n\t\t\t\tif ( inFrustum && inFrustumCount == 1 ) gl_FragColor.xyz *= frustumColors[ i ];\n\t\t\t#else\n\t\t\t\tif ( inFrustum ) gl_FragColor.xyz *= frustumColors[ i ];\n\t\t\t#endif\n\t\t#endif\n\t}\n\t#ifdef GAMMA_OUTPUT\n\t\tshadowColor *= shadowColor;\n\t#endif\n\tgl_FragColor.xyz = gl_FragColor.xyz * shadowColor;\n#endif",
-shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\tuniform mat4 shadowMatrix[ MAX_SHADOWS ];\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\t\tvShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n\t}\n#endif",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( gl_FragColor.a < ALPHATEST ) discard;\n#endif",linear_to_gamma_fragment:"#ifdef GAMMA_OUTPUT\n\tgl_FragColor.xyz = sqrt( gl_FragColor.xyz );\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif",
-logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\tgl_Position.z = log2(max(1e-6, gl_Position.w + 1.0)) * logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n#else\n\t\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\n\t#endif\n#endif",logdepthbuf_pars_fragment:"#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\t#extension GL_EXT_frag_depth : enable\n\t\tvarying float vFragDepth;\n\t#endif\n#endif",logdepthbuf_fragment:"#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\n\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\n#endif"};THREE.UniformsUtils={merge:function(a){var b,c,d,e={};for(b=0;b<a.length;b++)for(c in d=this.clone(a[b]),d)e[c]=d[c];return e},clone:function(a){var b,c,d,e={};for(b in a)for(c in e[b]={},a[b])d=a[b][c],e[b][c]=d instanceof THREE.Color||d instanceof THREE.Vector2||d instanceof THREE.Vector3||d instanceof THREE.Vector4||d instanceof THREE.Matrix4||d instanceof THREE.Texture?d.clone():d instanceof Array?d.slice():d;return e}};THREE.UniformsLib={common:{diffuse:{type:"c",value:new THREE.Color(15658734)},opacity:{type:"f",value:1},map:{type:"t",value:null},offsetRepeat:{type:"v4",value:new THREE.Vector4(0,0,1,1)},lightMap:{type:"t",value:null},specularMap:{type:"t",value:null},envMap:{type:"t",value:null},flipEnvMap:{type:"f",value:-1},useRefract:{type:"i",value:0},reflectivity:{type:"f",value:1},refractionRatio:{type:"f",value:0.98},combine:{type:"i",value:0},morphTargetInfluences:{type:"f",value:0}},bump:{bumpMap:{type:"t",
-value:null},bumpScale:{type:"f",value:1}},normalmap:{normalMap:{type:"t",value:null},normalScale:{type:"v2",value:new THREE.Vector2(1,1)}},fog:{fogDensity:{type:"f",value:2.5E-4},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},fogColor:{type:"c",value:new THREE.Color(16777215)}},lights:{ambientLightColor:{type:"fv",value:[]},directionalLightDirection:{type:"fv",value:[]},directionalLightColor:{type:"fv",value:[]},hemisphereLightDirection:{type:"fv",value:[]},hemisphereLightSkyColor:{type:"fv",
-value:[]},hemisphereLightGroundColor:{type:"fv",value:[]},pointLightColor:{type:"fv",value:[]},pointLightPosition:{type:"fv",value:[]},pointLightDistance:{type:"fv1",value:[]},spotLightColor:{type:"fv",value:[]},spotLightPosition:{type:"fv",value:[]},spotLightDirection:{type:"fv",value:[]},spotLightDistance:{type:"fv1",value:[]},spotLightAngleCos:{type:"fv1",value:[]},spotLightExponent:{type:"fv1",value:[]}},particle:{psColor:{type:"c",value:new THREE.Color(15658734)},opacity:{type:"f",value:1},size:{type:"f",
-value:1},scale:{type:"f",value:1},map:{type:"t",value:null},fogDensity:{type:"f",value:2.5E-4},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},fogColor:{type:"c",value:new THREE.Color(16777215)}},shadowmap:{shadowMap:{type:"tv",value:[]},shadowMapSize:{type:"v2v",value:[]},shadowBias:{type:"fv1",value:[]},shadowDarkness:{type:"fv1",value:[]},shadowMatrix:{type:"m4v",value:[]}}};THREE.ShaderLib={basic:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.shadowmap]),vertexShader:[THREE.ShaderChunk.map_pars_vertex,THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.map_vertex,
-THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.color_vertex,THREE.ShaderChunk.skinbase_vertex,"\t#ifdef USE_ENVMAP",THREE.ShaderChunk.morphnormal_vertex,THREE.ShaderChunk.skinnormal_vertex,THREE.ShaderChunk.defaultnormal_vertex,"\t#endif",THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,THREE.ShaderChunk.worldpos_vertex,THREE.ShaderChunk.envmap_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),
-fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,THREE.ShaderChunk.specularmap_pars_fragment,THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\n\tgl_FragColor = vec4( diffuse, opacity );",THREE.ShaderChunk.logdepthbuf_fragment,THREE.ShaderChunk.map_fragment,
-THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.specularmap_fragment,THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},lambert:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{ambient:{type:"c",value:new THREE.Color(16777215)},
-emissive:{type:"c",value:new THREE.Color(0)},wrapRGB:{type:"v3",value:new THREE.Vector3(1,1,1)}}]),vertexShader:["#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif",THREE.ShaderChunk.map_pars_vertex,THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.lights_lambert_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,
-THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.map_vertex,THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.color_vertex,THREE.ShaderChunk.morphnormal_vertex,THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.skinnormal_vertex,THREE.ShaderChunk.defaultnormal_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,THREE.ShaderChunk.worldpos_vertex,THREE.ShaderChunk.envmap_vertex,
-THREE.ShaderChunk.lights_lambert_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,THREE.ShaderChunk.specularmap_pars_fragment,THREE.ShaderChunk.logdepthbuf_pars_fragment,
-"void main() {\n\tgl_FragColor = vec4( vec3( 1.0 ), opacity );",THREE.ShaderChunk.logdepthbuf_fragment,THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.specularmap_fragment,"\t#ifdef DOUBLE_SIDED\n\t\tif ( gl_FrontFacing )\n\t\t\tgl_FragColor.xyz *= vLightFront;\n\t\telse\n\t\t\tgl_FragColor.xyz *= vLightBack;\n\t#else\n\t\tgl_FragColor.xyz *= vLightFront;\n\t#endif",THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,
-THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},phong:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.bump,THREE.UniformsLib.normalmap,THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{ambient:{type:"c",value:new THREE.Color(16777215)},emissive:{type:"c",value:new THREE.Color(0)},specular:{type:"c",value:new THREE.Color(1118481)},shininess:{type:"f",value:30},wrapRGB:{type:"v3",
-value:new THREE.Vector3(1,1,1)}}]),vertexShader:["#define PHONG\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;",THREE.ShaderChunk.map_pars_vertex,THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.lights_phong_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.map_vertex,
-THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.color_vertex,THREE.ShaderChunk.morphnormal_vertex,THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.skinnormal_vertex,THREE.ShaderChunk.defaultnormal_vertex,"\tvNormal = normalize( transformedNormal );",THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"\tvViewPosition = -mvPosition.xyz;",THREE.ShaderChunk.worldpos_vertex,THREE.ShaderChunk.envmap_vertex,
-THREE.ShaderChunk.lights_phong_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;\nuniform vec3 ambient;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.lights_phong_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,
-THREE.ShaderChunk.bumpmap_pars_fragment,THREE.ShaderChunk.normalmap_pars_fragment,THREE.ShaderChunk.specularmap_pars_fragment,THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\n\tgl_FragColor = vec4( vec3( 1.0 ), opacity );",THREE.ShaderChunk.logdepthbuf_fragment,THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.specularmap_fragment,THREE.ShaderChunk.lights_phong_fragment,THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,
-THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},particle_basic:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.particle,THREE.UniformsLib.shadowmap]),vertexShader:["uniform float size;\nuniform float scale;",THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.color_vertex,"\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\t#ifdef USE_SIZEATTENUATION\n\t\tgl_PointSize = size * ( scale / length( mvPosition.xyz ) );\n\t#else\n\t\tgl_PointSize = size;\n\t#endif\n\tgl_Position = projectionMatrix * mvPosition;",
-THREE.ShaderChunk.logdepthbuf_vertex,THREE.ShaderChunk.worldpos_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 psColor;\nuniform float opacity;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_particle_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\n\tgl_FragColor = vec4( psColor, opacity );",THREE.ShaderChunk.logdepthbuf_fragment,THREE.ShaderChunk.map_particle_fragment,
-THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},dashed:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,{scale:{type:"f",value:1},dashSize:{type:"f",value:1},totalSize:{type:"f",value:2}}]),vertexShader:["uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;",THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,
-"void main() {",THREE.ShaderChunk.color_vertex,"\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;",THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.logdepthbuf_pars_fragment,
-"void main() {\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tgl_FragColor = vec4( diffuse, opacity );",THREE.ShaderChunk.logdepthbuf_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},depth:{uniforms:{mNear:{type:"f",value:1},mFar:{type:"f",value:2E3},opacity:{type:"f",value:1}},vertexShader:[THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.morphtarget_vertex,
-THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform float mNear;\nuniform float mFar;\nuniform float opacity;",THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {",THREE.ShaderChunk.logdepthbuf_fragment,"\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\t#else\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t#endif\n\tfloat color = 1.0 - smoothstep( mNear, mFar, depth );\n\tgl_FragColor = vec4( vec3( color ), opacity );\n}"].join("\n")},
-normal:{uniforms:{opacity:{type:"f",value:1}},vertexShader:["varying vec3 vNormal;",THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {\n\tvNormal = normalize( normalMatrix * normal );",THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform float opacity;\nvarying vec3 vNormal;",THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\n\tgl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );",
-THREE.ShaderChunk.logdepthbuf_fragment,"}"].join("\n")},normalmap:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{enableAO:{type:"i",value:0},enableDiffuse:{type:"i",value:0},enableSpecular:{type:"i",value:0},enableReflection:{type:"i",value:0},enableDisplacement:{type:"i",value:0},tDisplacement:{type:"t",value:null},tDiffuse:{type:"t",value:null},tCube:{type:"t",value:null},tNormal:{type:"t",value:null},tSpecular:{type:"t",value:null},
-tAO:{type:"t",value:null},uNormalScale:{type:"v2",value:new THREE.Vector2(1,1)},uDisplacementBias:{type:"f",value:0},uDisplacementScale:{type:"f",value:1},diffuse:{type:"c",value:new THREE.Color(16777215)},specular:{type:"c",value:new THREE.Color(1118481)},ambient:{type:"c",value:new THREE.Color(16777215)},shininess:{type:"f",value:30},opacity:{type:"f",value:1},useRefract:{type:"i",value:0},refractionRatio:{type:"f",value:0.98},reflectivity:{type:"f",value:0.5},uOffset:{type:"v2",value:new THREE.Vector2(0,
-0)},uRepeat:{type:"v2",value:new THREE.Vector2(1,1)},wrapRGB:{type:"v3",value:new THREE.Vector3(1,1,1)}}]),fragmentShader:["uniform vec3 ambient;\nuniform vec3 diffuse;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\nuniform bool enableDiffuse;\nuniform bool enableSpecular;\nuniform bool enableAO;\nuniform bool enableReflection;\nuniform sampler2D tDiffuse;\nuniform sampler2D tNormal;\nuniform sampler2D tSpecular;\nuniform sampler2D tAO;\nuniform samplerCube tCube;\nuniform vec2 uNormalScale;\nuniform bool useRefract;\nuniform float refractionRatio;\nuniform float reflectivity;\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_HEMI_LIGHTS > 0\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#endif\n#if MAX_SPOT_LIGHTS > 0\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n#endif\n#ifdef WRAP_AROUND\n\tuniform vec3 wrapRGB;\n#endif\nvarying vec3 vWorldPosition;\nvarying vec3 vViewPosition;",
-THREE.ShaderChunk.shadowmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {",THREE.ShaderChunk.logdepthbuf_fragment,"\tgl_FragColor = vec4( vec3( 1.0 ), opacity );\n\tvec3 specularTex = vec3( 1.0 );\n\tvec3 normalTex = texture2D( tNormal, vUv ).xyz * 2.0 - 1.0;\n\tnormalTex.xy *= uNormalScale;\n\tnormalTex = normalize( normalTex );\n\tif( enableDiffuse ) {\n\t\t#ifdef GAMMA_INPUT\n\t\t\tvec4 texelColor = texture2D( tDiffuse, vUv );\n\t\t\ttexelColor.xyz *= texelColor.xyz;\n\t\t\tgl_FragColor = gl_FragColor * texelColor;\n\t\t#else\n\t\t\tgl_FragColor = gl_FragColor * texture2D( tDiffuse, vUv );\n\t\t#endif\n\t}\n\tif( enableAO ) {\n\t\t#ifdef GAMMA_INPUT\n\t\t\tvec4 aoColor = texture2D( tAO, vUv );\n\t\t\taoColor.xyz *= aoColor.xyz;\n\t\t\tgl_FragColor.xyz = gl_FragColor.xyz * aoColor.xyz;\n\t\t#else\n\t\t\tgl_FragColor.xyz = gl_FragColor.xyz * texture2D( tAO, vUv ).xyz;\n\t\t#endif\n\t}\n\tif( enableSpecular )\n\t\tspecularTex = texture2D( tSpecular, vUv ).xyz;\n\tmat3 tsb = mat3( normalize( vTangent ), normalize( vBinormal ), normalize( vNormal ) );\n\tvec3 finalNormal = tsb * normalTex;\n\t#ifdef FLIP_SIDED\n\t\tfinalNormal = -finalNormal;\n\t#endif\n\tvec3 normal = normalize( finalNormal );\n\tvec3 viewPosition = normalize( vViewPosition );\n\t#if MAX_POINT_LIGHTS > 0\n\t\tvec3 pointDiffuse = vec3( 0.0 );\n\t\tvec3 pointSpecular = vec3( 0.0 );\n\t\tfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\t\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\t\tvec3 pointVector = lPosition.xyz + vViewPosition.xyz;\n\t\t\tfloat pointDistance = 1.0;\n\t\t\tif ( pointLightDistance[ i ] > 0.0 )\n\t\t\t\tpointDistance = 1.0 - min( ( length( pointVector ) / pointLightDistance[ i ] ), 1.0 );\n\t\t\tpointVector = normalize( pointVector );\n\t\t\t#ifdef WRAP_AROUND\n\t\t\t\tfloat pointDiffuseWeightFull = max( dot( normal, pointVector ), 0.0 );\n\t\t\t\tfloat pointDiffuseWeightHalf = max( 0.5 * dot( normal, pointVector ) + 0.5, 0.0 );\n\t\t\t\tvec3 pointDiffuseWeight = mix( vec3( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n\t\t\t#else\n\t\t\t\tfloat pointDiffuseWeight = max( dot( normal, pointVector ), 0.0 );\n\t\t\t#endif\n\t\t\tpointDiffuse += pointDistance * pointLightColor[ i ] * diffuse * pointDiffuseWeight;\n\t\t\tvec3 pointHalfVector = normalize( pointVector + viewPosition );\n\t\t\tfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\n\t\t\tfloat pointSpecularWeight = specularTex.r * max( pow( pointDotNormalHalf, shininess ), 0.0 );\n\t\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( pointVector, pointHalfVector ), 5.0 );\n\t\t\tpointSpecular += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * pointDistance * specularNormalization;\n\t\t}\n\t#endif\n\t#if MAX_SPOT_LIGHTS > 0\n\t\tvec3 spotDiffuse = vec3( 0.0 );\n\t\tvec3 spotSpecular = vec3( 0.0 );\n\t\tfor ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\t\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\t\tvec3 spotVector = lPosition.xyz + vViewPosition.xyz;\n\t\t\tfloat spotDistance = 1.0;\n\t\t\tif ( spotLightDistance[ i ] > 0.0 )\n\t\t\t\tspotDistance = 1.0 - min( ( length( spotVector ) / spotLightDistance[ i ] ), 1.0 );\n\t\t\tspotVector = normalize( spotVector );\n\t\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\n\t\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\t\t\t\tspotEffect = max( pow( spotEffect, spotLightExponent[ i ] ), 0.0 );\n\t\t\t\t#ifdef WRAP_AROUND\n\t\t\t\t\tfloat spotDiffuseWeightFull = max( dot( normal, spotVector ), 0.0 );\n\t\t\t\t\tfloat spotDiffuseWeightHalf = max( 0.5 * dot( normal, spotVector ) + 0.5, 0.0 );\n\t\t\t\t\tvec3 spotDiffuseWeight = mix( vec3( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n\t\t\t\t#else\n\t\t\t\t\tfloat spotDiffuseWeight = max( dot( normal, spotVector ), 0.0 );\n\t\t\t\t#endif\n\t\t\t\tspotDiffuse += spotDistance * spotLightColor[ i ] * diffuse * spotDiffuseWeight * spotEffect;\n\t\t\t\tvec3 spotHalfVector = normalize( spotVector + viewPosition );\n\t\t\t\tfloat spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\n\t\t\t\tfloat spotSpecularWeight = specularTex.r * max( pow( spotDotNormalHalf, shininess ), 0.0 );\n\t\t\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\t\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( spotVector, spotHalfVector ), 5.0 );\n\t\t\t\tspotSpecular += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * spotDistance * specularNormalization * spotEffect;\n\t\t\t}\n\t\t}\n\t#endif\n\t#if MAX_DIR_LIGHTS > 0\n\t\tvec3 dirDiffuse = vec3( 0.0 );\n\t\tvec3 dirSpecular = vec3( 0.0 );\n\t\tfor( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {\n\t\t\tvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\n\t\t\tvec3 dirVector = normalize( lDirection.xyz );\n\t\t\t#ifdef WRAP_AROUND\n\t\t\t\tfloat directionalLightWeightingFull = max( dot( normal, dirVector ), 0.0 );\n\t\t\t\tfloat directionalLightWeightingHalf = max( 0.5 * dot( normal, dirVector ) + 0.5, 0.0 );\n\t\t\t\tvec3 dirDiffuseWeight = mix( vec3( directionalLightWeightingFull ), vec3( directionalLightWeightingHalf ), wrapRGB );\n\t\t\t#else\n\t\t\t\tfloat dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );\n\t\t\t#endif\n\t\t\tdirDiffuse += directionalLightColor[ i ] * diffuse * dirDiffuseWeight;\n\t\t\tvec3 dirHalfVector = normalize( dirVector + viewPosition );\n\t\t\tfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\n\t\t\tfloat dirSpecularWeight = specularTex.r * max( pow( dirDotNormalHalf, shininess ), 0.0 );\n\t\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( dirVector, dirHalfVector ), 5.0 );\n\t\t\tdirSpecular += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n\t\t}\n\t#endif\n\t#if MAX_HEMI_LIGHTS > 0\n\t\tvec3 hemiDiffuse = vec3( 0.0 );\n\t\tvec3 hemiSpecular = vec3( 0.0 );\n\t\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\t\t\tvec4 lDirection = viewMatrix * vec4( hemisphereLightDirection[ i ], 0.0 );\n\t\t\tvec3 lVector = normalize( lDirection.xyz );\n\t\t\tfloat dotProduct = dot( normal, lVector );\n\t\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\t\t\tvec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\t\t\themiDiffuse += diffuse * hemiColor;\n\t\t\tvec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\n\t\t\tfloat hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\n\t\t\tfloat hemiSpecularWeightSky = specularTex.r * max( pow( hemiDotNormalHalfSky, shininess ), 0.0 );\n\t\t\tvec3 lVectorGround = -lVector;\n\t\t\tvec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\n\t\t\tfloat hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\n\t\t\tfloat hemiSpecularWeightGround = specularTex.r * max( pow( hemiDotNormalHalfGround, shininess ), 0.0 );\n\t\t\tfloat dotProductGround = dot( normal, lVectorGround );\n\t\t\tfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\n\t\t\tvec3 schlickSky = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( lVector, hemiHalfVectorSky ), 5.0 );\n\t\t\tvec3 schlickGround = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 5.0 );\n\t\t\themiSpecular += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n\t\t}\n\t#endif\n\tvec3 totalDiffuse = vec3( 0.0 );\n\tvec3 totalSpecular = vec3( 0.0 );\n\t#if MAX_DIR_LIGHTS > 0\n\t\ttotalDiffuse += dirDiffuse;\n\t\ttotalSpecular += dirSpecular;\n\t#endif\n\t#if MAX_HEMI_LIGHTS > 0\n\t\ttotalDiffuse += hemiDiffuse;\n\t\ttotalSpecular += hemiSpecular;\n\t#endif\n\t#if MAX_POINT_LIGHTS > 0\n\t\ttotalDiffuse += pointDiffuse;\n\t\ttotalSpecular += pointSpecular;\n\t#endif\n\t#if MAX_SPOT_LIGHTS > 0\n\t\ttotalDiffuse += spotDiffuse;\n\t\ttotalSpecular += spotSpecular;\n\t#endif\n\t#ifdef METAL\n\t\tgl_FragColor.xyz = gl_FragColor.xyz * ( totalDiffuse + ambientLightColor * ambient + totalSpecular );\n\t#else\n\t\tgl_FragColor.xyz = gl_FragColor.xyz * ( totalDiffuse + ambientLightColor * ambient ) + totalSpecular;\n\t#endif\n\tif ( enableReflection ) {\n\t\tvec3 vReflect;\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tif ( useRefract ) {\n\t\t\tvReflect = refract( cameraToVertex, normal, refractionRatio );\n\t\t} else {\n\t\t\tvReflect = reflect( cameraToVertex, normal );\n\t\t}\n\t\tvec4 cubeColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );\n\t\t#ifdef GAMMA_INPUT\n\t\t\tcubeColor.xyz *= cubeColor.xyz;\n\t\t#endif\n\t\tgl_FragColor.xyz = mix( gl_FragColor.xyz, cubeColor.xyz, specularTex.r * reflectivity );\n\t}",
-THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n"),vertexShader:["attribute vec4 tangent;\nuniform vec2 uOffset;\nuniform vec2 uRepeat;\nuniform bool enableDisplacement;\n#ifdef VERTEX_TEXTURES\n\tuniform sampler2D tDisplacement;\n\tuniform float uDisplacementScale;\n\tuniform float uDisplacementBias;\n#endif\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vViewPosition;",
-THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.skinnormal_vertex,"\t#ifdef USE_SKINNING\n\t\tvNormal = normalize( normalMatrix * skinnedNormal.xyz );\n\t\tvec4 skinnedTangent = skinMatrix * vec4( tangent.xyz, 0.0 );\n\t\tvTangent = normalize( normalMatrix * skinnedTangent.xyz );\n\t#else\n\t\tvNormal = normalize( normalMatrix * normal );\n\t\tvTangent = normalize( normalMatrix * tangent.xyz );\n\t#endif\n\tvBinormal = normalize( cross( vNormal, vTangent ) * tangent.w );\n\tvUv = uv * uRepeat + uOffset;\n\tvec3 displacedPosition;\n\t#ifdef VERTEX_TEXTURES\n\t\tif ( enableDisplacement ) {\n\t\t\tvec3 dv = texture2D( tDisplacement, uv ).xyz;\n\t\t\tfloat df = uDisplacementScale * dv.x + uDisplacementBias;\n\t\t\tdisplacedPosition = position + normalize( normal ) * df;\n\t\t} else {\n\t\t\t#ifdef USE_SKINNING\n\t\t\t\tvec4 skinVertex = vec4( position, 1.0 );\n\t\t\t\tvec4 skinned = boneMatX * skinVertex * skinWeight.x;\n\t\t\t\tskinned \t += boneMatY * skinVertex * skinWeight.y;\n\t\t\t\tskinned \t += boneMatZ * skinVertex * skinWeight.z;\n\t\t\t\tskinned \t += boneMatW * skinVertex * skinWeight.w;\n\t\t\t\tdisplacedPosition = skinned.xyz;\n\t\t\t#else\n\t\t\t\tdisplacedPosition = position;\n\t\t\t#endif\n\t\t}\n\t#else\n\t\t#ifdef USE_SKINNING\n\t\t\tvec4 skinVertex = vec4( position, 1.0 );\n\t\t\tvec4 skinned = boneMatX * skinVertex * skinWeight.x;\n\t\t\tskinned \t += boneMatY * skinVertex * skinWeight.y;\n\t\t\tskinned \t += boneMatZ * skinVertex * skinWeight.z;\n\t\t\tskinned \t += boneMatW * skinVertex * skinWeight.w;\n\t\t\tdisplacedPosition = skinned.xyz;\n\t\t#else\n\t\t\tdisplacedPosition = position;\n\t\t#endif\n\t#endif\n\tvec4 mvPosition = modelViewMatrix * vec4( displacedPosition, 1.0 );\n\tvec4 worldPosition = modelMatrix * vec4( displacedPosition, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;",
-THREE.ShaderChunk.logdepthbuf_vertex,"\tvWorldPosition = worldPosition.xyz;\n\tvViewPosition = -mvPosition.xyz;\n\t#ifdef USE_SHADOWMAP\n\t\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\t\t\tvShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n\t\t}\n\t#endif\n}"].join("\n")},cube:{uniforms:{tCube:{type:"t",value:null},tFlip:{type:"f",value:-1}},vertexShader:["varying vec3 vWorldPosition;",THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {\n\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\tvWorldPosition = worldPosition.xyz;\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
-THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform samplerCube tCube;\nuniform float tFlip;\nvarying vec3 vWorldPosition;",THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );",THREE.ShaderChunk.logdepthbuf_fragment,"}"].join("\n")},depthRGBA:{uniforms:{},vertexShader:[THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,
-"void main() {",THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:[THREE.ShaderChunk.logdepthbuf_pars_fragment,"vec4 pack_depth( const in float depth ) {\n\tconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );\n\tconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );\n\tvec4 res = mod( depth * bit_shift * vec4( 255 ), vec4( 256 ) ) / vec4( 255 );\n\tres -= res.xxyz * bit_mask;\n\treturn res;\n}\nvoid main() {",
-THREE.ShaderChunk.logdepthbuf_fragment,"\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tgl_FragData[ 0 ] = pack_depth( gl_FragDepthEXT );\n\t#else\n\t\tgl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );\n\t#endif\n}"].join("\n")}};THREE.WebGLRenderer=function(a){function b(a,b){var c=a.vertices.length,d=b.material;if(d.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var e in d.attributes){var f=d.attributes[e];if(!f.__webglInitialized||f.createUniqueBuffers){f.__webglInitialized=!0;var g=1;"v2"===f.type?g=2:"v3"===f.type?g=3:"v4"===f.type?g=4:"c"===f.type&&(g=3);f.size=g;f.array=new Float32Array(c*g);f.buffer=m.createBuffer();f.buffer.belongsToAttribute=e;f.needsUpdate=!0}a.__webglCustomAttributesList.push(f)}}}
-function c(a,b){var c=b.geometry,g=a.faces3,h=3*g.length,k=1*g.length,l=3*g.length,g=d(b,a),n=f(g),p=e(g),q=g.vertexColors?g.vertexColors:!1;a.__vertexArray=new Float32Array(3*h);p&&(a.__normalArray=new Float32Array(3*h));c.hasTangents&&(a.__tangentArray=new Float32Array(4*h));q&&(a.__colorArray=new Float32Array(3*h));n&&(0<c.faceVertexUvs.length&&(a.__uvArray=new Float32Array(2*h)),1<c.faceVertexUvs.length&&(a.__uv2Array=new Float32Array(2*h)));b.geometry.skinWeights.length&&b.geometry.skinIndices.length&&
-(a.__skinIndexArray=new Float32Array(4*h),a.__skinWeightArray=new Float32Array(4*h));c=null!==pb&&21845<k?Uint32Array:Uint16Array;a.__typeArray=c;a.__faceArray=new c(3*k);a.__lineArray=new c(2*l);if(a.numMorphTargets)for(a.__morphTargetsArrays=[],c=0,n=a.numMorphTargets;c<n;c++)a.__morphTargetsArrays.push(new Float32Array(3*h));if(a.numMorphNormals)for(a.__morphNormalsArrays=[],c=0,n=a.numMorphNormals;c<n;c++)a.__morphNormalsArrays.push(new Float32Array(3*h));a.__webglFaceCount=3*k;a.__webglLineCount=
-2*l;if(g.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var r in g.attributes){var k=g.attributes[r],l={},s;for(s in k)l[s]=k[s];if(!l.__webglInitialized||l.createUniqueBuffers)l.__webglInitialized=!0,c=1,"v2"===l.type?c=2:"v3"===l.type?c=3:"v4"===l.type?c=4:"c"===l.type&&(c=3),l.size=c,l.array=new Float32Array(h*c),l.buffer=m.createBuffer(),l.buffer.belongsToAttribute=r,k.needsUpdate=!0,l.__original=k;a.__webglCustomAttributesList.push(l)}}a.__inittedArrays=
-!0}function d(a,b){return a.material instanceof THREE.MeshFaceMaterial?a.material.materials[b.materialIndex]:a.material}function e(a){return a instanceof THREE.MeshBasicMaterial&&!a.envMap||a instanceof THREE.MeshDepthMaterial?!1:a&&void 0!==a.shading&&a.shading===THREE.SmoothShading?THREE.SmoothShading:THREE.FlatShading}function f(a){return a.map||a.lightMap||a.bumpMap||a.normalMap||a.specularMap||a instanceof THREE.ShaderMaterial?!0:!1}function g(a,b,c,d){for(var e in b){var f=b[e],g=c[e];if(0<=
-f)if(g){var h=g.itemSize;m.bindBuffer(m.ARRAY_BUFFER,g.buffer);k(f);m.vertexAttribPointer(f,h,m.FLOAT,!1,0,d*h*4)}else a.defaultAttributeValues&&(2===a.defaultAttributeValues[e].length?m.vertexAttrib2fv(f,a.defaultAttributeValues[e]):3===a.defaultAttributeValues[e].length&&m.vertexAttrib3fv(f,a.defaultAttributeValues[e]))}l()}function h(){for(var a=0,b=Ka.length;a<b;a++)Ka[a]=0}function k(a){Ka[a]=1;0===ob[a]&&(m.enableVertexAttribArray(a),ob[a]=1)}function l(){for(var a=0,b=ob.length;a<b;a++)ob[a]!==
-Ka[a]&&(m.disableVertexAttribArray(a),ob[a]=0)}function n(a,b){return a.z!==b.z?b.z-a.z:a.id-b.id}function q(a,b){return b[0]-a[0]}function p(a,b,c){if(a.length)for(var d=0,e=a.length;d<e;d++)Ia=wa=null,fa=za=ha=Ga=ma=ia=Oa=-1,cb=!0,a[d].render(b,c,ja,ra),Ia=wa=null,fa=za=ha=Ga=ma=ia=Oa=-1,cb=!0}function s(a,b,c,d,e,f,g,h){var k,m,l,n;b?(m=a.length-1,n=b=-1):(m=0,b=a.length,n=1);for(var p=m;p!==b;p+=n)if(k=a[p],k.render){m=k.object;l=k.buffer;if(h)k=h;else{k=k[c];if(!k)continue;g&&P.setBlending(k.blending,
-k.blendEquation,k.blendSrc,k.blendDst);P.setDepthTest(k.depthTest);P.setDepthWrite(k.depthWrite);G(k.polygonOffset,k.polygonOffsetFactor,k.polygonOffsetUnits)}P.setMaterialFaces(k);l instanceof THREE.BufferGeometry?P.renderBufferDirect(d,e,f,k,l,m):P.renderBuffer(d,e,f,k,l,m)}}function t(a,b,c,d,e,f,g){for(var h,k,m=0,l=a.length;m<l;m++)if(h=a[m],k=h.object,k.visible){if(g)h=g;else{h=h[b];if(!h)continue;f&&P.setBlending(h.blending,h.blendEquation,h.blendSrc,h.blendDst);P.setDepthTest(h.depthTest);
-P.setDepthWrite(h.depthWrite);G(h.polygonOffset,h.polygonOffsetFactor,h.polygonOffsetUnits)}P.renderImmediateObject(c,d,e,h,k)}}function r(a,d){var e,f,g;if(void 0===a.__webglInit&&(a.__webglInit=!0,a._modelViewMatrix=new THREE.Matrix4,a._normalMatrix=new THREE.Matrix3,f=a.geometry,void 0!==f&&void 0===f.__webglInit))if(f.__webglInit=!0,f.addEventListener("dispose",Eb),f instanceof THREE.BufferGeometry)for(g in f.attributes){var h="index"===g?m.ELEMENT_ARRAY_BUFFER:m.ARRAY_BUFFER,k=f.attributes[g];
-k.buffer=m.createBuffer();m.bindBuffer(h,k.buffer);m.bufferData(h,k.array,m.STATIC_DRAW)}else if(a instanceof THREE.Mesh)for(e in g=a.material,void 0===f.geometryGroups&&f.makeGroups(g instanceof THREE.MeshFaceMaterial,pb?4294967296:65535),f.geometryGroups){if(g=f.geometryGroups[e],!g.__webglVertexBuffer){h=g;h.__webglVertexBuffer=m.createBuffer();h.__webglNormalBuffer=m.createBuffer();h.__webglTangentBuffer=m.createBuffer();h.__webglColorBuffer=m.createBuffer();h.__webglUVBuffer=m.createBuffer();
-h.__webglUV2Buffer=m.createBuffer();h.__webglSkinIndicesBuffer=m.createBuffer();h.__webglSkinWeightsBuffer=m.createBuffer();h.__webglFaceBuffer=m.createBuffer();h.__webglLineBuffer=m.createBuffer();var l=k=void 0;if(h.numMorphTargets)for(h.__webglMorphTargetsBuffers=[],k=0,l=h.numMorphTargets;k<l;k++)h.__webglMorphTargetsBuffers.push(m.createBuffer());if(h.numMorphNormals)for(h.__webglMorphNormalsBuffers=[],k=0,l=h.numMorphNormals;k<l;k++)h.__webglMorphNormalsBuffers.push(m.createBuffer());P.info.memory.geometries++;
-c(g,a);f.verticesNeedUpdate=!0;f.morphTargetsNeedUpdate=!0;f.elementsNeedUpdate=!0;f.uvsNeedUpdate=!0;f.normalsNeedUpdate=!0;f.tangentsNeedUpdate=!0;f.colorsNeedUpdate=!0}}else a instanceof THREE.Line?f.__webglVertexBuffer||(g=f,g.__webglVertexBuffer=m.createBuffer(),g.__webglColorBuffer=m.createBuffer(),g.__webglLineDistanceBuffer=m.createBuffer(),P.info.memory.geometries++,g=f,h=g.vertices.length,g.__vertexArray=new Float32Array(3*h),g.__colorArray=new Float32Array(3*h),g.__lineDistanceArray=new Float32Array(1*
-h),g.__webglLineCount=h,b(g,a),f.verticesNeedUpdate=!0,f.colorsNeedUpdate=!0,f.lineDistancesNeedUpdate=!0):a instanceof THREE.ParticleSystem&&!f.__webglVertexBuffer&&(g=f,g.__webglVertexBuffer=m.createBuffer(),g.__webglColorBuffer=m.createBuffer(),P.info.memory.geometries++,g=f,h=g.vertices.length,g.__vertexArray=new Float32Array(3*h),g.__colorArray=new Float32Array(3*h),g.__sortArray=[],g.__webglParticleCount=h,b(g,a),f.verticesNeedUpdate=!0,f.colorsNeedUpdate=!0);if(void 0===a.__webglActive){if(a instanceof
-THREE.Mesh)if(f=a.geometry,f instanceof THREE.BufferGeometry)v(d.__webglObjects,f,a);else{if(f instanceof THREE.Geometry)for(e in f.geometryGroups)g=f.geometryGroups[e],v(d.__webglObjects,g,a)}else a instanceof THREE.Line||a instanceof THREE.ParticleSystem?(f=a.geometry,v(d.__webglObjects,f,a)):a instanceof THREE.ImmediateRenderObject||a.immediateRenderCallback?d.__webglObjectsImmediate.push({id:null,object:a,opaque:null,transparent:null,z:0}):a instanceof THREE.Sprite?d.__webglSprites.push(a):a instanceof
-THREE.LensFlare&&d.__webglFlares.push(a);a.__webglActive=!0}}function v(a,b,c){a.push({id:null,buffer:b,object:c,opaque:null,transparent:null,z:0})}function w(a){for(var b in a.attributes)if(a.attributes[b].needsUpdate)return!0;return!1}function u(a){for(var b in a.attributes)a.attributes[b].needsUpdate=!1}function y(a,b){a instanceof THREE.Mesh||a instanceof THREE.ParticleSystem||a instanceof THREE.Line?L(b.__webglObjects,a):a instanceof THREE.Sprite?x(b.__webglSprites,a):a instanceof THREE.LensFlare?
-x(b.__webglFlares,a):(a instanceof THREE.ImmediateRenderObject||a.immediateRenderCallback)&&L(b.__webglObjectsImmediate,a);delete a.__webglActive}function L(a,b){for(var c=a.length-1;0<=c;c--)a[c].object===b&&a.splice(c,1)}function x(a,b){for(var c=a.length-1;0<=c;c--)a[c]===b&&a.splice(c,1)}function N(a,b,c,d,e){Ea=0;d.needsUpdate&&(d.program&&Fb(d),P.initMaterial(d,b,c,e),d.needsUpdate=!1);d.morphTargets&&!e.__webglMorphTargetInfluences&&(e.__webglMorphTargetInfluences=new Float32Array(P.maxMorphTargets));
-var f=!1,g=d.program,h=g.uniforms,k=d.uniforms;g.id!==wa&&(m.useProgram(g.program),wa=g.id,f=!0);d.id!==fa&&(fa=d.id,f=!0);if(f||a!==Ia)m.uniformMatrix4fv(h.projectionMatrix,!1,a.projectionMatrix.elements),da&&m.uniform1f(h.logDepthBufFC,2/(Math.log(a.far+1)/Math.LN2)),a!==Ia&&(Ia=a);if(d.skinning)if(Gb&&e.skeleton.useVertexTexture){if(null!==h.boneTexture){var l=J();m.uniform1i(h.boneTexture,l);P.setTexture(e.skeleton.boneTexture,l)}null!==h.boneTextureWidth&&m.uniform1i(h.boneTextureWidth,e.skeleton.boneTextureWidth);
-null!==h.boneTextureHeight&&m.uniform1i(h.boneTextureHeight,e.skeleton.boneTextureHeight)}else null!==h.boneGlobalMatrices&&m.uniformMatrix4fv(h.boneGlobalMatrices,!1,e.skeleton.boneMatrices);if(f){c&&d.fog&&(k.fogColor.value=c.color,c instanceof THREE.Fog?(k.fogNear.value=c.near,k.fogFar.value=c.far):c instanceof THREE.FogExp2&&(k.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){if(cb){var n,p=l=0,q=0,r,s,t,u=Bb,w=u.directional.colors,
-v=u.directional.positions,y=u.point.colors,A=u.point.positions,L=u.point.distances,x=u.spot.colors,G=u.spot.positions,C=u.spot.distances,E=u.spot.directions,N=u.spot.anglesCos,F=u.spot.exponents,Q=u.hemi.skyColors,I=u.hemi.groundColors,U=u.hemi.positions,Y=0,ga=0,R=0,X=0,$=0,aa=0,ba=0,Z=0,W=n=0;c=t=W=0;for(f=b.length;c<f;c++)if(n=b[c],!n.onlyShadow)if(r=n.color,s=n.intensity,t=n.distance,n instanceof THREE.AmbientLight)n.visible&&(P.gammaInput?(l+=r.r*r.r,p+=r.g*r.g,q+=r.b*r.b):(l+=r.r,p+=r.g,q+=
-r.b));else if(n instanceof THREE.DirectionalLight){if($+=1,n.visible&&(oa.setFromMatrixPosition(n.matrixWorld),xa.setFromMatrixPosition(n.target.matrixWorld),oa.sub(xa),oa.normalize(),0!==oa.x||0!==oa.y||0!==oa.z))n=3*Y,v[n]=oa.x,v[n+1]=oa.y,v[n+2]=oa.z,P.gammaInput?B(w,n,r,s*s):K(w,n,r,s),Y+=1}else n instanceof THREE.PointLight?(aa+=1,n.visible&&(W=3*ga,P.gammaInput?B(y,W,r,s*s):K(y,W,r,s),xa.setFromMatrixPosition(n.matrixWorld),A[W]=xa.x,A[W+1]=xa.y,A[W+2]=xa.z,L[ga]=t,ga+=1)):n instanceof THREE.SpotLight?
-(ba+=1,n.visible&&(W=3*R,P.gammaInput?B(x,W,r,s*s):K(x,W,r,s),xa.setFromMatrixPosition(n.matrixWorld),G[W]=xa.x,G[W+1]=xa.y,G[W+2]=xa.z,C[R]=t,oa.copy(xa),xa.setFromMatrixPosition(n.target.matrixWorld),oa.sub(xa),oa.normalize(),E[W]=oa.x,E[W+1]=oa.y,E[W+2]=oa.z,N[R]=Math.cos(n.angle),F[R]=n.exponent,R+=1)):n instanceof THREE.HemisphereLight&&(Z+=1,n.visible&&(oa.setFromMatrixPosition(n.matrixWorld),oa.normalize(),0!==oa.x||0!==oa.y||0!==oa.z))&&(t=3*X,U[t]=oa.x,U[t+1]=oa.y,U[t+2]=oa.z,r=n.color,n=
-n.groundColor,P.gammaInput?(s*=s,B(Q,t,r,s),B(I,t,n,s)):(K(Q,t,r,s),K(I,t,n,s)),X+=1);c=3*Y;for(f=Math.max(w.length,3*$);c<f;c++)w[c]=0;c=3*ga;for(f=Math.max(y.length,3*aa);c<f;c++)y[c]=0;c=3*R;for(f=Math.max(x.length,3*ba);c<f;c++)x[c]=0;c=3*X;for(f=Math.max(Q.length,3*Z);c<f;c++)Q[c]=0;c=3*X;for(f=Math.max(I.length,3*Z);c<f;c++)I[c]=0;u.directional.length=Y;u.point.length=ga;u.spot.length=R;u.hemi.length=X;u.ambient[0]=l;u.ambient[1]=p;u.ambient[2]=q;cb=!1}c=Bb;k.ambientLightColor.value=c.ambient;
-k.directionalLightColor.value=c.directional.colors;k.directionalLightDirection.value=c.directional.positions;k.pointLightColor.value=c.point.colors;k.pointLightPosition.value=c.point.positions;k.pointLightDistance.value=c.point.distances;k.spotLightColor.value=c.spot.colors;k.spotLightPosition.value=c.spot.positions;k.spotLightDistance.value=c.spot.distances;k.spotLightDirection.value=c.spot.directions;k.spotLightAngleCos.value=c.spot.anglesCos;k.spotLightExponent.value=c.spot.exponents;k.hemisphereLightSkyColor.value=
-c.hemi.skyColors;k.hemisphereLightGroundColor.value=c.hemi.groundColors;k.hemisphereLightDirection.value=c.hemi.positions}if(d instanceof THREE.MeshBasicMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.MeshPhongMaterial){k.opacity.value=d.opacity;P.gammaInput?k.diffuse.value.copyGammaToLinear(d.color):k.diffuse.value=d.color;k.map.value=d.map;k.lightMap.value=d.lightMap;k.specularMap.value=d.specularMap;d.bumpMap&&(k.bumpMap.value=d.bumpMap,k.bumpScale.value=d.bumpScale);d.normalMap&&
-(k.normalMap.value=d.normalMap,k.normalScale.value.copy(d.normalScale));var V;d.map?V=d.map:d.specularMap?V=d.specularMap:d.normalMap?V=d.normalMap:d.bumpMap&&(V=d.bumpMap);void 0!==V&&(c=V.offset,V=V.repeat,k.offsetRepeat.value.set(c.x,c.y,V.x,V.y));k.envMap.value=d.envMap;k.flipEnvMap.value=d.envMap instanceof THREE.WebGLRenderTargetCube?1:-1;k.reflectivity.value=d.reflectivity;k.refractionRatio.value=d.refractionRatio;k.combine.value=d.combine;k.useRefract.value=d.envMap&&d.envMap.mapping instanceof
-THREE.CubeRefractionMapping}d instanceof THREE.LineBasicMaterial?(k.diffuse.value=d.color,k.opacity.value=d.opacity):d instanceof THREE.LineDashedMaterial?(k.diffuse.value=d.color,k.opacity.value=d.opacity,k.dashSize.value=d.dashSize,k.totalSize.value=d.dashSize+d.gapSize,k.scale.value=d.scale):d instanceof THREE.ParticleSystemMaterial?(k.psColor.value=d.color,k.opacity.value=d.opacity,k.size.value=d.size,k.scale.value=H.height/2,k.map.value=d.map):d instanceof THREE.MeshPhongMaterial?(k.shininess.value=
-d.shininess,P.gammaInput?(k.ambient.value.copyGammaToLinear(d.ambient),k.emissive.value.copyGammaToLinear(d.emissive),k.specular.value.copyGammaToLinear(d.specular)):(k.ambient.value=d.ambient,k.emissive.value=d.emissive,k.specular.value=d.specular),d.wrapAround&&k.wrapRGB.value.copy(d.wrapRGB)):d instanceof THREE.MeshLambertMaterial?(P.gammaInput?(k.ambient.value.copyGammaToLinear(d.ambient),k.emissive.value.copyGammaToLinear(d.emissive)):(k.ambient.value=d.ambient,k.emissive.value=d.emissive),d.wrapAround&&
-k.wrapRGB.value.copy(d.wrapRGB)):d instanceof THREE.MeshDepthMaterial?(k.mNear.value=a.near,k.mFar.value=a.far,k.opacity.value=d.opacity):d instanceof THREE.MeshNormalMaterial&&(k.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&k.shadowMatrix)for(c=V=0,f=b.length;c<f;c++)l=b[c],l.castShadow&&(l instanceof THREE.SpotLight||l instanceof THREE.DirectionalLight&&!l.shadowCascade)&&(k.shadowMap.value[V]=l.shadowMap,k.shadowMapSize.value[V]=l.shadowMapSize,k.shadowMatrix.value[V]=l.shadowMatrix,
-k.shadowDarkness.value[V]=l.shadowDarkness,k.shadowBias.value[V]=l.shadowBias,V++);b=d.uniformsList;k=0;for(V=b.length;k<V;k++)if(f=g.uniforms[b[k][1]])if(c=b[k][0],p=c.type,l=c.value,"i"===p)m.uniform1i(f,l);else if("f"===p)m.uniform1f(f,l);else if("v2"===p)m.uniform2f(f,l.x,l.y);else if("v3"===p)m.uniform3f(f,l.x,l.y,l.z);else if("v4"===p)m.uniform4f(f,l.x,l.y,l.z,l.w);else if("c"===p)m.uniform3f(f,l.r,l.g,l.b);else if("iv1"===p)m.uniform1iv(f,l);else if("iv"===p)m.uniform3iv(f,l);else if("fv1"===
-p)m.uniform1fv(f,l);else if("fv"===p)m.uniform3fv(f,l);else if("v2v"===p){void 0===c._array&&(c._array=new Float32Array(2*l.length));p=0;for(q=l.length;p<q;p++)u=2*p,c._array[u]=l[p].x,c._array[u+1]=l[p].y;m.uniform2fv(f,c._array)}else if("v3v"===p){void 0===c._array&&(c._array=new Float32Array(3*l.length));p=0;for(q=l.length;p<q;p++)u=3*p,c._array[u]=l[p].x,c._array[u+1]=l[p].y,c._array[u+2]=l[p].z;m.uniform3fv(f,c._array)}else if("v4v"===p){void 0===c._array&&(c._array=new Float32Array(4*l.length));
-p=0;for(q=l.length;p<q;p++)u=4*p,c._array[u]=l[p].x,c._array[u+1]=l[p].y,c._array[u+2]=l[p].z,c._array[u+3]=l[p].w;m.uniform4fv(f,c._array)}else if("m3"===p)m.uniformMatrix3fv(f,!1,l.elements);else if("m3v"===p){void 0===c._array&&(c._array=new Float32Array(9*l.length));p=0;for(q=l.length;p<q;p++)l[p].flattenToArrayOffset(c._array,9*p);m.uniformMatrix3fv(f,!1,c._array)}else if("m4"===p)m.uniformMatrix4fv(f,!1,l.elements);else if("m4v"===p){void 0===c._array&&(c._array=new Float32Array(16*l.length));
-p=0;for(q=l.length;p<q;p++)l[p].flattenToArrayOffset(c._array,16*p);m.uniformMatrix4fv(f,!1,c._array)}else if("t"===p){if(u=l,l=J(),m.uniform1i(f,l),u)if(u.image instanceof Array&&6===u.image.length){if(c=u,f=l,6===c.image.length)if(c.needsUpdate){c.image.__webglTextureCube||(c.addEventListener("dispose",Hb),c.image.__webglTextureCube=m.createTexture(),P.info.memory.textures++);m.activeTexture(m.TEXTURE0+f);m.bindTexture(m.TEXTURE_CUBE_MAP,c.image.__webglTextureCube);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,
-c.flipY);f=c instanceof THREE.CompressedTexture;l=[];for(p=0;6>p;p++)P.autoScaleCubemaps&&!f?(q=l,u=p,w=c.image[p],y=dc,w.width<=y&&w.height<=y||(A=Math.max(w.width,w.height),v=Math.floor(w.width*y/A),y=Math.floor(w.height*y/A),A=document.createElement("canvas"),A.width=v,A.height=y,A.getContext("2d").drawImage(w,0,0,w.width,w.height,0,0,v,y),w=A),q[u]=w):l[p]=c.image[p];p=l[0];q=THREE.Math.isPowerOfTwo(p.width)&&THREE.Math.isPowerOfTwo(p.height);u=z(c.format);w=z(c.type);D(m.TEXTURE_CUBE_MAP,c,q);
-for(p=0;6>p;p++)if(f)for(y=l[p].mipmaps,A=0,L=y.length;A<L;A++)v=y[A],c.format!==THREE.RGBAFormat?m.compressedTexImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+p,A,u,v.width,v.height,0,v.data):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+p,A,u,v.width,v.height,0,u,w,v.data);else m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+p,0,u,u,w,l[p]);c.generateMipmaps&&q&&m.generateMipmap(m.TEXTURE_CUBE_MAP);c.needsUpdate=!1;if(c.onUpdate)c.onUpdate()}else m.activeTexture(m.TEXTURE0+f),m.bindTexture(m.TEXTURE_CUBE_MAP,c.image.__webglTextureCube)}else u instanceof
-THREE.WebGLRenderTargetCube?(c=u,m.activeTexture(m.TEXTURE0+l),m.bindTexture(m.TEXTURE_CUBE_MAP,c.__webglTexture)):P.setTexture(u,l)}else if("tv"===p){void 0===c._array&&(c._array=[]);p=0;for(q=c.value.length;p<q;p++)c._array[p]=J();m.uniform1iv(f,c._array);p=0;for(q=c.value.length;p<q;p++)u=c.value[p],l=c._array[p],u&&P.setTexture(u,l)}else console.warn("THREE.WebGLRenderer: Unknown uniform type: "+p);(d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&null!==h.cameraPosition&&
-(xa.setFromMatrixPosition(a.matrixWorld),m.uniform3f(h.cameraPosition,xa.x,xa.y,xa.z));(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&null!==h.viewMatrix&&m.uniformMatrix4fv(h.viewMatrix,!1,a.matrixWorldInverse.elements)}m.uniformMatrix4fv(h.modelViewMatrix,!1,e._modelViewMatrix.elements);h.normalMatrix&&m.uniformMatrix3fv(h.normalMatrix,!1,e._normalMatrix.elements);null!==h.modelMatrix&&m.uniformMatrix4fv(h.modelMatrix,
-!1,e.matrixWorld.elements);return g}function J(){var a=Ea;a>=Cb&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+Cb);Ea+=1;return a}function B(a,b,c,d){a[b]=c.r*c.r*d;a[b+1]=c.g*c.g*d;a[b+2]=c.b*c.b*d}function K(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function A(a){a!==ua&&(m.lineWidth(a),ua=a)}function G(a,b,c){ya!==a&&(a?m.enable(m.POLYGON_OFFSET_FILL):m.disable(m.POLYGON_OFFSET_FILL),ya=a);!a||Z===b&&qa===c||(m.polygonOffset(b,c),Z=b,qa=c)}function D(a,
-b,c){c?(m.texParameteri(a,m.TEXTURE_WRAP_S,z(b.wrapS)),m.texParameteri(a,m.TEXTURE_WRAP_T,z(b.wrapT)),m.texParameteri(a,m.TEXTURE_MAG_FILTER,z(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,z(b.minFilter))):(m.texParameteri(a,m.TEXTURE_WRAP_S,m.CLAMP_TO_EDGE),m.texParameteri(a,m.TEXTURE_WRAP_T,m.CLAMP_TO_EDGE),m.texParameteri(a,m.TEXTURE_MAG_FILTER,F(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,F(b.minFilter)));db&&b.type!==THREE.FloatType&&(1<b.anisotropy||b.__oldAnisotropy)&&(m.texParameterf(a,
-db.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,Ib)),b.__oldAnisotropy=b.anisotropy)}function C(a,b){m.bindRenderbuffer(m.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(m.renderbufferStorage(m.RENDERBUFFER,m.DEPTH_COMPONENT16,b.width,b.height),m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_ATTACHMENT,m.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(m.renderbufferStorage(m.RENDERBUFFER,m.DEPTH_STENCIL,b.width,b.height),m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_STENCIL_ATTACHMENT,m.RENDERBUFFER,
-a)):m.renderbufferStorage(m.RENDERBUFFER,m.RGBA4,b.width,b.height)}function F(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?m.NEAREST:m.LINEAR}function z(a){if(a===THREE.RepeatWrapping)return m.REPEAT;if(a===THREE.ClampToEdgeWrapping)return m.CLAMP_TO_EDGE;if(a===THREE.MirroredRepeatWrapping)return m.MIRRORED_REPEAT;if(a===THREE.NearestFilter)return m.NEAREST;if(a===THREE.NearestMipMapNearestFilter)return m.NEAREST_MIPMAP_NEAREST;if(a===
-THREE.NearestMipMapLinearFilter)return m.NEAREST_MIPMAP_LINEAR;if(a===THREE.LinearFilter)return m.LINEAR;if(a===THREE.LinearMipMapNearestFilter)return m.LINEAR_MIPMAP_NEAREST;if(a===THREE.LinearMipMapLinearFilter)return m.LINEAR_MIPMAP_LINEAR;if(a===THREE.UnsignedByteType)return m.UNSIGNED_BYTE;if(a===THREE.UnsignedShort4444Type)return m.UNSIGNED_SHORT_4_4_4_4;if(a===THREE.UnsignedShort5551Type)return m.UNSIGNED_SHORT_5_5_5_1;if(a===THREE.UnsignedShort565Type)return m.UNSIGNED_SHORT_5_6_5;if(a===
-THREE.ByteType)return m.BYTE;if(a===THREE.ShortType)return m.SHORT;if(a===THREE.UnsignedShortType)return m.UNSIGNED_SHORT;if(a===THREE.IntType)return m.INT;if(a===THREE.UnsignedIntType)return m.UNSIGNED_INT;if(a===THREE.FloatType)return m.FLOAT;if(a===THREE.AlphaFormat)return m.ALPHA;if(a===THREE.RGBFormat)return m.RGB;if(a===THREE.RGBAFormat)return m.RGBA;if(a===THREE.LuminanceFormat)return m.LUMINANCE;if(a===THREE.LuminanceAlphaFormat)return m.LUMINANCE_ALPHA;if(a===THREE.AddEquation)return m.FUNC_ADD;
-if(a===THREE.SubtractEquation)return m.FUNC_SUBTRACT;if(a===THREE.ReverseSubtractEquation)return m.FUNC_REVERSE_SUBTRACT;if(a===THREE.ZeroFactor)return m.ZERO;if(a===THREE.OneFactor)return m.ONE;if(a===THREE.SrcColorFactor)return m.SRC_COLOR;if(a===THREE.OneMinusSrcColorFactor)return m.ONE_MINUS_SRC_COLOR;if(a===THREE.SrcAlphaFactor)return m.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return m.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return m.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return m.ONE_MINUS_DST_ALPHA;
-if(a===THREE.DstColorFactor)return m.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return m.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return m.SRC_ALPHA_SATURATE;if(void 0!==Pa){if(a===THREE.RGB_S3TC_DXT1_Format)return Pa.COMPRESSED_RGB_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT1_Format)return Pa.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT3_Format)return Pa.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return Pa.COMPRESSED_RGBA_S3TC_DXT5_EXT}return 0}console.log("THREE.WebGLRenderer",
-THREE.REVISION);a=a||{};var H=void 0!==a.canvas?a.canvas:document.createElement("canvas"),E=void 0!==a.context?a.context:null,Q=void 0!==a.precision?a.precision:"highp",Y=void 0!==a.alpha?a.alpha:!1,U=void 0!==a.depth?a.depth:!0,la=void 0!==a.stencil?a.stencil:!0,W=void 0!==a.antialias?a.antialias:!1,R=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,I=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,da=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,V=new THREE.Color(0),
-X=0;this.domElement=H;this.context=null;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.autoUpdateObjects=this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.shadowMapEnabled=this.gammaOutput=this.gammaInput=!1;this.shadowMapAutoUpdate=!0;this.shadowMapType=THREE.PCFShadowMap;this.shadowMapCullFace=THREE.CullFaceFront;this.shadowMapCascade=this.shadowMapDebug=!1;this.maxMorphTargets=
-8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var P=this,ga=[],wa=null,Ha=null,fa=-1,za=null,Ia=null,Ea=0,Ga=-1,ha=-1,Oa=-1,Ra=-1,Sa=-1,Fa=-1,ia=-1,ma=-1,ya=null,Z=null,qa=null,ua=null,Ca=0,va=0,Da=H.width,Ja=H.height,ja=0,ra=0,Ka=new Uint8Array(16),ob=new Uint8Array(16),Ab=new THREE.Frustum,Pb=new THREE.Matrix4,cc=new THREE.Matrix4,xa=new THREE.Vector3,
-oa=new THREE.Vector3,cb=!0,Bb={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],exponents:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},m,sb,xb,db,Pa,pb;(function(){try{var a={alpha:Y,depth:U,stencil:la,antialias:W,premultipliedAlpha:R,preserveDrawingBuffer:I};m=E||H.getContext("webgl",a)||H.getContext("experimental-webgl",a);if(null===m)throw"Error creating WebGL context.";
-}catch(b){console.error(b)}sb=m.getExtension("OES_texture_float");m.getExtension("OES_texture_float_linear");xb=m.getExtension("OES_standard_derivatives");db=m.getExtension("EXT_texture_filter_anisotropic")||m.getExtension("MOZ_EXT_texture_filter_anisotropic")||m.getExtension("WEBKIT_EXT_texture_filter_anisotropic");Pa=m.getExtension("WEBGL_compressed_texture_s3tc")||m.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||m.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");pb=m.getExtension("OES_element_index_uint");
-null===sb&&console.log("THREE.WebGLRenderer: Float textures not supported.");null===xb&&console.log("THREE.WebGLRenderer: Standard derivatives not supported.");null===db&&console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");null===Pa&&console.log("THREE.WebGLRenderer: S3TC compressed textures not supported.");null===pb&&console.log("THREE.WebGLRenderer: elementindex as unsigned integer not supported.");void 0===m.getShaderPrecisionFormat&&(m.getShaderPrecisionFormat=function(){return{rangeMin:1,
-rangeMax:1,precision:1}});da&&m.getExtension("EXT_frag_depth")})();m.clearColor(0,0,0,1);m.clearDepth(1);m.clearStencil(0);m.enable(m.DEPTH_TEST);m.depthFunc(m.LEQUAL);m.frontFace(m.CCW);m.cullFace(m.BACK);m.enable(m.CULL_FACE);m.enable(m.BLEND);m.blendEquation(m.FUNC_ADD);m.blendFunc(m.SRC_ALPHA,m.ONE_MINUS_SRC_ALPHA);m.viewport(Ca,va,Da,Ja);m.clearColor(V.r,V.g,V.b,X);this.context=m;var Cb=m.getParameter(m.MAX_TEXTURE_IMAGE_UNITS),Db=m.getParameter(m.MAX_VERTEX_TEXTURE_IMAGE_UNITS);m.getParameter(m.MAX_TEXTURE_SIZE);
-var dc=m.getParameter(m.MAX_CUBE_MAP_TEXTURE_SIZE),Ib=db?m.getParameter(db.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,Jb=0<Db,Gb=Jb&&sb;Pa&&m.getParameter(m.COMPRESSED_TEXTURE_FORMATS);var ec=m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.HIGH_FLOAT),qc=m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.LOW_FLOAT);var rc=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.HIGH_FLOAT),sc=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,
-m.LOW_FLOAT);var tc=0<ec.precision&&0<rc.precision,Kb=0<qc.precision&&0<sc.precision;"highp"!==Q||tc||(Kb?(Q="mediump",console.warn("WebGLRenderer: highp not supported, using mediump")):(Q="lowp",console.warn("WebGLRenderer: highp and mediump not supported, using lowp")));"mediump"!==Q||Kb||(Q="lowp",console.warn("WebGLRenderer: mediump not supported, using lowp"));this.getContext=function(){return m};this.supportsVertexTextures=function(){return Jb};this.supportsFloatTextures=function(){return sb};
-this.supportsStandardDerivatives=function(){return xb};this.supportsCompressedTextureS3TC=function(){return Pa};this.getMaxAnisotropy=function(){return Ib};this.getPrecision=function(){return Q};this.setSize=function(a,b,c){H.width=a*this.devicePixelRatio;H.height=b*this.devicePixelRatio;!1!==c&&(H.style.width=a+"px",H.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){Ca=a*this.devicePixelRatio;va=b*this.devicePixelRatio;Da=c*this.devicePixelRatio;Ja=d*this.devicePixelRatio;
-m.viewport(Ca,va,Da,Ja)};this.setScissor=function(a,b,c,d){m.scissor(a*this.devicePixelRatio,b*this.devicePixelRatio,c*this.devicePixelRatio,d*this.devicePixelRatio)};this.enableScissorTest=function(a){a?m.enable(m.SCISSOR_TEST):m.disable(m.SCISSOR_TEST)};this.setClearColor=function(a,b){V.set(a);X=void 0!==b?b:1;m.clearColor(V.r,V.g,V.b,X)};this.setClearColorHex=function(a,b){console.warn("DEPRECATED: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};
-this.getClearColor=function(){return V};this.getClearAlpha=function(){return X};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=m.COLOR_BUFFER_BIT;if(void 0===b||b)d|=m.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=m.STENCIL_BUFFER_BIT;m.clear(d)};this.clearColor=function(){m.clear(m.COLOR_BUFFER_BIT)};this.clearDepth=function(){m.clear(m.DEPTH_BUFFER_BIT)};this.clearStencil=function(){m.clear(m.STENCIL_BUFFER_BIT)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.addPostPlugin=
-function(a){a.init(this);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this);this.renderPluginsPre.push(a)};this.updateShadowMap=function(a,b){wa=null;fa=za=ma=ia=Oa=-1;cb=!0;ha=Ga=-1;this.shadowMapPlugin.update(a,b)};var Eb=function(a){a=a.target;a.removeEventListener("dispose",Eb);a.__webglInit=void 0;if(a instanceof THREE.BufferGeometry){var b=a.attributes,c;for(c in b)void 0!==b[c].buffer&&m.deleteBuffer(b[c].buffer);P.info.memory.geometries--}else if(void 0!==a.geometryGroups)for(b in a.geometryGroups){c=
-a.geometryGroups[b];if(void 0!==c.numMorphTargets)for(var d=0,e=c.numMorphTargets;d<e;d++)m.deleteBuffer(c.__webglMorphTargetsBuffers[d]);if(void 0!==c.numMorphNormals)for(d=0,e=c.numMorphNormals;d<e;d++)m.deleteBuffer(c.__webglMorphNormalsBuffers[d]);Qb(c)}else Qb(a)},Hb=function(a){a=a.target;a.removeEventListener("dispose",Hb);a.image&&a.image.__webglTextureCube?m.deleteTexture(a.image.__webglTextureCube):a.__webglInit&&(a.__webglInit=!1,m.deleteTexture(a.__webglTexture));P.info.memory.textures--},
-Rb=function(a){a=a.target;a.removeEventListener("dispose",Rb);if(a&&a.__webglTexture)if(m.deleteTexture(a.__webglTexture),a instanceof THREE.WebGLRenderTargetCube)for(var b=0;6>b;b++)m.deleteFramebuffer(a.__webglFramebuffer[b]),m.deleteRenderbuffer(a.__webglRenderbuffer[b]);else m.deleteFramebuffer(a.__webglFramebuffer),m.deleteRenderbuffer(a.__webglRenderbuffer);P.info.memory.textures--},Sb=function(a){a=a.target;a.removeEventListener("dispose",Sb);Fb(a)},Qb=function(a){void 0!==a.__webglVertexBuffer&&
-m.deleteBuffer(a.__webglVertexBuffer);void 0!==a.__webglNormalBuffer&&m.deleteBuffer(a.__webglNormalBuffer);void 0!==a.__webglTangentBuffer&&m.deleteBuffer(a.__webglTangentBuffer);void 0!==a.__webglColorBuffer&&m.deleteBuffer(a.__webglColorBuffer);void 0!==a.__webglUVBuffer&&m.deleteBuffer(a.__webglUVBuffer);void 0!==a.__webglUV2Buffer&&m.deleteBuffer(a.__webglUV2Buffer);void 0!==a.__webglSkinIndicesBuffer&&m.deleteBuffer(a.__webglSkinIndicesBuffer);void 0!==a.__webglSkinWeightsBuffer&&m.deleteBuffer(a.__webglSkinWeightsBuffer);
-void 0!==a.__webglFaceBuffer&&m.deleteBuffer(a.__webglFaceBuffer);void 0!==a.__webglLineBuffer&&m.deleteBuffer(a.__webglLineBuffer);void 0!==a.__webglLineDistanceBuffer&&m.deleteBuffer(a.__webglLineDistanceBuffer);if(void 0!==a.__webglCustomAttributesList)for(var b in a.__webglCustomAttributesList)m.deleteBuffer(a.__webglCustomAttributesList[b].buffer);P.info.memory.geometries--},Fb=function(a){var b=a.program;if(void 0!==b){a.program=void 0;var c,d,e=!1;a=0;for(c=ga.length;a<c;a++)if(d=ga[a],d.program===
-b){d.usedTimes--;0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];a=0;for(c=ga.length;a<c;a++)d=ga[a],d.program!==b&&e.push(d);ga=e;m.deleteProgram(b);P.info.memory.programs--}}};this.renderBufferImmediate=function(a,b,c){h();a.hasPositions&&!a.__webglVertexBuffer&&(a.__webglVertexBuffer=m.createBuffer());a.hasNormals&&!a.__webglNormalBuffer&&(a.__webglNormalBuffer=m.createBuffer());a.hasUvs&&!a.__webglUvBuffer&&(a.__webglUvBuffer=m.createBuffer());a.hasColors&&!a.__webglColorBuffer&&(a.__webglColorBuffer=
-m.createBuffer());a.hasPositions&&(m.bindBuffer(m.ARRAY_BUFFER,a.__webglVertexBuffer),m.bufferData(m.ARRAY_BUFFER,a.positionArray,m.DYNAMIC_DRAW),k(b.attributes.position),m.vertexAttribPointer(b.attributes.position,3,m.FLOAT,!1,0,0));if(a.hasNormals){m.bindBuffer(m.ARRAY_BUFFER,a.__webglNormalBuffer);if(c.shading===THREE.FlatShading){var d,e,f,g,p,n,q,r,s,u,t,w=3*a.count;for(t=0;t<w;t+=9)u=a.normalArray,d=u[t],e=u[t+1],f=u[t+2],g=u[t+3],n=u[t+4],r=u[t+5],p=u[t+6],q=u[t+7],s=u[t+8],d=(d+g+p)/3,e=(e+
-n+q)/3,f=(f+r+s)/3,u[t]=d,u[t+1]=e,u[t+2]=f,u[t+3]=d,u[t+4]=e,u[t+5]=f,u[t+6]=d,u[t+7]=e,u[t+8]=f}m.bufferData(m.ARRAY_BUFFER,a.normalArray,m.DYNAMIC_DRAW);k(b.attributes.normal);m.vertexAttribPointer(b.attributes.normal,3,m.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(m.bindBuffer(m.ARRAY_BUFFER,a.__webglUvBuffer),m.bufferData(m.ARRAY_BUFFER,a.uvArray,m.DYNAMIC_DRAW),k(b.attributes.uv),m.vertexAttribPointer(b.attributes.uv,2,m.FLOAT,!1,0,0));a.hasColors&&c.vertexColors!==THREE.NoColors&&(m.bindBuffer(m.ARRAY_BUFFER,
-a.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,a.colorArray,m.DYNAMIC_DRAW),k(b.attributes.color),m.vertexAttribPointer(b.attributes.color,3,m.FLOAT,!1,0,0));l();m.drawArrays(m.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){if(!1!==d.visible){var k=N(a,b,c,d,f);a=k.attributes;b=e.attributes;c=!1;k=16777215*e.id+2*k.id+(d.wireframe?1:0);k!==za&&(za=k,c=!0);c&&h();if(f instanceof THREE.Mesh)if(f=b.index){var l;f.array instanceof Uint32Array?(k=m.UNSIGNED_INT,l=4):(k=
-m.UNSIGNED_SHORT,l=2);e=e.offsets;if(0===e.length)c&&(g(d,a,b,0),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,f.buffer)),m.drawElements(m.TRIANGLES,f.array.length,k,0),P.info.render.calls++,P.info.render.vertices+=f.array.length,P.info.render.faces+=f.array.length/3;else{c=!0;for(var p=0,n=e.length;p<n;p++){var q=e[p].index;c&&(g(d,a,b,q),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,f.buffer));m.drawElements(m.TRIANGLES,e[p].count,k,e[p].start*l);P.info.render.calls++;P.info.render.vertices+=e[p].count;P.info.render.faces+=
-e[p].count/3}}}else c&&g(d,a,b,0),d=e.attributes.position,m.drawArrays(m.TRIANGLES,0,d.array.length/3),P.info.render.calls++,P.info.render.vertices+=d.array.length/3,P.info.render.faces+=d.array.length/9;else if(f instanceof THREE.ParticleSystem)c&&g(d,a,b,0),d=b.position,m.drawArrays(m.POINTS,0,d.array.length/3),P.info.render.calls++,P.info.render.points+=d.array.length/3;else if(f instanceof THREE.Line)if(k=f.type===THREE.LineStrip?m.LINE_STRIP:m.LINES,A(d.linewidth),f=b.index)if(f.array instanceof
-Uint32Array?(k=m.UNSIGNED_INT,l=4):(k=m.UNSIGNED_SHORT,l=2),e=e.offsets,0===e.length)c&&(g(d,a,b,0),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,f.buffer)),m.drawElements(m.LINES,f.array.length,k,0),P.info.render.calls++,P.info.render.vertices+=f.array.length;else for(1<e.length&&(c=!0),p=0,n=e.length;p<n;p++)q=e[p].index,c&&(g(d,a,b,q),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,f.buffer)),m.drawElements(m.LINES,e[p].count,k,e[p].start*l),P.info.render.calls++,P.info.render.vertices+=e[p].count;else c&&g(d,a,b,0),
-d=b.position,m.drawArrays(k,0,d.array.length/3),P.info.render.calls++,P.info.render.points+=d.array.length/3}};this.renderBuffer=function(a,b,c,d,e,f){if(!1!==d.visible){var g,p;c=N(a,b,c,d,f);b=c.attributes;a=!1;c=16777215*e.id+2*c.id+(d.wireframe?1:0);c!==za&&(za=c,a=!0);a&&h();if(!d.morphTargets&&0<=b.position)a&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglVertexBuffer),k(b.position),m.vertexAttribPointer(b.position,3,m.FLOAT,!1,0,0));else if(f.morphTargetBase){c=d.program.attributes;-1!==f.morphTargetBase&&
-0<=c.position?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[f.morphTargetBase]),k(c.position),m.vertexAttribPointer(c.position,3,m.FLOAT,!1,0,0)):0<=c.position&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglVertexBuffer),k(c.position),m.vertexAttribPointer(c.position,3,m.FLOAT,!1,0,0));if(f.morphTargetForcedOrder.length){var n=0;p=f.morphTargetForcedOrder;for(g=f.morphTargetInfluences;n<d.numSupportedMorphTargets&&n<p.length;)0<=c["morphTarget"+n]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[p[n]]),
-k(c["morphTarget"+n]),m.vertexAttribPointer(c["morphTarget"+n],3,m.FLOAT,!1,0,0)),0<=c["morphNormal"+n]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[p[n]]),k(c["morphNormal"+n]),m.vertexAttribPointer(c["morphNormal"+n],3,m.FLOAT,!1,0,0)),f.__webglMorphTargetInfluences[n]=g[p[n]],n++}else{p=[];g=f.morphTargetInfluences;var r,s=g.length;for(r=0;r<s;r++)n=g[r],0<n&&p.push([n,r]);p.length>d.numSupportedMorphTargets?(p.sort(q),p.length=d.numSupportedMorphTargets):p.length>
-d.numSupportedMorphNormals?p.sort(q):0===p.length&&p.push([0,0]);for(n=0;n<d.numSupportedMorphTargets;)p[n]?(r=p[n][1],0<=c["morphTarget"+n]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[r]),k(c["morphTarget"+n]),m.vertexAttribPointer(c["morphTarget"+n],3,m.FLOAT,!1,0,0)),0<=c["morphNormal"+n]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[r]),k(c["morphNormal"+n]),m.vertexAttribPointer(c["morphNormal"+n],3,m.FLOAT,!1,0,0)),f.__webglMorphTargetInfluences[n]=
-g[r]):f.__webglMorphTargetInfluences[n]=0,n++}null!==d.program.uniforms.morphTargetInfluences&&m.uniform1fv(d.program.uniforms.morphTargetInfluences,f.__webglMorphTargetInfluences)}if(a){if(e.__webglCustomAttributesList)for(g=0,p=e.__webglCustomAttributesList.length;g<p;g++)c=e.__webglCustomAttributesList[g],0<=b[c.buffer.belongsToAttribute]&&(m.bindBuffer(m.ARRAY_BUFFER,c.buffer),k(b[c.buffer.belongsToAttribute]),m.vertexAttribPointer(b[c.buffer.belongsToAttribute],c.size,m.FLOAT,!1,0,0));0<=b.color&&
-(0<f.geometry.colors.length||0<f.geometry.faces.length?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglColorBuffer),k(b.color),m.vertexAttribPointer(b.color,3,m.FLOAT,!1,0,0)):d.defaultAttributeValues&&m.vertexAttrib3fv(b.color,d.defaultAttributeValues.color));0<=b.normal&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglNormalBuffer),k(b.normal),m.vertexAttribPointer(b.normal,3,m.FLOAT,!1,0,0));0<=b.tangent&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglTangentBuffer),k(b.tangent),m.vertexAttribPointer(b.tangent,4,m.FLOAT,!1,
-0,0));0<=b.uv&&(f.geometry.faceVertexUvs[0]?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglUVBuffer),k(b.uv),m.vertexAttribPointer(b.uv,2,m.FLOAT,!1,0,0)):d.defaultAttributeValues&&m.vertexAttrib2fv(b.uv,d.defaultAttributeValues.uv));0<=b.uv2&&(f.geometry.faceVertexUvs[1]?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglUV2Buffer),k(b.uv2),m.vertexAttribPointer(b.uv2,2,m.FLOAT,!1,0,0)):d.defaultAttributeValues&&m.vertexAttrib2fv(b.uv2,d.defaultAttributeValues.uv2));d.skinning&&0<=b.skinIndex&&0<=b.skinWeight&&(m.bindBuffer(m.ARRAY_BUFFER,
-e.__webglSkinIndicesBuffer),k(b.skinIndex),m.vertexAttribPointer(b.skinIndex,4,m.FLOAT,!1,0,0),m.bindBuffer(m.ARRAY_BUFFER,e.__webglSkinWeightsBuffer),k(b.skinWeight),m.vertexAttribPointer(b.skinWeight,4,m.FLOAT,!1,0,0));0<=b.lineDistance&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglLineDistanceBuffer),k(b.lineDistance),m.vertexAttribPointer(b.lineDistance,1,m.FLOAT,!1,0,0))}l();f instanceof THREE.Mesh?(f=e.__typeArray===Uint32Array?m.UNSIGNED_INT:m.UNSIGNED_SHORT,d.wireframe?(A(d.wireframeLinewidth),a&&
-m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,e.__webglLineBuffer),m.drawElements(m.LINES,e.__webglLineCount,f,0)):(a&&m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,e.__webglFaceBuffer),m.drawElements(m.TRIANGLES,e.__webglFaceCount,f,0)),P.info.render.calls++,P.info.render.vertices+=e.__webglFaceCount,P.info.render.faces+=e.__webglFaceCount/3):f instanceof THREE.Line?(f=f.type===THREE.LineStrip?m.LINE_STRIP:m.LINES,A(d.linewidth),m.drawArrays(f,0,e.__webglLineCount),P.info.render.calls++):f instanceof THREE.ParticleSystem&&
-(m.drawArrays(m.POINTS,0,e.__webglParticleCount),P.info.render.calls++,P.info.render.points+=e.__webglParticleCount)}};this.render=function(a,b,c,d){if(!1===b instanceof THREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{var e,f,g,h,k=a.__lights,l=a.fog;fa=-1;cb=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);Pb.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);
-Ab.setFromMatrix(Pb);this.autoUpdateObjects&&this.initWebGLObjects(a);p(this.renderPluginsPre,a,b);P.info.render.calls=0;P.info.render.vertices=0;P.info.render.faces=0;P.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);h=a.__webglObjects;d=0;for(e=h.length;d<e;d++)if(f=h[d],g=f.object,f.id=d,f.render=!1,g.visible&&(!(g instanceof THREE.Mesh||g instanceof THREE.ParticleSystem)||!g.frustumCulled||Ab.intersectsObject(g))){var q=
-g;q._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,q.matrixWorld);q._normalMatrix.getNormalMatrix(q._modelViewMatrix);var q=f,r=q.object,u=q.buffer,w=r.geometry,r=r.material;r instanceof THREE.MeshFaceMaterial?(r=r.materials[w instanceof THREE.BufferGeometry?0:u.materialIndex],r.transparent?(q.transparent=r,q.opaque=null):(q.opaque=r,q.transparent=null)):r&&(r.transparent?(q.transparent=r,q.opaque=null):(q.opaque=r,q.transparent=null));f.render=!0;!0===this.sortObjects&&(null!==g.renderDepth?
-f.z=g.renderDepth:(xa.setFromMatrixPosition(g.matrixWorld),xa.applyProjection(Pb),f.z=xa.z))}this.sortObjects&&h.sort(n);h=a.__webglObjectsImmediate;d=0;for(e=h.length;d<e;d++)f=h[d],g=f.object,g.visible&&(g._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,g.matrixWorld),g._normalMatrix.getNormalMatrix(g._modelViewMatrix),g=f.object.material,g.transparent?(f.transparent=g,f.opaque=null):(f.opaque=g,f.transparent=null));a.overrideMaterial?(d=a.overrideMaterial,this.setBlending(d.blending,d.blendEquation,
-d.blendSrc,d.blendDst),this.setDepthTest(d.depthTest),this.setDepthWrite(d.depthWrite),G(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits),s(a.__webglObjects,!1,"",b,k,l,!0,d),t(a.__webglObjectsImmediate,"",b,k,l,!1,d)):(d=null,this.setBlending(THREE.NoBlending),s(a.__webglObjects,!0,"opaque",b,k,l,!1,d),t(a.__webglObjectsImmediate,"opaque",b,k,l,!1,d),s(a.__webglObjects,!1,"transparent",b,k,l,!0,d),t(a.__webglObjectsImmediate,"transparent",b,k,l,!0,d));p(this.renderPluginsPost,a,b);c&&
-c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(m.bindTexture(m.TEXTURE_CUBE_MAP,c.__webglTexture),m.generateMipmap(m.TEXTURE_CUBE_MAP),m.bindTexture(m.TEXTURE_CUBE_MAP,null)):(m.bindTexture(m.TEXTURE_2D,c.__webglTexture),m.generateMipmap(m.TEXTURE_2D),m.bindTexture(m.TEXTURE_2D,null)));this.setDepthTest(!0);this.setDepthWrite(!0)}};this.renderImmediateObject=function(a,b,c,d,e){var f=N(a,b,c,d,e);za=-1;P.setMaterialFaces(d);
-e.immediateRenderCallback?e.immediateRenderCallback(f,m,Ab):e.render(function(a){P.renderBufferImmediate(a,f,d)})};this.initWebGLObjects=function(a){a.__webglObjects||(a.__webglObjects=[],a.__webglObjectsImmediate=[],a.__webglSprites=[],a.__webglFlares=[]);for(;a.__objectsAdded.length;)r(a.__objectsAdded[0],a),a.__objectsAdded.splice(0,1);for(;a.__objectsRemoved.length;)y(a.__objectsRemoved[0],a),a.__objectsRemoved.splice(0,1);for(var b=0,g=a.__webglObjects.length;b<g;b++){var h=a.__webglObjects[b].object;
-void 0===h.__webglInit&&(void 0!==h.__webglActive&&y(h,a),r(h,a));var k=h,l=k.geometry,p=void 0,n=void 0,s=void 0;if(l instanceof THREE.BufferGeometry){var t=m.DYNAMIC_DRAW,v=l.attributes,A=void 0,B=void 0;for(A in v)B=v[A],B.needsUpdate&&("index"===A?(m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,B.buffer),m.bufferData(m.ELEMENT_ARRAY_BUFFER,B.array,t)):(m.bindBuffer(m.ARRAY_BUFFER,B.buffer),m.bufferData(m.ARRAY_BUFFER,B.array,t)),B.needsUpdate=!1)}else if(k instanceof THREE.Mesh){for(var z=0,L=l.geometryGroupsList.length;z<
-L;z++)if(p=l.geometryGroupsList[z],s=d(k,p),l.buffersNeedUpdate&&c(p,k),n=s.attributes&&w(s),l.verticesNeedUpdate||l.morphTargetsNeedUpdate||l.elementsNeedUpdate||l.uvsNeedUpdate||l.normalsNeedUpdate||l.colorsNeedUpdate||l.tangentsNeedUpdate||n){var x=p,G=k,C=m.DYNAMIC_DRAW,E=!l.dynamic,J=s;if(x.__inittedArrays){var H=e(J),P=J.vertexColors?J.vertexColors:!1,N=f(J),K=H===THREE.SmoothShading,D=void 0,F=void 0,Q=void 0,I=void 0,U=void 0,fa=void 0,Y=void 0,ga=void 0,R=void 0,V=void 0,W=void 0,$=void 0,
-aa=void 0,ba=void 0,wa=void 0,X=void 0,Z=void 0,da=void 0,Ia=void 0,Ga=void 0,Ea=void 0,ia=void 0,za=void 0,ja=void 0,Ha=void 0,la=void 0,oa=void 0,qa=void 0,ra=void 0,ha=void 0,ya=void 0,Fa=void 0,Ca=void 0,Da=void 0,ma=void 0,Ka=void 0,ua=void 0,va=void 0,Oa=void 0,Ja=void 0,ab=0,bb=0,Ra=0,Sa=0,Pa=0,eb=0,Ta=0,qb=0,Ya=0,ta=0,Aa=0,O=0,Qa=void 0,fb=x.__vertexArray,cb=x.__uvArray,db=x.__uv2Array,tb=x.__normalArray,Ua=x.__tangentArray,gb=x.__colorArray,Va=x.__skinIndexArray,Wa=x.__skinWeightArray,ob=
-x.__morphTargetsArrays,sb=x.__morphNormalsArrays,pb=x.__webglCustomAttributesList,M=void 0,Tb=x.__faceArray,ub=x.__lineArray,La=G.geometry,Ab=La.elementsNeedUpdate,xb=La.uvsNeedUpdate,Db=La.normalsNeedUpdate,Gb=La.tangentsNeedUpdate,Hb=La.colorsNeedUpdate,Jb=La.morphTargetsNeedUpdate,fc=La.vertices,ea=x.faces3,hb=La.faces,Bb=La.faceVertexUvs[0],Cb=La.faceVertexUvs[1],gc=La.skinIndices,Ub=La.skinWeights,Vb=La.morphTargets,Eb=La.morphNormals;if(La.verticesNeedUpdate){D=0;for(F=ea.length;D<F;D++)I=hb[ea[D]],
-$=fc[I.a],aa=fc[I.b],ba=fc[I.c],fb[bb]=$.x,fb[bb+1]=$.y,fb[bb+2]=$.z,fb[bb+3]=aa.x,fb[bb+4]=aa.y,fb[bb+5]=aa.z,fb[bb+6]=ba.x,fb[bb+7]=ba.y,fb[bb+8]=ba.z,bb+=9;m.bindBuffer(m.ARRAY_BUFFER,x.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,fb,C)}if(Jb)for(ma=0,Ka=Vb.length;ma<Ka;ma++){D=Aa=0;for(F=ea.length;D<F;D++)Oa=ea[D],I=hb[Oa],$=Vb[ma].vertices[I.a],aa=Vb[ma].vertices[I.b],ba=Vb[ma].vertices[I.c],ua=ob[ma],ua[Aa]=$.x,ua[Aa+1]=$.y,ua[Aa+2]=$.z,ua[Aa+3]=aa.x,ua[Aa+4]=aa.y,ua[Aa+5]=aa.z,ua[Aa+6]=
-ba.x,ua[Aa+7]=ba.y,ua[Aa+8]=ba.z,J.morphNormals&&(K?(Ja=Eb[ma].vertexNormals[Oa],da=Ja.a,Ia=Ja.b,Ga=Ja.c):Ga=Ia=da=Eb[ma].faceNormals[Oa],va=sb[ma],va[Aa]=da.x,va[Aa+1]=da.y,va[Aa+2]=da.z,va[Aa+3]=Ia.x,va[Aa+4]=Ia.y,va[Aa+5]=Ia.z,va[Aa+6]=Ga.x,va[Aa+7]=Ga.y,va[Aa+8]=Ga.z),Aa+=9;m.bindBuffer(m.ARRAY_BUFFER,x.__webglMorphTargetsBuffers[ma]);m.bufferData(m.ARRAY_BUFFER,ob[ma],C);J.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglMorphNormalsBuffers[ma]),m.bufferData(m.ARRAY_BUFFER,sb[ma],C))}if(Ub.length){D=
-0;for(F=ea.length;D<F;D++)I=hb[ea[D]],ja=Ub[I.a],Ha=Ub[I.b],la=Ub[I.c],Wa[ta]=ja.x,Wa[ta+1]=ja.y,Wa[ta+2]=ja.z,Wa[ta+3]=ja.w,Wa[ta+4]=Ha.x,Wa[ta+5]=Ha.y,Wa[ta+6]=Ha.z,Wa[ta+7]=Ha.w,Wa[ta+8]=la.x,Wa[ta+9]=la.y,Wa[ta+10]=la.z,Wa[ta+11]=la.w,oa=gc[I.a],qa=gc[I.b],ra=gc[I.c],Va[ta]=oa.x,Va[ta+1]=oa.y,Va[ta+2]=oa.z,Va[ta+3]=oa.w,Va[ta+4]=qa.x,Va[ta+5]=qa.y,Va[ta+6]=qa.z,Va[ta+7]=qa.w,Va[ta+8]=ra.x,Va[ta+9]=ra.y,Va[ta+10]=ra.z,Va[ta+11]=ra.w,ta+=12;0<ta&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglSkinIndicesBuffer),
-m.bufferData(m.ARRAY_BUFFER,Va,C),m.bindBuffer(m.ARRAY_BUFFER,x.__webglSkinWeightsBuffer),m.bufferData(m.ARRAY_BUFFER,Wa,C))}if(Hb&&P){D=0;for(F=ea.length;D<F;D++)I=hb[ea[D]],Y=I.vertexColors,ga=I.color,3===Y.length&&P===THREE.VertexColors?(Ea=Y[0],ia=Y[1],za=Y[2]):za=ia=Ea=ga,gb[Ya]=Ea.r,gb[Ya+1]=Ea.g,gb[Ya+2]=Ea.b,gb[Ya+3]=ia.r,gb[Ya+4]=ia.g,gb[Ya+5]=ia.b,gb[Ya+6]=za.r,gb[Ya+7]=za.g,gb[Ya+8]=za.b,Ya+=9;0<Ya&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,gb,C))}if(Gb&&
-La.hasTangents){D=0;for(F=ea.length;D<F;D++)I=hb[ea[D]],R=I.vertexTangents,wa=R[0],X=R[1],Z=R[2],Ua[Ta]=wa.x,Ua[Ta+1]=wa.y,Ua[Ta+2]=wa.z,Ua[Ta+3]=wa.w,Ua[Ta+4]=X.x,Ua[Ta+5]=X.y,Ua[Ta+6]=X.z,Ua[Ta+7]=X.w,Ua[Ta+8]=Z.x,Ua[Ta+9]=Z.y,Ua[Ta+10]=Z.z,Ua[Ta+11]=Z.w,Ta+=12;m.bindBuffer(m.ARRAY_BUFFER,x.__webglTangentBuffer);m.bufferData(m.ARRAY_BUFFER,Ua,C)}if(Db&&H){D=0;for(F=ea.length;D<F;D++)if(I=hb[ea[D]],U=I.vertexNormals,fa=I.normal,3===U.length&&K)for(ha=0;3>ha;ha++)Fa=U[ha],tb[eb]=Fa.x,tb[eb+1]=Fa.y,
-tb[eb+2]=Fa.z,eb+=3;else for(ha=0;3>ha;ha++)tb[eb]=fa.x,tb[eb+1]=fa.y,tb[eb+2]=fa.z,eb+=3;m.bindBuffer(m.ARRAY_BUFFER,x.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,tb,C)}if(xb&&Bb&&N){D=0;for(F=ea.length;D<F;D++)if(Q=ea[D],V=Bb[Q],void 0!==V)for(ha=0;3>ha;ha++)Ca=V[ha],cb[Ra]=Ca.x,cb[Ra+1]=Ca.y,Ra+=2;0<Ra&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglUVBuffer),m.bufferData(m.ARRAY_BUFFER,cb,C))}if(xb&&Cb&&N){D=0;for(F=ea.length;D<F;D++)if(Q=ea[D],W=Cb[Q],void 0!==W)for(ha=0;3>ha;ha++)Da=W[ha],db[Sa]=
-Da.x,db[Sa+1]=Da.y,Sa+=2;0<Sa&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglUV2Buffer),m.bufferData(m.ARRAY_BUFFER,db,C))}if(Ab){D=0;for(F=ea.length;D<F;D++)Tb[Pa]=ab,Tb[Pa+1]=ab+1,Tb[Pa+2]=ab+2,Pa+=3,ub[qb]=ab,ub[qb+1]=ab+1,ub[qb+2]=ab,ub[qb+3]=ab+2,ub[qb+4]=ab+1,ub[qb+5]=ab+2,qb+=6,ab+=3;m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,x.__webglFaceBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Tb,C);m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,x.__webglLineBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,ub,C)}if(pb)for(ha=0,ya=pb.length;ha<
-ya;ha++)if(M=pb[ha],M.__original.needsUpdate){O=0;if(1===M.size)if(void 0===M.boundTo||"vertices"===M.boundTo)for(D=0,F=ea.length;D<F;D++)I=hb[ea[D]],M.array[O]=M.value[I.a],M.array[O+1]=M.value[I.b],M.array[O+2]=M.value[I.c],O+=3;else{if("faces"===M.boundTo)for(D=0,F=ea.length;D<F;D++)Qa=M.value[ea[D]],M.array[O]=Qa,M.array[O+1]=Qa,M.array[O+2]=Qa,O+=3}else if(2===M.size)if(void 0===M.boundTo||"vertices"===M.boundTo)for(D=0,F=ea.length;D<F;D++)I=hb[ea[D]],$=M.value[I.a],aa=M.value[I.b],ba=M.value[I.c],
-M.array[O]=$.x,M.array[O+1]=$.y,M.array[O+2]=aa.x,M.array[O+3]=aa.y,M.array[O+4]=ba.x,M.array[O+5]=ba.y,O+=6;else{if("faces"===M.boundTo)for(D=0,F=ea.length;D<F;D++)ba=aa=$=Qa=M.value[ea[D]],M.array[O]=$.x,M.array[O+1]=$.y,M.array[O+2]=aa.x,M.array[O+3]=aa.y,M.array[O+4]=ba.x,M.array[O+5]=ba.y,O+=6}else if(3===M.size){var sa;sa="c"===M.type?["r","g","b"]:["x","y","z"];if(void 0===M.boundTo||"vertices"===M.boundTo)for(D=0,F=ea.length;D<F;D++)I=hb[ea[D]],$=M.value[I.a],aa=M.value[I.b],ba=M.value[I.c],
-M.array[O]=$[sa[0]],M.array[O+1]=$[sa[1]],M.array[O+2]=$[sa[2]],M.array[O+3]=aa[sa[0]],M.array[O+4]=aa[sa[1]],M.array[O+5]=aa[sa[2]],M.array[O+6]=ba[sa[0]],M.array[O+7]=ba[sa[1]],M.array[O+8]=ba[sa[2]],O+=9;else if("faces"===M.boundTo)for(D=0,F=ea.length;D<F;D++)ba=aa=$=Qa=M.value[ea[D]],M.array[O]=$[sa[0]],M.array[O+1]=$[sa[1]],M.array[O+2]=$[sa[2]],M.array[O+3]=aa[sa[0]],M.array[O+4]=aa[sa[1]],M.array[O+5]=aa[sa[2]],M.array[O+6]=ba[sa[0]],M.array[O+7]=ba[sa[1]],M.array[O+8]=ba[sa[2]],O+=9;else if("faceVertices"===
-M.boundTo)for(D=0,F=ea.length;D<F;D++)Qa=M.value[ea[D]],$=Qa[0],aa=Qa[1],ba=Qa[2],M.array[O]=$[sa[0]],M.array[O+1]=$[sa[1]],M.array[O+2]=$[sa[2]],M.array[O+3]=aa[sa[0]],M.array[O+4]=aa[sa[1]],M.array[O+5]=aa[sa[2]],M.array[O+6]=ba[sa[0]],M.array[O+7]=ba[sa[1]],M.array[O+8]=ba[sa[2]],O+=9}else if(4===M.size)if(void 0===M.boundTo||"vertices"===M.boundTo)for(D=0,F=ea.length;D<F;D++)I=hb[ea[D]],$=M.value[I.a],aa=M.value[I.b],ba=M.value[I.c],M.array[O]=$.x,M.array[O+1]=$.y,M.array[O+2]=$.z,M.array[O+3]=
-$.w,M.array[O+4]=aa.x,M.array[O+5]=aa.y,M.array[O+6]=aa.z,M.array[O+7]=aa.w,M.array[O+8]=ba.x,M.array[O+9]=ba.y,M.array[O+10]=ba.z,M.array[O+11]=ba.w,O+=12;else if("faces"===M.boundTo)for(D=0,F=ea.length;D<F;D++)ba=aa=$=Qa=M.value[ea[D]],M.array[O]=$.x,M.array[O+1]=$.y,M.array[O+2]=$.z,M.array[O+3]=$.w,M.array[O+4]=aa.x,M.array[O+5]=aa.y,M.array[O+6]=aa.z,M.array[O+7]=aa.w,M.array[O+8]=ba.x,M.array[O+9]=ba.y,M.array[O+10]=ba.z,M.array[O+11]=ba.w,O+=12;else if("faceVertices"===M.boundTo)for(D=0,F=
-ea.length;D<F;D++)Qa=M.value[ea[D]],$=Qa[0],aa=Qa[1],ba=Qa[2],M.array[O]=$.x,M.array[O+1]=$.y,M.array[O+2]=$.z,M.array[O+3]=$.w,M.array[O+4]=aa.x,M.array[O+5]=aa.y,M.array[O+6]=aa.z,M.array[O+7]=aa.w,M.array[O+8]=ba.x,M.array[O+9]=ba.y,M.array[O+10]=ba.z,M.array[O+11]=ba.w,O+=12;m.bindBuffer(m.ARRAY_BUFFER,M.buffer);m.bufferData(m.ARRAY_BUFFER,M.array,C)}E&&(delete x.__inittedArrays,delete x.__colorArray,delete x.__normalArray,delete x.__tangentArray,delete x.__uvArray,delete x.__uv2Array,delete x.__faceArray,
-delete x.__vertexArray,delete x.__lineArray,delete x.__skinIndexArray,delete x.__skinWeightArray)}}l.verticesNeedUpdate=!1;l.morphTargetsNeedUpdate=!1;l.elementsNeedUpdate=!1;l.uvsNeedUpdate=!1;l.normalsNeedUpdate=!1;l.colorsNeedUpdate=!1;l.tangentsNeedUpdate=!1;l.buffersNeedUpdate=!1;s.attributes&&u(s)}else if(k instanceof THREE.Line){s=d(k,l);n=s.attributes&&w(s);if(l.verticesNeedUpdate||l.colorsNeedUpdate||l.lineDistancesNeedUpdate||n){var Xa=l,Wb=m.DYNAMIC_DRAW,Lb=void 0,Mb=void 0,Nb=void 0,Xb=
-void 0,pa=void 0,Yb=void 0,Fb=Xa.vertices,Ib=Xa.colors,Kb=Xa.lineDistances,Qb=Fb.length,Rb=Ib.length,Sb=Kb.length,Zb=Xa.__vertexArray,$b=Xa.__colorArray,lc=Xa.__lineDistanceArray,dc=Xa.colorsNeedUpdate,ec=Xa.lineDistancesNeedUpdate,hc=Xa.__webglCustomAttributesList,ac=void 0,mc=void 0,Ba=void 0,yb=void 0,Ma=void 0,na=void 0;if(Xa.verticesNeedUpdate){for(Lb=0;Lb<Qb;Lb++)Xb=Fb[Lb],pa=3*Lb,Zb[pa]=Xb.x,Zb[pa+1]=Xb.y,Zb[pa+2]=Xb.z;m.bindBuffer(m.ARRAY_BUFFER,Xa.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,
-Zb,Wb)}if(dc){for(Mb=0;Mb<Rb;Mb++)Yb=Ib[Mb],pa=3*Mb,$b[pa]=Yb.r,$b[pa+1]=Yb.g,$b[pa+2]=Yb.b;m.bindBuffer(m.ARRAY_BUFFER,Xa.__webglColorBuffer);m.bufferData(m.ARRAY_BUFFER,$b,Wb)}if(ec){for(Nb=0;Nb<Sb;Nb++)lc[Nb]=Kb[Nb];m.bindBuffer(m.ARRAY_BUFFER,Xa.__webglLineDistanceBuffer);m.bufferData(m.ARRAY_BUFFER,lc,Wb)}if(hc)for(ac=0,mc=hc.length;ac<mc;ac++)if(na=hc[ac],na.needsUpdate&&(void 0===na.boundTo||"vertices"===na.boundTo)){pa=0;yb=na.value.length;if(1===na.size)for(Ba=0;Ba<yb;Ba++)na.array[Ba]=na.value[Ba];
-else if(2===na.size)for(Ba=0;Ba<yb;Ba++)Ma=na.value[Ba],na.array[pa]=Ma.x,na.array[pa+1]=Ma.y,pa+=2;else if(3===na.size)if("c"===na.type)for(Ba=0;Ba<yb;Ba++)Ma=na.value[Ba],na.array[pa]=Ma.r,na.array[pa+1]=Ma.g,na.array[pa+2]=Ma.b,pa+=3;else for(Ba=0;Ba<yb;Ba++)Ma=na.value[Ba],na.array[pa]=Ma.x,na.array[pa+1]=Ma.y,na.array[pa+2]=Ma.z,pa+=3;else if(4===na.size)for(Ba=0;Ba<yb;Ba++)Ma=na.value[Ba],na.array[pa]=Ma.x,na.array[pa+1]=Ma.y,na.array[pa+2]=Ma.z,na.array[pa+3]=Ma.w,pa+=4;m.bindBuffer(m.ARRAY_BUFFER,
-na.buffer);m.bufferData(m.ARRAY_BUFFER,na.array,Wb)}}l.verticesNeedUpdate=!1;l.colorsNeedUpdate=!1;l.lineDistancesNeedUpdate=!1;s.attributes&&u(s)}else if(k instanceof THREE.ParticleSystem){s=d(k,l);n=s.attributes&&w(s);if(l.verticesNeedUpdate||l.colorsNeedUpdate||k.sortParticles||n){var ib=l,ic=m.DYNAMIC_DRAW,Ob=k,Na=void 0,jb=void 0,kb=void 0,T=void 0,lb=void 0,rb=void 0,bc=ib.vertices,jc=bc.length,kc=ib.colors,nc=kc.length,vb=ib.__vertexArray,wb=ib.__colorArray,mb=ib.__sortArray,oc=ib.verticesNeedUpdate,
-pc=ib.colorsNeedUpdate,nb=ib.__webglCustomAttributesList,Za=void 0,zb=void 0,ca=void 0,$a=void 0,ka=void 0,S=void 0;if(Ob.sortParticles){cc.copy(Pb);cc.multiply(Ob.matrixWorld);for(Na=0;Na<jc;Na++)kb=bc[Na],xa.copy(kb),xa.applyProjection(cc),mb[Na]=[xa.z,Na];mb.sort(q);for(Na=0;Na<jc;Na++)kb=bc[mb[Na][1]],T=3*Na,vb[T]=kb.x,vb[T+1]=kb.y,vb[T+2]=kb.z;for(jb=0;jb<nc;jb++)T=3*jb,rb=kc[mb[jb][1]],wb[T]=rb.r,wb[T+1]=rb.g,wb[T+2]=rb.b;if(nb)for(Za=0,zb=nb.length;Za<zb;Za++)if(S=nb[Za],void 0===S.boundTo||
-"vertices"===S.boundTo)if(T=0,$a=S.value.length,1===S.size)for(ca=0;ca<$a;ca++)lb=mb[ca][1],S.array[ca]=S.value[lb];else if(2===S.size)for(ca=0;ca<$a;ca++)lb=mb[ca][1],ka=S.value[lb],S.array[T]=ka.x,S.array[T+1]=ka.y,T+=2;else if(3===S.size)if("c"===S.type)for(ca=0;ca<$a;ca++)lb=mb[ca][1],ka=S.value[lb],S.array[T]=ka.r,S.array[T+1]=ka.g,S.array[T+2]=ka.b,T+=3;else for(ca=0;ca<$a;ca++)lb=mb[ca][1],ka=S.value[lb],S.array[T]=ka.x,S.array[T+1]=ka.y,S.array[T+2]=ka.z,T+=3;else if(4===S.size)for(ca=0;ca<
-$a;ca++)lb=mb[ca][1],ka=S.value[lb],S.array[T]=ka.x,S.array[T+1]=ka.y,S.array[T+2]=ka.z,S.array[T+3]=ka.w,T+=4}else{if(oc)for(Na=0;Na<jc;Na++)kb=bc[Na],T=3*Na,vb[T]=kb.x,vb[T+1]=kb.y,vb[T+2]=kb.z;if(pc)for(jb=0;jb<nc;jb++)rb=kc[jb],T=3*jb,wb[T]=rb.r,wb[T+1]=rb.g,wb[T+2]=rb.b;if(nb)for(Za=0,zb=nb.length;Za<zb;Za++)if(S=nb[Za],S.needsUpdate&&(void 0===S.boundTo||"vertices"===S.boundTo))if($a=S.value.length,T=0,1===S.size)for(ca=0;ca<$a;ca++)S.array[ca]=S.value[ca];else if(2===S.size)for(ca=0;ca<$a;ca++)ka=
-S.value[ca],S.array[T]=ka.x,S.array[T+1]=ka.y,T+=2;else if(3===S.size)if("c"===S.type)for(ca=0;ca<$a;ca++)ka=S.value[ca],S.array[T]=ka.r,S.array[T+1]=ka.g,S.array[T+2]=ka.b,T+=3;else for(ca=0;ca<$a;ca++)ka=S.value[ca],S.array[T]=ka.x,S.array[T+1]=ka.y,S.array[T+2]=ka.z,T+=3;else if(4===S.size)for(ca=0;ca<$a;ca++)ka=S.value[ca],S.array[T]=ka.x,S.array[T+1]=ka.y,S.array[T+2]=ka.z,S.array[T+3]=ka.w,T+=4}if(oc||Ob.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,ib.__webglVertexBuffer),m.bufferData(m.ARRAY_BUFFER,
-vb,ic);if(pc||Ob.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,ib.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,wb,ic);if(nb)for(Za=0,zb=nb.length;Za<zb;Za++)if(S=nb[Za],S.needsUpdate||Ob.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,S.buffer),m.bufferData(m.ARRAY_BUFFER,S.array,ic)}l.verticesNeedUpdate=!1;l.colorsNeedUpdate=!1;s.attributes&&u(s)}}};this.initMaterial=function(a,b,c,d){var e,f,g,h;a.addEventListener("dispose",Sb);var k,l,p,n;a instanceof THREE.MeshDepthMaterial?n="depth":a instanceof THREE.MeshNormalMaterial?
-n="normal":a instanceof THREE.MeshBasicMaterial?n="basic":a instanceof THREE.MeshLambertMaterial?n="lambert":a instanceof THREE.MeshPhongMaterial?n="phong":a instanceof THREE.LineBasicMaterial?n="basic":a instanceof THREE.LineDashedMaterial?n="dashed":a instanceof THREE.ParticleSystemMaterial&&(n="particle_basic");n&&(e=THREE.ShaderLib[n],a.uniforms=THREE.UniformsUtils.clone(e.uniforms),a.vertexShader=e.vertexShader,a.fragmentShader=e.fragmentShader);p=h=g=f=e=0;for(var q=b.length;p<q;p++){var r=
-b[p];r.onlyShadow||!1===r.visible||(r instanceof THREE.DirectionalLight&&e++,r instanceof THREE.PointLight&&f++,r instanceof THREE.SpotLight&&g++,r instanceof THREE.HemisphereLight&&h++)}q=p=0;for(r=b.length;q<r;q++){var s=b[q];s.castShadow&&(s instanceof THREE.SpotLight&&p++,s instanceof THREE.DirectionalLight&&!s.shadowCascade&&p++)}b=p;Gb&&d&&d.skeleton&&d.skeleton.useVertexTexture?p=1024:(p=m.getParameter(m.MAX_VERTEX_UNIFORM_VECTORS),p=Math.floor((p-20)/4),void 0!==d&&d instanceof THREE.SkinnedMesh&&
-(p=Math.min(d.skeleton.bones.length,p),p<d.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+d.skeleton.bones.length+", this GPU supports just "+p+" (try OpenGL instead of ANGLE)")));c={precision:Q,supportsVertexTextures:Jb,map:!!a.map,envMap:!!a.envMap,lightMap:!!a.lightMap,bumpMap:!!a.bumpMap,normalMap:!!a.normalMap,specularMap:!!a.specularMap,vertexColors:a.vertexColors,fog:c,useFog:a.fog,fogExp:c instanceof THREE.FogExp2,sizeAttenuation:a.sizeAttenuation,logarithmicDepthBuffer:da,
-skinning:a.skinning,maxBones:p,useVertexTexture:Gb&&d&&d.skeleton&&d.skeleton.useVertexTexture,morphTargets:a.morphTargets,morphNormals:a.morphNormals,maxMorphTargets:this.maxMorphTargets,maxMorphNormals:this.maxMorphNormals,maxDirLights:e,maxPointLights:f,maxSpotLights:g,maxHemiLights:h,maxShadows:b,shadowMapEnabled:this.shadowMapEnabled&&d.receiveShadow&&0<b,shadowMapType:this.shadowMapType,shadowMapDebug:this.shadowMapDebug,shadowMapCascade:this.shadowMapCascade,alphaTest:a.alphaTest,metal:a.metal,
-wrapAround:a.wrapAround,doubleSided:a.side===THREE.DoubleSide,flipSided:a.side===THREE.BackSide};d=[];n?d.push(n):(d.push(a.fragmentShader),d.push(a.vertexShader));for(var u in a.defines)d.push(u),d.push(a.defines[u]);for(l in c)d.push(l),d.push(c[l]);n=d.join();var t;l=0;for(u=ga.length;l<u;l++)if(d=ga[l],d.code===n){t=d;t.usedTimes++;break}void 0===t&&(t=new THREE.WebGLProgram(this,n,a,c),ga.push(t),P.info.memory.programs=ga.length);a.program=t;t=a.program.attributes;if(a.morphTargets)for(a.numSupportedMorphTargets=
-0,u="morphTarget",l=0;l<this.maxMorphTargets;l++)n=u+l,0<=t[n]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(a.numSupportedMorphNormals=0,u="morphNormal",l=0;l<this.maxMorphNormals;l++)n=u+l,0<=t[n]&&a.numSupportedMorphNormals++;a.uniformsList=[];for(k in a.uniforms)a.uniformsList.push([a.uniforms[k],k])};this.setFaceCulling=function(a,b){a===THREE.CullFaceNone?m.disable(m.CULL_FACE):(b===THREE.FrontFaceDirectionCW?m.frontFace(m.CW):m.frontFace(m.CCW),a===THREE.CullFaceBack?m.cullFace(m.BACK):
-a===THREE.CullFaceFront?m.cullFace(m.FRONT):m.cullFace(m.FRONT_AND_BACK),m.enable(m.CULL_FACE))};this.setMaterialFaces=function(a){var b=a.side===THREE.DoubleSide;a=a.side===THREE.BackSide;Ga!==b&&(b?m.disable(m.CULL_FACE):m.enable(m.CULL_FACE),Ga=b);ha!==a&&(a?m.frontFace(m.CW):m.frontFace(m.CCW),ha=a)};this.setDepthTest=function(a){ia!==a&&(a?m.enable(m.DEPTH_TEST):m.disable(m.DEPTH_TEST),ia=a)};this.setDepthWrite=function(a){ma!==a&&(m.depthMask(a),ma=a)};this.setBlending=function(a,b,c,d){a!==
-Oa&&(a===THREE.NoBlending?m.disable(m.BLEND):a===THREE.AdditiveBlending?(m.enable(m.BLEND),m.blendEquation(m.FUNC_ADD),m.blendFunc(m.SRC_ALPHA,m.ONE)):a===THREE.SubtractiveBlending?(m.enable(m.BLEND),m.blendEquation(m.FUNC_ADD),m.blendFunc(m.ZERO,m.ONE_MINUS_SRC_COLOR)):a===THREE.MultiplyBlending?(m.enable(m.BLEND),m.blendEquation(m.FUNC_ADD),m.blendFunc(m.ZERO,m.SRC_COLOR)):a===THREE.CustomBlending?m.enable(m.BLEND):(m.enable(m.BLEND),m.blendEquationSeparate(m.FUNC_ADD,m.FUNC_ADD),m.blendFuncSeparate(m.SRC_ALPHA,
-m.ONE_MINUS_SRC_ALPHA,m.ONE,m.ONE_MINUS_SRC_ALPHA)),Oa=a);if(a===THREE.CustomBlending){if(b!==Ra&&(m.blendEquation(z(b)),Ra=b),c!==Sa||d!==Fa)m.blendFunc(z(c),z(d)),Sa=c,Fa=d}else Fa=Sa=Ra=null};this.setTexture=function(a,b){if(a.needsUpdate){a.__webglInit||(a.__webglInit=!0,a.addEventListener("dispose",Hb),a.__webglTexture=m.createTexture(),P.info.memory.textures++);m.activeTexture(m.TEXTURE0+b);m.bindTexture(m.TEXTURE_2D,a.__webglTexture);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,a.flipY);m.pixelStorei(m.UNPACK_PREMULTIPLY_ALPHA_WEBGL,
-a.premultiplyAlpha);m.pixelStorei(m.UNPACK_ALIGNMENT,a.unpackAlignment);var c=a.image,d=THREE.Math.isPowerOfTwo(c.width)&&THREE.Math.isPowerOfTwo(c.height),e=z(a.format),f=z(a.type);D(m.TEXTURE_2D,a,d);var g=a.mipmaps;if(a instanceof THREE.DataTexture)if(0<g.length&&d){for(var h=0,k=g.length;h<k;h++)c=g[h],m.texImage2D(m.TEXTURE_2D,h,e,c.width,c.height,0,e,f,c.data);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,e,c.width,c.height,0,e,f,c.data);else if(a instanceof THREE.CompressedTexture)for(h=
-0,k=g.length;h<k;h++)c=g[h],a.format!==THREE.RGBAFormat?m.compressedTexImage2D(m.TEXTURE_2D,h,e,c.width,c.height,0,c.data):m.texImage2D(m.TEXTURE_2D,h,e,c.width,c.height,0,e,f,c.data);else if(0<g.length&&d){h=0;for(k=g.length;h<k;h++)c=g[h],m.texImage2D(m.TEXTURE_2D,h,e,e,f,c);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,e,e,f,a.image);a.generateMipmaps&&d&&m.generateMipmap(m.TEXTURE_2D);a.needsUpdate=!1;if(a.onUpdate)a.onUpdate()}else m.activeTexture(m.TEXTURE0+b),m.bindTexture(m.TEXTURE_2D,
-a.__webglTexture)};this.setRenderTarget=function(a){var b=a instanceof THREE.WebGLRenderTargetCube;if(a&&!a.__webglFramebuffer){void 0===a.depthBuffer&&(a.depthBuffer=!0);void 0===a.stencilBuffer&&(a.stencilBuffer=!0);a.addEventListener("dispose",Rb);a.__webglTexture=m.createTexture();P.info.memory.textures++;var c=THREE.Math.isPowerOfTwo(a.width)&&THREE.Math.isPowerOfTwo(a.height),d=z(a.format),e=z(a.type);if(b){a.__webglFramebuffer=[];a.__webglRenderbuffer=[];m.bindTexture(m.TEXTURE_CUBE_MAP,a.__webglTexture);
-D(m.TEXTURE_CUBE_MAP,a,c);for(var f=0;6>f;f++){a.__webglFramebuffer[f]=m.createFramebuffer();a.__webglRenderbuffer[f]=m.createRenderbuffer();m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+f,0,d,a.width,a.height,0,d,e,null);var g=a,h=m.TEXTURE_CUBE_MAP_POSITIVE_X+f;m.bindFramebuffer(m.FRAMEBUFFER,a.__webglFramebuffer[f]);m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,h,g.__webglTexture,0);C(a.__webglRenderbuffer[f],a)}c&&m.generateMipmap(m.TEXTURE_CUBE_MAP)}else a.__webglFramebuffer=m.createFramebuffer(),
-a.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:m.createRenderbuffer(),m.bindTexture(m.TEXTURE_2D,a.__webglTexture),D(m.TEXTURE_2D,a,c),m.texImage2D(m.TEXTURE_2D,0,d,a.width,a.height,0,d,e,null),d=m.TEXTURE_2D,m.bindFramebuffer(m.FRAMEBUFFER,a.__webglFramebuffer),m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,d,a.__webglTexture,0),a.shareDepthFrom?a.depthBuffer&&!a.stencilBuffer?m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_ATTACHMENT,m.RENDERBUFFER,a.__webglRenderbuffer):
-a.depthBuffer&&a.stencilBuffer&&m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_STENCIL_ATTACHMENT,m.RENDERBUFFER,a.__webglRenderbuffer):C(a.__webglRenderbuffer,a),c&&m.generateMipmap(m.TEXTURE_2D);b?m.bindTexture(m.TEXTURE_CUBE_MAP,null):m.bindTexture(m.TEXTURE_2D,null);m.bindRenderbuffer(m.RENDERBUFFER,null);m.bindFramebuffer(m.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=Da,a=Ja,d=Ca,e=va);b!==Ha&&(m.bindFramebuffer(m.FRAMEBUFFER,
-b),m.viewport(d,e,c,a),Ha=b);ja=c;ra=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);this.addPostPlugin(new THREE.SpritePlugin);this.addPostPlugin(new THREE.LensFlarePlugin)};THREE.WebGLRenderTarget=function(a,b,c){this.width=a;this.height=b;c=c||{};this.wrapS=void 0!==c.wrapS?c.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==c.wrapT?c.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==c.magFilter?c.magFilter:THREE.LinearFilter;this.minFilter=void 0!==c.minFilter?c.minFilter:THREE.LinearMipMapLinearFilter;this.anisotropy=void 0!==c.anisotropy?c.anisotropy:1;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.format=void 0!==c.format?c.format:
-THREE.RGBAFormat;this.type=void 0!==c.type?c.type:THREE.UnsignedByteType;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.generateMipmaps=!0;this.shareDepthFrom=null};
-THREE.WebGLRenderTarget.prototype={constructor:THREE.WebGLRenderTarget,setSize:function(a,b){this.width=a;this.height=b},clone:function(){var a=new THREE.WebGLRenderTarget(this.width,this.height);a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.anisotropy=this.anisotropy;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.format=this.format;a.type=this.type;a.depthBuffer=this.depthBuffer;a.stencilBuffer=this.stencilBuffer;a.generateMipmaps=this.generateMipmaps;
-a.shareDepthFrom=this.shareDepthFrom;return a},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.WebGLRenderTarget.prototype);THREE.WebGLRenderTargetCube=function(a,b,c){THREE.WebGLRenderTarget.call(this,a,b,c);this.activeCubeFace=0};THREE.WebGLRenderTargetCube.prototype=Object.create(THREE.WebGLRenderTarget.prototype);THREE.WebGLProgram=function(){var a=0;return function(b,c,d,e){var f=b.context,g=d.fragmentShader,h=d.vertexShader,k=d.uniforms,l=d.attributes,n=d.defines,q=d.index0AttributeName;void 0===q&&!0===e.morphTargets&&(q="position");var p="SHADOWMAP_TYPE_BASIC";e.shadowMapType===THREE.PCFShadowMap?p="SHADOWMAP_TYPE_PCF":e.shadowMapType===THREE.PCFSoftShadowMap&&(p="SHADOWMAP_TYPE_PCF_SOFT");var s,t;s=[];for(var r in n)t=n[r],!1!==t&&(t="#define "+r+" "+t,s.push(t));s=s.join("\n");n=f.createProgram();d instanceof
-THREE.RawShaderMaterial?b=d="":(d=["precision "+e.precision+" float;","precision "+e.precision+" int;",s,e.supportsVertexTextures?"#define VERTEX_TEXTURES":"",b.gammaInput?"#define GAMMA_INPUT":"",b.gammaOutput?"#define GAMMA_OUTPUT":"","#define MAX_DIR_LIGHTS "+e.maxDirLights,"#define MAX_POINT_LIGHTS "+e.maxPointLights,"#define MAX_SPOT_LIGHTS "+e.maxSpotLights,"#define MAX_HEMI_LIGHTS "+e.maxHemiLights,"#define MAX_SHADOWS "+e.maxShadows,"#define MAX_BONES "+e.maxBones,e.map?"#define USE_MAP":
-"",e.envMap?"#define USE_ENVMAP":"",e.lightMap?"#define USE_LIGHTMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.vertexColors?"#define USE_COLOR":"",e.skinning?"#define USE_SKINNING":"",e.useVertexTexture?"#define BONE_TEXTURE":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals?"#define USE_MORPHNORMALS":"",e.wrapAround?"#define WRAP_AROUND":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":
-"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+p:"",e.shadowMapDebug?"#define SHADOWMAP_DEBUG":"",e.shadowMapCascade?"#define SHADOWMAP_CASCADE":"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nattribute vec2 uv2;\n#ifdef USE_COLOR\n\tattribute vec3 color;\n#endif\n#ifdef USE_MORPHTARGETS\n\tattribute vec3 morphTarget0;\n\tattribute vec3 morphTarget1;\n\tattribute vec3 morphTarget2;\n\tattribute vec3 morphTarget3;\n\t#ifdef USE_MORPHNORMALS\n\t\tattribute vec3 morphNormal0;\n\t\tattribute vec3 morphNormal1;\n\t\tattribute vec3 morphNormal2;\n\t\tattribute vec3 morphNormal3;\n\t#else\n\t\tattribute vec3 morphTarget4;\n\t\tattribute vec3 morphTarget5;\n\t\tattribute vec3 morphTarget6;\n\t\tattribute vec3 morphTarget7;\n\t#endif\n#endif\n#ifdef USE_SKINNING\n\tattribute vec4 skinIndex;\n\tattribute vec4 skinWeight;\n#endif\n"].join("\n"),
-b=["precision "+e.precision+" float;","precision "+e.precision+" int;",e.bumpMap||e.normalMap?"#extension GL_OES_standard_derivatives : enable":"",s,"#define MAX_DIR_LIGHTS "+e.maxDirLights,"#define MAX_POINT_LIGHTS "+e.maxPointLights,"#define MAX_SPOT_LIGHTS "+e.maxSpotLights,"#define MAX_HEMI_LIGHTS "+e.maxHemiLights,"#define MAX_SHADOWS "+e.maxShadows,e.alphaTest?"#define ALPHATEST "+e.alphaTest:"",b.gammaInput?"#define GAMMA_INPUT":"",b.gammaOutput?"#define GAMMA_OUTPUT":"",e.useFog&&e.fog?"#define USE_FOG":
-"",e.useFog&&e.fogExp?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.lightMap?"#define USE_LIGHTMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.vertexColors?"#define USE_COLOR":"",e.metal?"#define METAL":"",e.wrapAround?"#define WRAP_AROUND":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?
-"#define "+p:"",e.shadowMapDebug?"#define SHADOWMAP_DEBUG":"",e.shadowMapCascade?"#define SHADOWMAP_CASCADE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\n"].join("\n"));h=new THREE.WebGLShader(f,f.VERTEX_SHADER,d+h);g=new THREE.WebGLShader(f,f.FRAGMENT_SHADER,b+g);f.attachShader(n,h);f.attachShader(n,g);void 0!==q&&f.bindAttribLocation(n,0,q);f.linkProgram(n);!1===f.getProgramParameter(n,f.LINK_STATUS)&&(console.error("Could not initialise shader"),
-console.error("gl.VALIDATE_STATUS",f.getProgramParameter(n,f.VALIDATE_STATUS)),console.error("gl.getError()",f.getError()));""!==f.getProgramInfoLog(n)&&console.error("gl.getProgramInfoLog()",f.getProgramInfoLog(n));f.deleteShader(h);f.deleteShader(g);q="viewMatrix modelViewMatrix projectionMatrix normalMatrix modelMatrix cameraPosition morphTargetInfluences".split(" ");e.useVertexTexture?(q.push("boneTexture"),q.push("boneTextureWidth"),q.push("boneTextureHeight")):q.push("boneGlobalMatrices");e.logarithmicDepthBuffer&&
-q.push("logDepthBufFC");for(var v in k)q.push(v);k=q;v={};q=0;for(b=k.length;q<b;q++)p=k[q],v[p]=f.getUniformLocation(n,p);this.uniforms=v;q="position normal uv uv2 tangent color skinIndex skinWeight lineDistance".split(" ");for(k=0;k<e.maxMorphTargets;k++)q.push("morphTarget"+k);for(k=0;k<e.maxMorphNormals;k++)q.push("morphNormal"+k);for(var w in l)q.push(w);e=q;l={};w=0;for(k=e.length;w<k;w++)v=e[w],l[v]=f.getAttribLocation(n,v);this.attributes=l;this.id=a++;this.code=c;this.usedTimes=1;this.program=
-n;this.vertexShader=h;this.fragmentShader=g;return this}}();THREE.WebGLShader=function(){var a=function(a){a=a.split("\n");for(var c=0;c<a.length;c++)a[c]=c+1+": "+a[c];return a.join("\n")};return function(b,c,d){c=b.createShader(c);b.shaderSource(c,d);b.compileShader(c);!1===b.getShaderParameter(c,b.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile.");""!==b.getShaderInfoLog(c)&&(console.error("THREE.WebGLShader:","gl.getShaderInfoLog()",b.getShaderInfoLog(c)),console.error(a(d)));return c}}();THREE.RenderableVertex=function(){this.position=new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.visible=!0};THREE.RenderableVertex.prototype.copy=function(a){this.positionWorld.copy(a.positionWorld);this.positionScreen.copy(a.positionScreen)};THREE.RenderableFace=function(){this.id=0;this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.normalModel=new THREE.Vector3;this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.vertexNormalsLength=0;this.material=this.color=null;this.uvs=[new THREE.Vector2,new THREE.Vector2,new THREE.Vector2];this.z=0};THREE.RenderableObject=function(){this.id=0;this.object=null;this.z=0};THREE.RenderableSprite=function(){this.id=0;this.object=null;this.rotation=this.z=this.y=this.x=0;this.scale=new THREE.Vector2;this.material=null};THREE.RenderableLine=function(){this.id=0;this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.vertexColors=[new THREE.Color,new THREE.Color];this.material=null;this.z=0};THREE.GeometryUtils={merge:function(a,b,c){console.warn("DEPRECATED: GeometryUtils's .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");var d;b instanceof THREE.Mesh&&(b.matrixAutoUpdate&&b.updateMatrix(),d=b.matrix,b=b.geometry);a.merge(b,d,c)},randomPointInTriangle:function(){var a=new THREE.Vector3;return function(b,c,d){var e=new THREE.Vector3,f=THREE.Math.random16(),g=THREE.Math.random16();1<f+g&&(f=1-f,g=1-g);var h=1-f-g;e.copy(b);e.multiplyScalar(f);
-a.copy(c);a.multiplyScalar(g);e.add(a);a.copy(d);a.multiplyScalar(h);e.add(a);return e}}(),randomPointInFace:function(a,b,c){return THREE.GeometryUtils.randomPointInTriangle(b.vertices[a.a],b.vertices[a.b],b.vertices[a.c])},randomPointsInGeometry:function(a,b){function c(a){function b(c,d){if(d<c)return c;var e=c+Math.floor((d-c)/2);return l[e]>a?b(c,e-1):l[e]<a?b(e+1,d):e}return b(0,l.length-1)}var d,e,f=a.faces,g=a.vertices,h=f.length,k=0,l=[],n,q,p;for(e=0;e<h;e++)d=f[e],n=g[d.a],q=g[d.b],p=g[d.c],
-d._area=THREE.GeometryUtils.triangleArea(n,q,p),k+=d._area,l[e]=k;d=[];for(e=0;e<b;e++)g=THREE.Math.random16()*k,g=c(g),d[e]=THREE.GeometryUtils.randomPointInFace(f[g],a,!0);return d},triangleArea:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c,d,e){a.subVectors(d,c);b.subVectors(e,c);a.cross(b);return 0.5*a.length()}}(),center:function(a){a.computeBoundingBox();var b=a.boundingBox,c=new THREE.Vector3;c.addVectors(b.min,b.max);c.multiplyScalar(-0.5);a.applyMatrix((new THREE.Matrix4).makeTranslation(c.x,
-c.y,c.z));a.computeBoundingBox();return c}};THREE.ImageUtils={crossOrigin:void 0,loadTexture:function(a,b,c,d){var e=new THREE.ImageLoader;e.crossOrigin=this.crossOrigin;var f=new THREE.Texture(void 0,b);b=e.load(a,function(){f.needsUpdate=!0;c&&c(f)},void 0,function(a){d&&d(a)});f.image=b;f.sourceFile=a;return f},loadCompressedTexture:function(a,b,c,d){var e=new THREE.CompressedTexture;e.mapping=b;var f=new XMLHttpRequest;f.onload=function(){var a=THREE.ImageUtils.parseDDS(f.response,!0);e.format=a.format;e.mipmaps=a.mipmaps;e.image.width=
-a.width;e.image.height=a.height;e.generateMipmaps=!1;e.needsUpdate=!0;c&&c(e)};f.onerror=d;f.open("GET",a,!0);f.responseType="arraybuffer";f.send(null);return e},loadTextureCube:function(a,b,c,d){var e=[];e.loadCount=0;d=new THREE.ImageLoader;d.crossOrigin=this.crossOrigin;var f=new THREE.Texture;f.image=e;void 0!==b&&(f.mapping=b);f.flipY=!1;b=0;for(var g=a.length;b<g;++b){var h=d.load(a[b],function(){e.loadCount+=1;6===e.loadCount&&(f.needsUpdate=!0,c&&c(f))});e[b]=h}return f},loadCompressedTextureCube:function(a,
-b,c,d){var e=[];e.loadCount=0;var f=new THREE.CompressedTexture;f.image=e;void 0!==b&&(f.mapping=b);f.flipY=!1;f.generateMipmaps=!1;b=function(a,b){return function(){var d=THREE.ImageUtils.parseDDS(a.response,!0);b.format=d.format;b.mipmaps=d.mipmaps;b.width=d.width;b.height=d.height;e.loadCount+=1;6===e.loadCount&&(f.format=d.format,f.needsUpdate=!0,c&&c(f))}};if(a instanceof Array)for(var g=0,h=a.length;g<h;++g){var k={};e[g]=k;var l=new XMLHttpRequest;l.onload=b(l,k);l.onerror=d;k=a[g];l.open("GET",
-k,!0);l.responseType="arraybuffer";l.send(null)}else l=new XMLHttpRequest,l.onload=function(){var a=THREE.ImageUtils.parseDDS(l.response,!0);if(a.isCubemap){for(var b=a.mipmaps.length/a.mipmapCount,d=0;d<b;d++){e[d]={mipmaps:[]};for(var g=0;g<a.mipmapCount;g++)e[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+g]),e[d].format=a.format,e[d].width=a.width,e[d].height=a.height}f.format=a.format;f.needsUpdate=!0;c&&c(f)}},l.onerror=d,l.open("GET",a,!0),l.responseType="arraybuffer",l.send(null);return f},loadDDSTexture:function(a,
-b,c,d){var e=[];e.loadCount=0;var f=new THREE.CompressedTexture;f.image=e;void 0!==b&&(f.mapping=b);f.flipY=!1;f.generateMipmaps=!1;var g=new XMLHttpRequest;g.onload=function(){var a=THREE.ImageUtils.parseDDS(g.response,!0);if(a.isCubemap)for(var b=a.mipmaps.length/a.mipmapCount,d=0;d<b;d++){e[d]={mipmaps:[]};for(var n=0;n<a.mipmapCount;n++)e[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+n]),e[d].format=a.format,e[d].width=a.width,e[d].height=a.height}else f.image.width=a.width,f.image.height=a.height,
-f.mipmaps=a.mipmaps;f.format=a.format;f.needsUpdate=!0;c&&c(f)};g.onerror=d;g.open("GET",a,!0);g.responseType="arraybuffer";g.send(null);return f},parseDDS:function(a,b){function c(a){return a.charCodeAt(0)+(a.charCodeAt(1)<<8)+(a.charCodeAt(2)<<16)+(a.charCodeAt(3)<<24)}function d(a,b,c,d){var e=c*d*4;a=new Uint8Array(a,b,e);for(var e=new Uint8Array(e),f=b=0,g=0;g<d;g++)for(var h=0;h<c;h++){var k=a[f];f++;var l=a[f];f++;var p=a[f];f++;var n=a[f];f++;e[b]=p;b++;e[b]=l;b++;e[b]=k;b++;e[b]=n;b++}return e}
-var e={mipmaps:[],width:0,height:0,format:null,mipmapCount:1},f=c("DXT1"),g=c("DXT3"),h=c("DXT5"),k=new Int32Array(a,0,31);if(542327876!==k[0])return console.error("ImageUtils.parseDDS(): Invalid magic number in DDS header"),e;if(!k[20]&4)return console.error("ImageUtils.parseDDS(): Unsupported format, must contain a FourCC code"),e;var l=k[21],n=!1;switch(l){case f:f=8;e.format=THREE.RGB_S3TC_DXT1_Format;break;case g:f=16;e.format=THREE.RGBA_S3TC_DXT3_Format;break;case h:f=16;e.format=THREE.RGBA_S3TC_DXT5_Format;
-break;default:if(32==k[22]&&k[23]&16711680&&k[24]&65280&&k[25]&255&&k[26]&4278190080)n=!0,f=64,e.format=THREE.RGBAFormat;else return console.error("ImageUtils.parseDDS(): Unsupported FourCC code: ",String.fromCharCode(l&255,l>>8&255,l>>16&255,l>>24&255)),e}e.mipmapCount=1;k[2]&131072&&!1!==b&&(e.mipmapCount=Math.max(1,k[7]));e.isCubemap=k[28]&512?!0:!1;e.width=k[4];e.height=k[3];for(var k=k[1]+4,g=e.width,h=e.height,l=e.isCubemap?6:1,q=0;q<l;q++){for(var p=0;p<e.mipmapCount;p++){if(n)var s=d(a,k,
-g,h),t=s.length;else t=Math.max(4,g)/4*Math.max(4,h)/4*f,s=new Uint8Array(a,k,t);e.mipmaps.push({data:s,width:g,height:h});k+=t;g=Math.max(0.5*g,1);h=Math.max(0.5*h,1)}g=e.width;h=e.height}return e},getNormalMap:function(a,b){var c=function(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);return[a[0]/b,a[1]/b,a[2]/b]};b|=1;var d=a.width,e=a.height,f=document.createElement("canvas");f.width=d;f.height=e;var g=f.getContext("2d");g.drawImage(a,0,0);for(var h=g.getImageData(0,0,d,e).data,k=g.createImageData(d,
-e),l=k.data,n=0;n<d;n++)for(var q=0;q<e;q++){var p=0>q-1?0:q-1,s=q+1>e-1?e-1:q+1,t=0>n-1?0:n-1,r=n+1>d-1?d-1:n+1,v=[],w=[0,0,h[4*(q*d+n)]/255*b];v.push([-1,0,h[4*(q*d+t)]/255*b]);v.push([-1,-1,h[4*(p*d+t)]/255*b]);v.push([0,-1,h[4*(p*d+n)]/255*b]);v.push([1,-1,h[4*(p*d+r)]/255*b]);v.push([1,0,h[4*(q*d+r)]/255*b]);v.push([1,1,h[4*(s*d+r)]/255*b]);v.push([0,1,h[4*(s*d+n)]/255*b]);v.push([-1,1,h[4*(s*d+t)]/255*b]);p=[];t=v.length;for(s=0;s<t;s++){var r=v[s],u=v[(s+1)%t],r=[r[0]-w[0],r[1]-w[1],r[2]-w[2]],
-u=[u[0]-w[0],u[1]-w[1],u[2]-w[2]];p.push(c([r[1]*u[2]-r[2]*u[1],r[2]*u[0]-r[0]*u[2],r[0]*u[1]-r[1]*u[0]]))}v=[0,0,0];for(s=0;s<p.length;s++)v[0]+=p[s][0],v[1]+=p[s][1],v[2]+=p[s][2];v[0]/=p.length;v[1]/=p.length;v[2]/=p.length;w=4*(q*d+n);l[w]=(v[0]+1)/2*255|0;l[w+1]=(v[1]+1)/2*255|0;l[w+2]=255*v[2]|0;l[w+3]=255}g.putImageData(k,0,0);return f},generateDataTexture:function(a,b,c){var d=a*b,e=new Uint8Array(3*d),f=Math.floor(255*c.r),g=Math.floor(255*c.g);c=Math.floor(255*c.b);for(var h=0;h<d;h++)e[3*
-h]=f,e[3*h+1]=g,e[3*h+2]=c;a=new THREE.DataTexture(e,a,b,THREE.RGBFormat);a.needsUpdate=!0;return a}};THREE.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new THREE.Object3D,d=0,e=b.length;d<e;d++)c.add(new THREE.Mesh(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},attach:function(a,b,c){var d=new THREE.Matrix4;d.getInverse(c.matrixWorld);a.applyMatrix(d);b.remove(a);c.add(a)}};THREE.FontUtils={faces:{},face:"helvetiker",weight:"normal",style:"normal",size:150,divisions:10,getFace:function(){return this.faces[this.face][this.weight][this.style]},loadFace:function(a){var b=a.familyName.toLowerCase();this.faces[b]=this.faces[b]||{};this.faces[b][a.cssFontWeight]=this.faces[b][a.cssFontWeight]||{};this.faces[b][a.cssFontWeight][a.cssFontStyle]=a;return this.faces[b][a.cssFontWeight][a.cssFontStyle]=a},drawText:function(a){var b=this.getFace(),c=this.size/b.resolution,d=0,e=
-String(a).split(""),f=e.length,g=[];for(a=0;a<f;a++){var h=new THREE.Path,h=this.extractGlyphPoints(e[a],b,c,d,h),d=d+h.offset;g.push(h.path)}return{paths:g,offset:d/2}},extractGlyphPoints:function(a,b,c,d,e){var f=[],g,h,k,l,n,q,p,s,t,r,v,w=b.glyphs[a]||b.glyphs["?"];if(w){if(w.o)for(b=w._cachedOutline||(w._cachedOutline=w.o.split(" ")),l=b.length,a=0;a<l;)switch(k=b[a++],k){case "m":k=b[a++]*c+d;n=b[a++]*c;e.moveTo(k,n);break;case "l":k=b[a++]*c+d;n=b[a++]*c;e.lineTo(k,n);break;case "q":k=b[a++]*
-c+d;n=b[a++]*c;s=b[a++]*c+d;t=b[a++]*c;e.quadraticCurveTo(s,t,k,n);if(g=f[f.length-1])for(q=g.x,p=g.y,g=1,h=this.divisions;g<=h;g++){var u=g/h;THREE.Shape.Utils.b2(u,q,s,k);THREE.Shape.Utils.b2(u,p,t,n)}break;case "b":if(k=b[a++]*c+d,n=b[a++]*c,s=b[a++]*c+d,t=b[a++]*-c,r=b[a++]*c+d,v=b[a++]*-c,e.bezierCurveTo(k,n,s,t,r,v),g=f[f.length-1])for(q=g.x,p=g.y,g=1,h=this.divisions;g<=h;g++)u=g/h,THREE.Shape.Utils.b3(u,q,s,r,k),THREE.Shape.Utils.b3(u,p,t,v,n)}return{offset:w.ha*c,path:e}}}};
-THREE.FontUtils.generateShapes=function(a,b){b=b||{};var c=void 0!==b.curveSegments?b.curveSegments:4,d=void 0!==b.font?b.font:"helvetiker",e=void 0!==b.weight?b.weight:"normal",f=void 0!==b.style?b.style:"normal";THREE.FontUtils.size=void 0!==b.size?b.size:100;THREE.FontUtils.divisions=c;THREE.FontUtils.face=d;THREE.FontUtils.weight=e;THREE.FontUtils.style=f;c=THREE.FontUtils.drawText(a).paths;d=[];e=0;for(f=c.length;e<f;e++)Array.prototype.push.apply(d,c[e].toShapes());return d};
-(function(a){var b=function(a){for(var b=a.length,e=0,f=b-1,g=0;g<b;f=g++)e+=a[f].x*a[g].y-a[g].x*a[f].y;return 0.5*e};a.Triangulate=function(a,d){var e=a.length;if(3>e)return null;var f=[],g=[],h=[],k,l,n;if(0<b(a))for(l=0;l<e;l++)g[l]=l;else for(l=0;l<e;l++)g[l]=e-1-l;var q=2*e;for(l=e-1;2<e;){if(0>=q--){console.log("Warning, unable to triangulate polygon!");break}k=l;e<=k&&(k=0);l=k+1;e<=l&&(l=0);n=l+1;e<=n&&(n=0);var p;a:{var s=p=void 0,t=void 0,r=void 0,v=void 0,w=void 0,u=void 0,y=void 0,L=
-void 0,s=a[g[k]].x,t=a[g[k]].y,r=a[g[l]].x,v=a[g[l]].y,w=a[g[n]].x,u=a[g[n]].y;if(1E-10>(r-s)*(u-t)-(v-t)*(w-s))p=!1;else{var x=void 0,N=void 0,J=void 0,B=void 0,K=void 0,A=void 0,G=void 0,D=void 0,C=void 0,F=void 0,C=D=G=L=y=void 0,x=w-r,N=u-v,J=s-w,B=t-u,K=r-s,A=v-t;for(p=0;p<e;p++)if(y=a[g[p]].x,L=a[g[p]].y,!(y===s&&L===t||y===r&&L===v||y===w&&L===u)&&(G=y-s,D=L-t,C=y-r,F=L-v,y-=w,L-=u,C=x*F-N*C,G=K*D-A*G,D=J*L-B*y,-1E-10<=C&&-1E-10<=D&&-1E-10<=G)){p=!1;break a}p=!0}}if(p){f.push([a[g[k]],a[g[l]],
-a[g[n]]]);h.push([g[k],g[l],g[n]]);k=l;for(n=l+1;n<e;k++,n++)g[k]=g[n];e--;q=2*e}}return d?h:f};a.Triangulate.area=b;return a})(THREE.FontUtils);self._typeface_js={faces:THREE.FontUtils.faces,loadFace:THREE.FontUtils.loadFace};THREE.typeface_js=self._typeface_js;THREE.Curve=function(){};THREE.Curve.prototype.getPoint=function(a){console.log("Warning, getPoint() not implemented!");return null};THREE.Curve.prototype.getPointAt=function(a){a=this.getUtoTmapping(a);return this.getPoint(a)};THREE.Curve.prototype.getPoints=function(a){a||(a=5);var b,c=[];for(b=0;b<=a;b++)c.push(this.getPoint(b/a));return c};THREE.Curve.prototype.getSpacedPoints=function(a){a||(a=5);var b,c=[];for(b=0;b<=a;b++)c.push(this.getPointAt(b/a));return c};
-THREE.Curve.prototype.getLength=function(){var a=this.getLengths();return a[a.length-1]};THREE.Curve.prototype.getLengths=function(a){a||(a=this.__arcLengthDivisions?this.__arcLengthDivisions:200);if(this.cacheArcLengths&&this.cacheArcLengths.length==a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b=[],c,d=this.getPoint(0),e,f=0;b.push(0);for(e=1;e<=a;e++)c=this.getPoint(e/a),f+=c.distanceTo(d),b.push(f),d=c;return this.cacheArcLengths=b};
-THREE.Curve.prototype.updateArcLengths=function(){this.needsUpdate=!0;this.getLengths()};THREE.Curve.prototype.getUtoTmapping=function(a,b){var c=this.getLengths(),d=0,e=c.length,f;f=b?b:a*c[e-1];for(var g=0,h=e-1,k;g<=h;)if(d=Math.floor(g+(h-g)/2),k=c[d]-f,0>k)g=d+1;else if(0<k)h=d-1;else{h=d;break}d=h;if(c[d]==f)return d/(e-1);g=c[d];return c=(d+(f-g)/(c[d+1]-g))/(e-1)};THREE.Curve.prototype.getTangent=function(a){var b=a-1E-4;a+=1E-4;0>b&&(b=0);1<a&&(a=1);b=this.getPoint(b);return this.getPoint(a).clone().sub(b).normalize()};
-THREE.Curve.prototype.getTangentAt=function(a){a=this.getUtoTmapping(a);return this.getTangent(a)};
-THREE.Curve.Utils={tangentQuadraticBezier:function(a,b,c,d){return 2*(1-a)*(c-b)+2*a*(d-c)},tangentCubicBezier:function(a,b,c,d,e){return-3*b*(1-a)*(1-a)+3*c*(1-a)*(1-a)-6*a*c*(1-a)+6*a*d*(1-a)-3*a*a*d+3*a*a*e},tangentSpline:function(a,b,c,d,e){return 6*a*a-6*a+(3*a*a-4*a+1)+(-6*a*a+6*a)+(3*a*a-2*a)},interpolate:function(a,b,c,d,e){a=0.5*(c-a);d=0.5*(d-b);var f=e*e;return(2*b-2*c+a+d)*e*f+(-3*b+3*c-2*a-d)*f+a*e+b}};
-THREE.Curve.create=function(a,b){a.prototype=Object.create(THREE.Curve.prototype);a.prototype.getPoint=b;return a};THREE.CurvePath=function(){this.curves=[];this.bends=[];this.autoClose=!1};THREE.CurvePath.prototype=Object.create(THREE.Curve.prototype);THREE.CurvePath.prototype.add=function(a){this.curves.push(a)};THREE.CurvePath.prototype.checkConnection=function(){};THREE.CurvePath.prototype.closePath=function(){var a=this.curves[0].getPoint(0),b=this.curves[this.curves.length-1].getPoint(1);a.equals(b)||this.curves.push(new THREE.LineCurve(b,a))};
-THREE.CurvePath.prototype.getPoint=function(a){var b=a*this.getLength(),c=this.getCurveLengths();for(a=0;a<c.length;){if(c[a]>=b)return b=c[a]-b,a=this.curves[a],b=1-b/a.getLength(),a.getPointAt(b);a++}return null};THREE.CurvePath.prototype.getLength=function(){var a=this.getCurveLengths();return a[a.length-1]};
-THREE.CurvePath.prototype.getCurveLengths=function(){if(this.cacheLengths&&this.cacheLengths.length==this.curves.length)return this.cacheLengths;var a=[],b=0,c,d=this.curves.length;for(c=0;c<d;c++)b+=this.curves[c].getLength(),a.push(b);return this.cacheLengths=a};
-THREE.CurvePath.prototype.getBoundingBox=function(){var a=this.getPoints(),b,c,d,e,f,g;b=c=Number.NEGATIVE_INFINITY;e=f=Number.POSITIVE_INFINITY;var h,k,l,n,q=a[0]instanceof THREE.Vector3;n=q?new THREE.Vector3:new THREE.Vector2;k=0;for(l=a.length;k<l;k++)h=a[k],h.x>b?b=h.x:h.x<e&&(e=h.x),h.y>c?c=h.y:h.y<f&&(f=h.y),q&&(h.z>d?d=h.z:h.z<g&&(g=h.z)),n.add(h);a={minX:e,minY:f,maxX:b,maxY:c};q&&(a.maxZ=d,a.minZ=g);return a};
-THREE.CurvePath.prototype.createPointsGeometry=function(a){a=this.getPoints(a,!0);return this.createGeometry(a)};THREE.CurvePath.prototype.createSpacedPointsGeometry=function(a){a=this.getSpacedPoints(a,!0);return this.createGeometry(a)};THREE.CurvePath.prototype.createGeometry=function(a){for(var b=new THREE.Geometry,c=0;c<a.length;c++)b.vertices.push(new THREE.Vector3(a[c].x,a[c].y,a[c].z||0));return b};THREE.CurvePath.prototype.addWrapPath=function(a){this.bends.push(a)};
-THREE.CurvePath.prototype.getTransformedPoints=function(a,b){var c=this.getPoints(a),d,e;b||(b=this.bends);d=0;for(e=b.length;d<e;d++)c=this.getWrapPoints(c,b[d]);return c};THREE.CurvePath.prototype.getTransformedSpacedPoints=function(a,b){var c=this.getSpacedPoints(a),d,e;b||(b=this.bends);d=0;for(e=b.length;d<e;d++)c=this.getWrapPoints(c,b[d]);return c};
-THREE.CurvePath.prototype.getWrapPoints=function(a,b){var c=this.getBoundingBox(),d,e,f,g,h,k;d=0;for(e=a.length;d<e;d++)f=a[d],g=f.x,h=f.y,k=g/c.maxX,k=b.getUtoTmapping(k,g),g=b.getPoint(k),k=b.getTangent(k),k.set(-k.y,k.x).multiplyScalar(h),f.x=g.x+k.x,f.y=g.y+k.y;return a};THREE.Gyroscope=function(){THREE.Object3D.call(this)};THREE.Gyroscope.prototype=Object.create(THREE.Object3D.prototype);
-THREE.Gyroscope.prototype.updateMatrixWorld=function(a){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)this.parent?(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorld.decompose(this.translationWorld,this.quaternionWorld,this.scaleWorld),this.matrix.decompose(this.translationObject,this.quaternionObject,this.scaleObject),this.matrixWorld.compose(this.translationWorld,this.quaternionObject,this.scaleWorld)):this.matrixWorld.copy(this.matrix),
-this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=0,c=this.children.length;b<c;b++)this.children[b].updateMatrixWorld(a)};THREE.Gyroscope.prototype.translationWorld=new THREE.Vector3;THREE.Gyroscope.prototype.translationObject=new THREE.Vector3;THREE.Gyroscope.prototype.quaternionWorld=new THREE.Quaternion;THREE.Gyroscope.prototype.quaternionObject=new THREE.Quaternion;THREE.Gyroscope.prototype.scaleWorld=new THREE.Vector3;THREE.Gyroscope.prototype.scaleObject=new THREE.Vector3;THREE.Path=function(a){THREE.CurvePath.call(this);this.actions=[];a&&this.fromPoints(a)};THREE.Path.prototype=Object.create(THREE.CurvePath.prototype);THREE.PathActions={MOVE_TO:"moveTo",LINE_TO:"lineTo",QUADRATIC_CURVE_TO:"quadraticCurveTo",BEZIER_CURVE_TO:"bezierCurveTo",CSPLINE_THRU:"splineThru",ARC:"arc",ELLIPSE:"ellipse"};THREE.Path.prototype.fromPoints=function(a){this.moveTo(a[0].x,a[0].y);for(var b=1,c=a.length;b<c;b++)this.lineTo(a[b].x,a[b].y)};
-THREE.Path.prototype.moveTo=function(a,b){var c=Array.prototype.slice.call(arguments);this.actions.push({action:THREE.PathActions.MOVE_TO,args:c})};THREE.Path.prototype.lineTo=function(a,b){var c=Array.prototype.slice.call(arguments),d=this.actions[this.actions.length-1].args,d=new THREE.LineCurve(new THREE.Vector2(d[d.length-2],d[d.length-1]),new THREE.Vector2(a,b));this.curves.push(d);this.actions.push({action:THREE.PathActions.LINE_TO,args:c})};
-THREE.Path.prototype.quadraticCurveTo=function(a,b,c,d){var e=Array.prototype.slice.call(arguments),f=this.actions[this.actions.length-1].args,f=new THREE.QuadraticBezierCurve(new THREE.Vector2(f[f.length-2],f[f.length-1]),new THREE.Vector2(a,b),new THREE.Vector2(c,d));this.curves.push(f);this.actions.push({action:THREE.PathActions.QUADRATIC_CURVE_TO,args:e})};
-THREE.Path.prototype.bezierCurveTo=function(a,b,c,d,e,f){var g=Array.prototype.slice.call(arguments),h=this.actions[this.actions.length-1].args,h=new THREE.CubicBezierCurve(new THREE.Vector2(h[h.length-2],h[h.length-1]),new THREE.Vector2(a,b),new THREE.Vector2(c,d),new THREE.Vector2(e,f));this.curves.push(h);this.actions.push({action:THREE.PathActions.BEZIER_CURVE_TO,args:g})};
-THREE.Path.prototype.splineThru=function(a){var b=Array.prototype.slice.call(arguments),c=this.actions[this.actions.length-1].args,c=[new THREE.Vector2(c[c.length-2],c[c.length-1])];Array.prototype.push.apply(c,a);c=new THREE.SplineCurve(c);this.curves.push(c);this.actions.push({action:THREE.PathActions.CSPLINE_THRU,args:b})};THREE.Path.prototype.arc=function(a,b,c,d,e,f){var g=this.actions[this.actions.length-1].args;this.absarc(a+g[g.length-2],b+g[g.length-1],c,d,e,f)};
-THREE.Path.prototype.absarc=function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f)};THREE.Path.prototype.ellipse=function(a,b,c,d,e,f,g){var h=this.actions[this.actions.length-1].args;this.absellipse(a+h[h.length-2],b+h[h.length-1],c,d,e,f,g)};THREE.Path.prototype.absellipse=function(a,b,c,d,e,f,g){var h=Array.prototype.slice.call(arguments),k=new THREE.EllipseCurve(a,b,c,d,e,f,g);this.curves.push(k);k=k.getPoint(1);h.push(k.x);h.push(k.y);this.actions.push({action:THREE.PathActions.ELLIPSE,args:h})};
-THREE.Path.prototype.getSpacedPoints=function(a,b){a||(a=40);for(var c=[],d=0;d<a;d++)c.push(this.getPoint(d/a));return c};
-THREE.Path.prototype.getPoints=function(a,b){if(this.useSpacedPoints)return console.log("tata"),this.getSpacedPoints(a,b);a=a||12;var c=[],d,e,f,g,h,k,l,n,q,p,s,t,r;d=0;for(e=this.actions.length;d<e;d++)switch(f=this.actions[d],g=f.action,f=f.args,g){case THREE.PathActions.MOVE_TO:c.push(new THREE.Vector2(f[0],f[1]));break;case THREE.PathActions.LINE_TO:c.push(new THREE.Vector2(f[0],f[1]));break;case THREE.PathActions.QUADRATIC_CURVE_TO:h=f[2];k=f[3];q=f[0];p=f[1];0<c.length?(g=c[c.length-1],s=g.x,
-t=g.y):(g=this.actions[d-1].args,s=g[g.length-2],t=g[g.length-1]);for(f=1;f<=a;f++)r=f/a,g=THREE.Shape.Utils.b2(r,s,q,h),r=THREE.Shape.Utils.b2(r,t,p,k),c.push(new THREE.Vector2(g,r));break;case THREE.PathActions.BEZIER_CURVE_TO:h=f[4];k=f[5];q=f[0];p=f[1];l=f[2];n=f[3];0<c.length?(g=c[c.length-1],s=g.x,t=g.y):(g=this.actions[d-1].args,s=g[g.length-2],t=g[g.length-1]);for(f=1;f<=a;f++)r=f/a,g=THREE.Shape.Utils.b3(r,s,q,l,h),r=THREE.Shape.Utils.b3(r,t,p,n,k),c.push(new THREE.Vector2(g,r));break;case THREE.PathActions.CSPLINE_THRU:g=
-this.actions[d-1].args;r=[new THREE.Vector2(g[g.length-2],g[g.length-1])];g=a*f[0].length;r=r.concat(f[0]);r=new THREE.SplineCurve(r);for(f=1;f<=g;f++)c.push(r.getPointAt(f/g));break;case THREE.PathActions.ARC:h=f[0];k=f[1];p=f[2];l=f[3];g=f[4];q=!!f[5];s=g-l;t=2*a;for(f=1;f<=t;f++)r=f/t,q||(r=1-r),r=l+r*s,g=h+p*Math.cos(r),r=k+p*Math.sin(r),c.push(new THREE.Vector2(g,r));break;case THREE.PathActions.ELLIPSE:for(h=f[0],k=f[1],p=f[2],n=f[3],l=f[4],g=f[5],q=!!f[6],s=g-l,t=2*a,f=1;f<=t;f++)r=f/t,q||
-(r=1-r),r=l+r*s,g=h+p*Math.cos(r),r=k+n*Math.sin(r),c.push(new THREE.Vector2(g,r))}d=c[c.length-1];1E-10>Math.abs(d.x-c[0].x)&&1E-10>Math.abs(d.y-c[0].y)&&c.splice(c.length-1,1);b&&c.push(c[0]);return c};
-THREE.Path.prototype.toShapes=function(a,b){function c(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c],f=new THREE.Shape;f.actions=e.actions;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],k=h.x-g.x,l=h.y-g.y;if(1E-10<Math.abs(l)){if(0>l&&(g=b[f],k=-k,h=b[e],l=-l),!(a.y<g.y||a.y>h.y))if(a.y==g.y){if(a.x==g.x)return!0}else{e=l*(a.x-g.x)-k*(a.y-g.y);if(0==e)return!0;0>e||(d=!d)}}else if(a.y==g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=
-h.x))return!0}return d}var e=function(a){var b,c,d,e,f=[],g=new THREE.Path;b=0;for(c=a.length;b<c;b++)d=a[b],e=d.args,d=d.action,d==THREE.PathActions.MOVE_TO&&0!=g.actions.length&&(f.push(g),g=new THREE.Path),g[d].apply(g,e);0!=g.actions.length&&f.push(g);return f}(this.actions);if(0==e.length)return[];if(!0===b)return c(e);var f,g,h,k=[];if(1==e.length)return g=e[0],h=new THREE.Shape,h.actions=g.actions,h.curves=g.curves,k.push(h),k;var l=!THREE.Shape.Utils.isClockWise(e[0].getPoints()),l=a?!l:l;
-h=[];var n=[],q=[],p=0,s;n[p]=void 0;q[p]=[];var t,r;t=0;for(r=e.length;t<r;t++)g=e[t],s=g.getPoints(),f=THREE.Shape.Utils.isClockWise(s),(f=a?!f:f)?(!l&&n[p]&&p++,n[p]={s:new THREE.Shape,p:s},n[p].s.actions=g.actions,n[p].s.curves=g.curves,l&&p++,q[p]=[]):q[p].push({h:g,p:s[0]});if(!n[0])return c(e);if(1<n.length){t=!1;r=[];g=0;for(e=n.length;g<e;g++)h[g]=[];g=0;for(e=n.length;g<e;g++)for(f=q[g],l=0;l<f.length;l++){p=f[l];s=!0;for(var v=0;v<n.length;v++)d(p.p,n[v].p)&&(g!=v&&r.push({froms:g,tos:v,
-hole:l}),s?(s=!1,h[v].push(p)):t=!0);s&&h[g].push(p)}0<r.length&&(t||(q=h))}t=0;for(r=n.length;t<r;t++)for(h=n[t].s,k.push(h),g=q[t],e=0,f=g.length;e<f;e++)h.holes.push(g[e].h);return k};THREE.Shape=function(){THREE.Path.apply(this,arguments);this.holes=[]};THREE.Shape.prototype=Object.create(THREE.Path.prototype);THREE.Shape.prototype.extrude=function(a){return new THREE.ExtrudeGeometry(this,a)};THREE.Shape.prototype.makeGeometry=function(a){return new THREE.ShapeGeometry(this,a)};THREE.Shape.prototype.getPointsHoles=function(a){var b,c=this.holes.length,d=[];for(b=0;b<c;b++)d[b]=this.holes[b].getTransformedPoints(a,this.bends);return d};
-THREE.Shape.prototype.getSpacedPointsHoles=function(a){var b,c=this.holes.length,d=[];for(b=0;b<c;b++)d[b]=this.holes[b].getTransformedSpacedPoints(a,this.bends);return d};THREE.Shape.prototype.extractAllPoints=function(a){return{shape:this.getTransformedPoints(a),holes:this.getPointsHoles(a)}};THREE.Shape.prototype.extractPoints=function(a){return this.useSpacedPoints?this.extractAllSpacedPoints(a):this.extractAllPoints(a)};
-THREE.Shape.prototype.extractAllSpacedPoints=function(a){return{shape:this.getTransformedSpacedPoints(a),holes:this.getSpacedPointsHoles(a)}};
-THREE.Shape.Utils={triangulateShape:function(a,b){function c(a,b,c){return a.x!=b.x?a.x<b.x?a.x<=c.x&&c.x<=b.x:b.x<=c.x&&c.x<=a.x:a.y<b.y?a.y<=c.y&&c.y<=b.y:b.y<=c.y&&c.y<=a.y}function d(a,b,d,e,f){var g=b.x-a.x,h=b.y-a.y,k=e.x-d.x,l=e.y-d.y,n=a.x-d.x,q=a.y-d.y,J=h*k-g*l,B=h*n-g*q;if(1E-10<Math.abs(J)){if(0<J){if(0>B||B>J)return[];k=l*n-k*q;if(0>k||k>J)return[]}else{if(0<B||B<J)return[];k=l*n-k*q;if(0<k||k<J)return[]}if(0==k)return!f||0!=B&&B!=J?[a]:[];if(k==J)return!f||0!=B&&B!=J?[b]:[];if(0==B)return[d];
-if(B==J)return[e];f=k/J;return[{x:a.x+f*g,y:a.y+f*h}]}if(0!=B||l*n!=k*q)return[];h=0==g&&0==h;k=0==k&&0==l;if(h&&k)return a.x!=d.x||a.y!=d.y?[]:[a];if(h)return c(d,e,a)?[a]:[];if(k)return c(a,b,d)?[d]:[];0!=g?(a.x<b.x?(g=a,k=a.x,h=b,a=b.x):(g=b,k=b.x,h=a,a=a.x),d.x<e.x?(b=d,J=d.x,l=e,d=e.x):(b=e,J=e.x,l=d,d=d.x)):(a.y<b.y?(g=a,k=a.y,h=b,a=b.y):(g=b,k=b.y,h=a,a=a.y),d.y<e.y?(b=d,J=d.y,l=e,d=e.y):(b=e,J=e.y,l=d,d=d.y));return k<=J?a<J?[]:a==J?f?[]:[b]:a<=d?[b,h]:[b,l]:k>d?[]:k==d?f?[]:[g]:a<=d?[g,h]:
-[g,l]}function e(a,b,c,d){var e=b.x-a.x,f=b.y-a.y;b=c.x-a.x;c=c.y-a.y;var g=d.x-a.x;d=d.y-a.y;a=e*c-f*b;e=e*d-f*g;return 1E-10<Math.abs(a)?(b=g*c-d*b,0<a?0<=e&&0<=b:0<=e||0<=b):0<e}var f,g,h,k,l,n={};h=a.concat();f=0;for(g=b.length;f<g;f++)Array.prototype.push.apply(h,b[f]);f=0;for(g=h.length;f<g;f++)l=h[f].x+":"+h[f].y,void 0!==n[l]&&console.log("Duplicate point",l),n[l]=f;f=function(a,b){function c(a,b){var d=h.length-1,f=a-1;0>f&&(f=d);var g=a+1;g>d&&(g=0);d=e(h[a],h[f],h[g],k[b]);if(!d)return!1;
-d=k.length-1;f=b-1;0>f&&(f=d);g=b+1;g>d&&(g=0);return(d=e(k[b],k[f],k[g],h[a]))?!0:!1}function f(a,b){var c,e;for(c=0;c<h.length;c++)if(e=c+1,e%=h.length,e=d(a,b,h[c],h[e],!0),0<e.length)return!0;return!1}function g(a,c){var e,f,h,k;for(e=0;e<l.length;e++)for(f=b[l[e]],h=0;h<f.length;h++)if(k=h+1,k%=f.length,k=d(a,c,f[h],f[k],!0),0<k.length)return!0;return!1}var h=a.concat(),k,l=[],n,q,N,J,B,K=[],A,G,D,C=0;for(n=b.length;C<n;C++)l.push(C);A=0;for(var F=2*l.length;0<l.length;){F--;if(0>F){console.log("Infinite Loop! Holes left:"+
-l.length+", Probably Hole outside Shape!");break}for(q=A;q<h.length;q++){N=h[q];n=-1;for(C=0;C<l.length;C++)if(J=l[C],B=N.x+":"+N.y+":"+J,void 0===K[B]){k=b[J];for(G=0;G<k.length;G++)if(J=k[G],c(q,G)&&!f(N,J)&&!g(N,J)){n=G;l.splice(C,1);A=h.slice(0,q+1);J=h.slice(q);G=k.slice(n);D=k.slice(0,n+1);h=A.concat(G).concat(D).concat(J);A=q;break}if(0<=n)break;K[B]=!0}if(0<=n)break}}return h}(a,b);var q=THREE.FontUtils.Triangulate(f,!1);f=0;for(g=q.length;f<g;f++)for(k=q[f],h=0;3>h;h++)l=k[h].x+":"+k[h].y,
-l=n[l],void 0!==l&&(k[h]=l);return q.concat()},isClockWise:function(a){return 0>THREE.FontUtils.Triangulate.area(a)},b2p0:function(a,b){var c=1-a;return c*c*b},b2p1:function(a,b){return 2*(1-a)*a*b},b2p2:function(a,b){return a*a*b},b2:function(a,b,c,d){return this.b2p0(a,b)+this.b2p1(a,c)+this.b2p2(a,d)},b3p0:function(a,b){var c=1-a;return c*c*c*b},b3p1:function(a,b){var c=1-a;return 3*c*c*a*b},b3p2:function(a,b){return 3*(1-a)*a*a*b},b3p3:function(a,b){return a*a*a*b},b3:function(a,b,c,d,e){return this.b3p0(a,
-b)+this.b3p1(a,c)+this.b3p2(a,d)+this.b3p3(a,e)}};THREE.LineCurve=function(a,b){this.v1=a;this.v2=b};THREE.LineCurve.prototype=Object.create(THREE.Curve.prototype);THREE.LineCurve.prototype.getPoint=function(a){var b=this.v2.clone().sub(this.v1);b.multiplyScalar(a).add(this.v1);return b};THREE.LineCurve.prototype.getPointAt=function(a){return this.getPoint(a)};THREE.LineCurve.prototype.getTangent=function(a){return this.v2.clone().sub(this.v1).normalize()};THREE.QuadraticBezierCurve=function(a,b,c){this.v0=a;this.v1=b;this.v2=c};THREE.QuadraticBezierCurve.prototype=Object.create(THREE.Curve.prototype);THREE.QuadraticBezierCurve.prototype.getPoint=function(a){var b;b=THREE.Shape.Utils.b2(a,this.v0.x,this.v1.x,this.v2.x);a=THREE.Shape.Utils.b2(a,this.v0.y,this.v1.y,this.v2.y);return new THREE.Vector2(b,a)};
-THREE.QuadraticBezierCurve.prototype.getTangent=function(a){var b;b=THREE.Curve.Utils.tangentQuadraticBezier(a,this.v0.x,this.v1.x,this.v2.x);a=THREE.Curve.Utils.tangentQuadraticBezier(a,this.v0.y,this.v1.y,this.v2.y);b=new THREE.Vector2(b,a);b.normalize();return b};THREE.CubicBezierCurve=function(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d};THREE.CubicBezierCurve.prototype=Object.create(THREE.Curve.prototype);THREE.CubicBezierCurve.prototype.getPoint=function(a){var b;b=THREE.Shape.Utils.b3(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);a=THREE.Shape.Utils.b3(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);return new THREE.Vector2(b,a)};
-THREE.CubicBezierCurve.prototype.getTangent=function(a){var b;b=THREE.Curve.Utils.tangentCubicBezier(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);a=THREE.Curve.Utils.tangentCubicBezier(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);b=new THREE.Vector2(b,a);b.normalize();return b};THREE.SplineCurve=function(a){this.points=void 0==a?[]:a};THREE.SplineCurve.prototype=Object.create(THREE.Curve.prototype);THREE.SplineCurve.prototype.getPoint=function(a){var b=new THREE.Vector2,c=[],d=this.points,e;e=(d.length-1)*a;a=Math.floor(e);e-=a;c[0]=0==a?a:a-1;c[1]=a;c[2]=a>d.length-2?d.length-1:a+1;c[3]=a>d.length-3?d.length-1:a+2;b.x=THREE.Curve.Utils.interpolate(d[c[0]].x,d[c[1]].x,d[c[2]].x,d[c[3]].x,e);b.y=THREE.Curve.Utils.interpolate(d[c[0]].y,d[c[1]].y,d[c[2]].y,d[c[3]].y,e);return b};THREE.EllipseCurve=function(a,b,c,d,e,f,g){this.aX=a;this.aY=b;this.xRadius=c;this.yRadius=d;this.aStartAngle=e;this.aEndAngle=f;this.aClockwise=g};THREE.EllipseCurve.prototype=Object.create(THREE.Curve.prototype);
-THREE.EllipseCurve.prototype.getPoint=function(a){var b;b=this.aEndAngle-this.aStartAngle;0>b&&(b+=2*Math.PI);b>2*Math.PI&&(b-=2*Math.PI);b=!0===this.aClockwise?this.aEndAngle+(1-a)*(2*Math.PI-b):this.aStartAngle+a*b;a=this.aX+this.xRadius*Math.cos(b);b=this.aY+this.yRadius*Math.sin(b);return new THREE.Vector2(a,b)};THREE.ArcCurve=function(a,b,c,d,e,f){THREE.EllipseCurve.call(this,a,b,c,c,d,e,f)};THREE.ArcCurve.prototype=Object.create(THREE.EllipseCurve.prototype);THREE.LineCurve3=THREE.Curve.create(function(a,b){this.v1=a;this.v2=b},function(a){var b=new THREE.Vector3;b.subVectors(this.v2,this.v1);b.multiplyScalar(a);b.add(this.v1);return b});THREE.QuadraticBezierCurve3=THREE.Curve.create(function(a,b,c){this.v0=a;this.v1=b;this.v2=c},function(a){var b,c;b=THREE.Shape.Utils.b2(a,this.v0.x,this.v1.x,this.v2.x);c=THREE.Shape.Utils.b2(a,this.v0.y,this.v1.y,this.v2.y);a=THREE.Shape.Utils.b2(a,this.v0.z,this.v1.z,this.v2.z);return new THREE.Vector3(b,c,a)});THREE.CubicBezierCurve3=THREE.Curve.create(function(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d},function(a){var b,c;b=THREE.Shape.Utils.b3(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);c=THREE.Shape.Utils.b3(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);a=THREE.Shape.Utils.b3(a,this.v0.z,this.v1.z,this.v2.z,this.v3.z);return new THREE.Vector3(b,c,a)});THREE.SplineCurve3=THREE.Curve.create(function(a){this.points=void 0==a?[]:a},function(a){var b=new THREE.Vector3,c=[],d=this.points,e;a*=d.length-1;e=Math.floor(a);a-=e;c[0]=0==e?e:e-1;c[1]=e;c[2]=e>d.length-2?d.length-1:e+1;c[3]=e>d.length-3?d.length-1:e+2;e=d[c[0]];var f=d[c[1]],g=d[c[2]],c=d[c[3]];b.x=THREE.Curve.Utils.interpolate(e.x,f.x,g.x,c.x,a);b.y=THREE.Curve.Utils.interpolate(e.y,f.y,g.y,c.y,a);b.z=THREE.Curve.Utils.interpolate(e.z,f.z,g.z,c.z,a);return b});THREE.ClosedSplineCurve3=THREE.Curve.create(function(a){this.points=void 0==a?[]:a},function(a){var b=new THREE.Vector3,c=[],d=this.points,e;e=(d.length-0)*a;a=Math.floor(e);e-=a;a+=0<a?0:(Math.floor(Math.abs(a)/d.length)+1)*d.length;c[0]=(a-1)%d.length;c[1]=a%d.length;c[2]=(a+1)%d.length;c[3]=(a+2)%d.length;b.x=THREE.Curve.Utils.interpolate(d[c[0]].x,d[c[1]].x,d[c[2]].x,d[c[3]].x,e);b.y=THREE.Curve.Utils.interpolate(d[c[0]].y,d[c[1]].y,d[c[2]].y,d[c[3]].y,e);b.z=THREE.Curve.Utils.interpolate(d[c[0]].z,
-d[c[1]].z,d[c[2]].z,d[c[3]].z,e);return b});THREE.AnimationHandler=function(){var a=[],b={},c={update:function(b){for(var c=0;c<a.length;c++)a[c].update(b)},addToUpdate:function(b){-1===a.indexOf(b)&&a.push(b)},removeFromUpdate:function(b){b=a.indexOf(b);-1!==b&&a.splice(b,1)},add:function(a){void 0!==b[a.name]&&console.log("THREE.AnimationHandler.add: Warning! "+a.name+" already exists in library. Overwriting.");b[a.name]=a;if(!0!==a.initialized){for(var c=0;c<a.hierarchy.length;c++){for(var d=0;d<a.hierarchy[c].keys.length;d++)if(0>a.hierarchy[c].keys[d].time&&
-(a.hierarchy[c].keys[d].time=0),void 0!==a.hierarchy[c].keys