From b4d7fcff38b1fde45a22e8e977a6c356376b218b Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Thu, 8 May 2014 13:02:52 +0200 Subject: Add webgl demo To be integrated into some browser demonstration. Works relatively well on quicknanobrowser on the iMX6 (eLinux) The frame rate is not very high but it is fully usable and doesn't look bad. Hint: use the touchscreen to move the spotlight's target. Three.js is MIT licensed Change-Id: I7c2e8626ebd5a39c84ea90e38efad51263c594b9 Reviewed-by: Eirik Aavitsland --- experimental/webgl/helloqt.html | 48 + experimental/webgl/helloqt.js | 213 ++++ experimental/webgl/qtlogo.js | 2468 +++++++++++++++++++++++++++++++++++++++ experimental/webgl/three.min.js | 737 ++++++++++++ 4 files changed, 3466 insertions(+) create mode 100644 experimental/webgl/helloqt.html create mode 100644 experimental/webgl/helloqt.js create mode 100644 experimental/webgl/qtlogo.js create mode 100644 experimental/webgl/three.min.js diff --git a/experimental/webgl/helloqt.html b/experimental/webgl/helloqt.html new file mode 100644 index 0000000..56c336c --- /dev/null +++ b/experimental/webgl/helloqt.html @@ -0,0 +1,48 @@ + + + + + + + + + +
+ + + + + + + + diff --git a/experimental/webgl/helloqt.js b/experimental/webgl/helloqt.js new file mode 100644 index 0000000..d0ae216 --- /dev/null +++ b/experimental/webgl/helloqt.js @@ -0,0 +1,213 @@ +var shadow = false; + +var container = document.getElementById("container"); +var camera = null; +var scene = new THREE.Scene(); +var renderer = new THREE.WebGLRenderer({ antialias: false /*true*/ }); +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 () { + 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/experimental/webgl/qtlogo.js b/experimental/webgl/qtlogo.js new file mode 100644 index 0000000..e2eba96 --- /dev/null +++ b/experimental/webgl/qtlogo.js @@ -0,0 +1,2468 @@ +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/experimental/webgl/three.min.js b/experimental/webgl/three.min.js new file mode 100644 index 0000000..95b938c --- /dev/null +++ b/experimental/webgl/three.min.js @@ -0,0 +1,737 @@ +// 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>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);1c?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+(cf&&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.xb.x&&(this.x=b.x);this.yb.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.xb.x&&(this.x=b.x);this.yb.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.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);this.zb.z&&(this.z=b.z);this.wb.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(0this.max.x&&(this.max.x=b.x),b.ythis.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.xthis.max.x||a.ythis.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.xthis.max.x||a.max.ythis.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.xthis.max.x&&(this.max.x=a.x);a.ythis.max.y&&(this.max.y=a.y);a.zthis.max.z&&(this.max.z=a.z);return this},setFromPoints:function(a){if(0this.max.x||a.ythis.max.y||a.zthis.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.xthis.max.x||a.max.ythis.max.y||a.max.zthis.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;ethis.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=0a.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(fg||e>d)return null;if(e>c||c!==c)c=e;if(gd?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=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)e;e++){var f=d[e];a.x=0g&&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&&0a&&0f||1e;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 ac?c:a},clampBottom:function(a,b){return 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:0this.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=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;ef.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;Bn.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;rn.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;Bn.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;rv||(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;de&&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.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;fL;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=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;bb.max.x&&(b.max.x=e);fb.max.y&&(b.max.y=f);gb.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;eGa?-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;nr;r++)t=a[3*c+r],-1==p[t]?(q[2*r]=t,q[2*r+1]=-1,n++):p[t]k.index+b)for(k={start:f,count:0,index:g},h.push(k),n=0;6>n;n+=2)r=q[n+1],-1n;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;ed?-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;cd;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;cc&&(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;ca.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;dg;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;dg;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;dz.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;uh.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[d].distance)this.objects[d-1].object.visible=!1,this.objects[d].object.visible=!0;else break;for(;dD&&A.clearRect(Z.min.x|0,Z.min.y|0,Z.max.x-Z.min.x|0,Z.max.y-Z.min.y|0),0R.positionScreen.z||1I.positionScreen.z||1da.positionScreen.z||1=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 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&&(0p;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=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&&(1b;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;ad.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;nha;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;Dha;ha++)Ca=V[ha],cb[Ra]=Ca.x,cb[Ra+1]=Ca.y,Ra+=2;0ha;ha++)Da=W[ha],db[Sa]= +Da.x,db[Sa+1]=Da.y,Sa+=2;0f;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;qa?b(c,e-1):l[e]>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;qq-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;se)return null;var f=[],g=[],h=[],k,l,n;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;pk)g=d+1;else if(0b&&(b=0);1=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;cb?b=h.x:h.xc?c=h.y:h.yd?d=h.z:h.zMath.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;cl&&(g=b[f],k=-k,h=b[e],l=-l),!(a.yh.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;bB||B>J)return[];k=l*n-k*q;if(0>k||k>J)return[]}else{if(0d?[]: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-10f&&(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;cF){console.log("Infinite Loop! Holes left:"+ +l.length+", Probably Hole outside Shape!");break}for(q=A;qh;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+=0a.hierarchy[c].keys[d].time&& +(a.hierarchy[c].keys[d].time=0),void 0!==a.hierarchy[c].keys[d].rot&&!(a.hierarchy[c].keys[d].rot instanceof THREE.Quaternion)){var h=a.hierarchy[c].keys[d].rot;a.hierarchy[c].keys[d].rot=(new THREE.Quaternion).fromArray(h)}if(a.hierarchy[c].keys.length&&void 0!==a.hierarchy[c].keys[0].morphTargets){h={};for(d=0;dd;d++){for(var e=this.keyTypes[d],f=this.data.hierarchy[a].keys[0],g=this.getNextKeyWith(e,a,1);g.timef.index;)f=g,g=this.getNextKeyWith(e,a,g.index+1);c.prevKey[e]=f;c.nextKey[e]=g}}}; +THREE.Animation.prototype.update=function(){var a=[],b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Quaternion,e=function(a,b){var c=[],d=[],e,q,p,s,t,r;e=(a.length-1)*b;q=Math.floor(e);e-=q;c[0]=0===q?q:q-1;c[1]=q;c[2]=q>a.length-2?q:q+1;c[3]=q>a.length-3?q:q+2;q=a[c[0]];s=a[c[1]];t=a[c[2]];r=a[c[3]];c=e*e;p=e*c;d[0]=f(q[0],s[0],t[0],r[0],e,c,p);d[1]=f(q[1],s[1],t[1],r[1],e,c,p);d[2]=f(q[2],s[2],t[2],r[2],e,c,p);return d},f=function(a,b,c,d,e,f,p){a=0.5*(c-a);d=0.5*(d-b);return(2*(b-c)+a+d)* +p+(-3*(b-c)-2*a-d)*f+a*e+b};return function(f){if(!1!==this.isPlaying&&(this.currentTime+=f*this.timeScale,0!==this.weight)){var h;f=this.data.length;if(!0===this.loop&&this.currentTime>f)this.currentTime%=f,this.reset();else if(!1===this.loop&&this.currentTime>f){this.stop();return}f=0;for(var k=this.hierarchy.length;fq;q++){h=this.keyTypes[q];var p=n.prevKey[h],s=n.nextKey[h];if(s.time<=this.currentTime){p=this.data.hierarchy[f].keys[0]; +for(s=this.getNextKeyWith(h,f,1);s.timep.index;)p=s,s=this.getNextKeyWith(h,f,s.index+1);n.prevKey[h]=p;n.nextKey[h]=s}l.matrixAutoUpdate=!0;l.matrixWorldNeedsUpdate=!0;var t=(this.currentTime-p.time)/(s.time-p.time),r=p[h],v=s[h];0>t&&(t=0);1a&&(this.currentTime%=a);this.currentTime=Math.min(this.currentTime,a);a=0;for(var b=this.hierarchy.length;af.index;)f=g,g=e[f.index+1];d.prevKey= +f;d.nextKey=g}g.time>=this.currentTime?f.interpolate(g,this.currentTime):f.interpolate(g,g.time);this.data.hierarchy[a].node.updateMatrix();c.matrixWorldNeedsUpdate=!0}}}};THREE.KeyFrameAnimation.prototype.getNextKeyWith=function(a,b,c){b=this.data.hierarchy[b].keys;for(c%=b.length;cthis.duration&&(this.currentTime%=this.duration);this.currentTime=Math.min(this.currentTime,this.duration);c=this.duration/this.frames;var d=Math.floor(this.currentTime/c);d!=b&&(this.mesh.morphTargetInfluences[a]=0,this.mesh.morphTargetInfluences[b]=1,this.mesh.morphTargetInfluences[d]= +0,a=b,b=d);this.mesh.morphTargetInfluences[d]=this.currentTime%c/c;this.mesh.morphTargetInfluences[a]=1-this.mesh.morphTargetInfluences[d]}}}()};THREE.CubeCamera=function(a,b,c){THREE.Object3D.call(this);var d=new THREE.PerspectiveCamera(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new THREE.Vector3(1,0,0));this.add(d);var e=new THREE.PerspectiveCamera(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new THREE.Vector3(-1,0,0));this.add(e);var f=new THREE.PerspectiveCamera(90,1,a,b);f.up.set(0,0,1);f.lookAt(new THREE.Vector3(0,1,0));this.add(f);var g=new THREE.PerspectiveCamera(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new THREE.Vector3(0,-1,0));this.add(g);var h=new THREE.PerspectiveCamera(90, +1,a,b);h.up.set(0,-1,0);h.lookAt(new THREE.Vector3(0,0,1));this.add(h);var k=new THREE.PerspectiveCamera(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new THREE.Vector3(0,0,-1));this.add(k);this.renderTarget=new THREE.WebGLRenderTargetCube(c,c,{format:THREE.RGBFormat,magFilter:THREE.LinearFilter,minFilter:THREE.LinearFilter});this.updateCubeMap=function(a,b){var c=this.renderTarget,p=c.generateMipmaps;c.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace= +2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.generateMipmaps=p;c.activeCubeFace=5;a.render(b,k,c)}};THREE.CubeCamera.prototype=Object.create(THREE.Object3D.prototype);THREE.CombinedCamera=function(a,b,c,d,e,f,g){THREE.Camera.call(this);this.fov=c;this.left=-a/2;this.right=a/2;this.top=b/2;this.bottom=-b/2;this.cameraO=new THREE.OrthographicCamera(a/-2,a/2,b/2,b/-2,f,g);this.cameraP=new THREE.PerspectiveCamera(c,a/b,d,e);this.zoom=1;this.toPerspective()};THREE.CombinedCamera.prototype=Object.create(THREE.Camera.prototype); +THREE.CombinedCamera.prototype.toPerspective=function(){this.near=this.cameraP.near;this.far=this.cameraP.far;this.cameraP.fov=this.fov/this.zoom;this.cameraP.updateProjectionMatrix();this.projectionMatrix=this.cameraP.projectionMatrix;this.inPerspectiveMode=!0;this.inOrthographicMode=!1}; +THREE.CombinedCamera.prototype.toOrthographic=function(){var a=this.cameraP.aspect,b=(this.cameraP.near+this.cameraP.far)/2,b=Math.tan(this.fov/2)*b,a=2*b*a/2,b=b/this.zoom,a=a/this.zoom;this.cameraO.left=-a;this.cameraO.right=a;this.cameraO.top=b;this.cameraO.bottom=-b;this.cameraO.updateProjectionMatrix();this.near=this.cameraO.near;this.far=this.cameraO.far;this.projectionMatrix=this.cameraO.projectionMatrix;this.inPerspectiveMode=!1;this.inOrthographicMode=!0}; +THREE.CombinedCamera.prototype.setSize=function(a,b){this.cameraP.aspect=a/b;this.left=-a/2;this.right=a/2;this.top=b/2;this.bottom=-b/2};THREE.CombinedCamera.prototype.setFov=function(a){this.fov=a;this.inPerspectiveMode?this.toPerspective():this.toOrthographic()};THREE.CombinedCamera.prototype.updateProjectionMatrix=function(){this.inPerspectiveMode?this.toPerspective():(this.toPerspective(),this.toOrthographic())}; +THREE.CombinedCamera.prototype.setLens=function(a,b){void 0===b&&(b=24);var c=2*THREE.Math.radToDeg(Math.atan(b/(2*a)));this.setFov(c);return c};THREE.CombinedCamera.prototype.setZoom=function(a){this.zoom=a;this.inPerspectiveMode?this.toPerspective():this.toOrthographic()};THREE.CombinedCamera.prototype.toFrontView=function(){this.rotation.x=0;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1}; +THREE.CombinedCamera.prototype.toBackView=function(){this.rotation.x=0;this.rotation.y=Math.PI;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toLeftView=function(){this.rotation.x=0;this.rotation.y=-Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toRightView=function(){this.rotation.x=0;this.rotation.y=Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1}; +THREE.CombinedCamera.prototype.toTopView=function(){this.rotation.x=-Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toBottomView=function(){this.rotation.x=Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.BoxGeometry=function(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,r){var v,w=h.widthSegments,u=h.heightSegments,y=e/2,L=f/2,x=h.vertices.length;if("x"===a&&"y"===b||"y"===a&&"x"===b)v="z";else if("x"===a&&"z"===b||"z"===a&&"x"===b)v="y",u=h.depthSegments;else if("z"===a&&"y"===b||"y"===a&&"z"===b)v="x",w=h.depthSegments;var N=w+1,J=u+1,B=e/w,K=f/u,A=new THREE.Vector3;A[v]=0=e)return new THREE.Vector2(c,a);e=Math.sqrt(e/2)}else a=!1,1E-10e?-1E-10>g&& +(a=!0):d(f)==d(h)&&(a=!0),a?(c=-f,a=e,e=Math.sqrt(k)):(c=e,a=f,e=Math.sqrt(k/2));return new THREE.Vector2(c/e,a/e)}function e(c,d){var e,f;for(I=c.length;0<=--I;){e=I;f=I-1;0>f&&(f=c.length-1);for(var g=0,h=s+2*n,g=0;gMath.abs(c-k)?[new THREE.Vector2(b,1-e),new THREE.Vector2(d,1-f),new THREE.Vector2(l,1-g),new THREE.Vector2(q,1-a)]:[new THREE.Vector2(c,1-e),new THREE.Vector2(k,1-f),new THREE.Vector2(n,1-g),new THREE.Vector2(p,1-a)]}};THREE.ExtrudeGeometry.__v1=new THREE.Vector2;THREE.ExtrudeGeometry.__v2=new THREE.Vector2;THREE.ExtrudeGeometry.__v3=new THREE.Vector2;THREE.ExtrudeGeometry.__v4=new THREE.Vector2; +THREE.ExtrudeGeometry.__v5=new THREE.Vector2;THREE.ExtrudeGeometry.__v6=new THREE.Vector2;THREE.ShapeGeometry=function(a,b){THREE.Geometry.call(this);!1===a instanceof Array&&(a=[a]);this.shapebb=a[a.length-1].getBoundingBox();this.addShapeList(a,b);this.computeFaceNormals()};THREE.ShapeGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ShapeGeometry.prototype.addShapeList=function(a,b){for(var c=0,d=a.length;cc&&1===a.x&&(a=new THREE.Vector2(a.x-1,a.y));0===b.x&&0===b.z&&(a=new THREE.Vector2(c/2/ +Math.PI+0.5,a.y));return a.clone()}THREE.Geometry.call(this);c=c||1;d=d||0;for(var k=this,l=0,n=a.length;ls&&(0.2>d&&(b[0].x+=1),0.2>a&&(b[1].x+=1),0.2>q&&(b[2].x+=1));l=0;for(n=this.vertices.length;lc.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}(); +THREE.ArrowHelper.prototype.setLength=function(a,b,c){void 0===b&&(b=0.2*a);void 0===c&&(c=0.2*b);this.line.scale.set(1,a,1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};THREE.ArrowHelper.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};THREE.BoxHelper=function(a){var b=[new THREE.Vector3(1,1,1),new THREE.Vector3(-1,1,1),new THREE.Vector3(-1,-1,1),new THREE.Vector3(1,-1,1),new THREE.Vector3(1,1,-1),new THREE.Vector3(-1,1,-1),new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,-1,-1)];this.vertices=b;var c=new THREE.Geometry;c.vertices.push(b[0],b[1],b[1],b[2],b[2],b[3],b[3],b[0],b[4],b[5],b[5],b[6],b[6],b[7],b[7],b[4],b[0],b[4],b[1],b[5],b[2],b[6],b[3],b[7]);THREE.Line.call(this,c,new THREE.LineBasicMaterial({color:16776960}),THREE.LinePieces); +void 0!==a&&this.update(a)};THREE.BoxHelper.prototype=Object.create(THREE.Line.prototype); +THREE.BoxHelper.prototype.update=function(a){var b=a.geometry;null===b.boundingBox&&b.computeBoundingBox();var c=b.boundingBox.min,b=b.boundingBox.max,d=this.vertices;d[0].set(b.x,b.y,b.z);d[1].set(c.x,b.y,b.z);d[2].set(c.x,c.y,b.z);d[3].set(b.x,c.y,b.z);d[4].set(b.x,b.y,c.z);d[5].set(c.x,b.y,c.z);d[6].set(c.x,c.y,c.z);d[7].set(b.x,c.y,c.z);this.geometry.computeBoundingSphere();this.geometry.verticesNeedUpdate=!0;this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.BoundingBoxHelper=function(a,b){var c=void 0!==b?b:8947848;this.object=a;this.box=new THREE.Box3;THREE.Mesh.call(this,new THREE.BoxGeometry(1,1,1),new THREE.MeshBasicMaterial({color:c,wireframe:!0}))};THREE.BoundingBoxHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.BoundingBoxHelper.prototype.update=function(){this.box.setFromObject(this.object);this.box.size(this.scale);this.box.center(this.position)};THREE.CameraHelper=function(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){d.vertices.push(new THREE.Vector3);d.colors.push(new THREE.Color(b));void 0===f[a]&&(f[a]=[]);f[a].push(d.vertices.length-1)}var d=new THREE.Geometry,e=new THREE.LineBasicMaterial({color:16777215,vertexColors:THREE.FaceColors}),f={};b("n1","n2",16755200);b("n2","n4",16755200);b("n4","n3",16755200);b("n3","n1",16755200);b("f1","f2",16755200);b("f2","f4",16755200);b("f4","f3",16755200);b("f3","f1",16755200);b("n1","f1",16755200); +b("n2","f2",16755200);b("n3","f3",16755200);b("n4","f4",16755200);b("p","n1",16711680);b("p","n2",16711680);b("p","n3",16711680);b("p","n4",16711680);b("u1","u2",43775);b("u2","u3",43775);b("u3","u1",43775);b("c","t",16777215);b("p","c",3355443);b("cn1","cn2",3355443);b("cn3","cn4",3355443);b("cf1","cf2",3355443);b("cf3","cf4",3355443);THREE.Line.call(this,d,e,THREE.LinePieces);this.camera=a;this.matrixWorld=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=f;this.update()}; +THREE.CameraHelper.prototype=Object.create(THREE.Line.prototype); +THREE.CameraHelper.prototype.update=function(){var a=new THREE.Vector3,b=new THREE.Camera,c=new THREE.Projector;return function(){function d(d,g,h,k){a.set(g,h,k);c.unprojectVector(a,b);d=e.pointMap[d];if(void 0!==d)for(g=0,h=d.length;gt;t++){d[0]=s[g[t]];d[1]=s[g[(t+1)%3]];d.sort(f);var r=d.toString();void 0===e[r]?(e[r]={vert1:d[0],vert2:d[1],face1:q,face2:void 0},n++):e[r].face2=q}h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d=h.attributes.position.array; +f=0;for(r in e)if(g=e[r],void 0===g.face2||0.9999>k[g.face1].normal.dot(k[g.face2].normal))n=l[g.vert1],d[f++]=n.x,d[f++]=n.y,d[f++]=n.z,n=l[g.vert2],d[f++]=n.x,d[f++]=n.y,d[f++]=n.z;THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:c}),THREE.LinePieces);this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.EdgesHelper.prototype=Object.create(THREE.Line.prototype);THREE.FaceNormalsHelper=function(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=new THREE.Geometry;c=0;for(var e=this.object.geometry.faces.length;cb;b++)a.faces[b].color=this.colors[4>b?0:1];b=new THREE.MeshBasicMaterial({vertexColors:THREE.FaceColors,wireframe:!0});this.lightSphere=new THREE.Mesh(a,b);this.add(this.lightSphere); +this.update()};THREE.HemisphereLightHelper.prototype=Object.create(THREE.Object3D.prototype);THREE.HemisphereLightHelper.prototype.dispose=function(){this.lightSphere.geometry.dispose();this.lightSphere.material.dispose()}; +THREE.HemisphereLightHelper.prototype.update=function(){var a=new THREE.Vector3;return function(){this.colors[0].copy(this.light.color).multiplyScalar(this.light.intensity);this.colors[1].copy(this.light.groundColor).multiplyScalar(this.light.intensity);this.lightSphere.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());this.lightSphere.geometry.colorsNeedUpdate=!0}}();THREE.PointLightHelper=function(a,b){this.light=a;this.light.updateMatrixWorld();var c=new THREE.SphereGeometry(b,4,2),d=new THREE.MeshBasicMaterial({wireframe:!0,fog:!1});d.color.copy(this.light.color).multiplyScalar(this.light.intensity);THREE.Mesh.call(this,c,d);this.matrixWorld=this.light.matrixWorld;this.matrixAutoUpdate=!1};THREE.PointLightHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.PointLightHelper.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()}; +THREE.PointLightHelper.prototype.update=function(){this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity)};THREE.SkeletonHelper=function(a){for(var b=a.skeleton,c=new THREE.Geometry,d=0;dr;r++){d[0]=t[g[r]];d[1]=t[g[(r+1)%3]];d.sort(f);var v=d.toString();void 0===e[v]&&(q[2*n]=d[0],q[2*n+1]=d[1],e[v]=!0,n++)}h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d= +h.attributes.position.array;p=0;for(s=n;pr;r++)n=k[q[2*p+r]],g=6*p+3*r,d[g+0]=n.x,d[g+1]=n.y,d[g+2]=n.z}else if(a.geometry instanceof THREE.BufferGeometry&&void 0!==a.geometry.attributes.index){for(var k=a.geometry.attributes.position.array,s=a.geometry.attributes.index.array,l=a.geometry.offsets,n=0,q=new Uint32Array(2*s.length),t=0,w=l.length;tr;r++)d[0]=g+s[p+r],d[1]=g+s[p+(r+1)%3],d.sort(f),v=d.toString(), +void 0===e[v]&&(q[2*n]=d[0],q[2*n+1]=d[1],e[v]=!0,n++);h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d=h.attributes.position.array;p=0;for(s=n;pr;r++)g=6*p+3*r,n=3*q[2*p+r],d[g+0]=k[n],d[g+1]=k[n+1],d[g+2]=k[n+2]}else if(a.geometry instanceof THREE.BufferGeometry)for(k=a.geometry.attributes.position.array,n=k.length/3,q=n/3,h.addAttribute("position",new THREE.Float32Attribute(2*n,3)),d=h.attributes.position.array,p=0,s=q;pr;r++)g=18*p+6*r,q=9*p+3*r, +d[g+0]=k[q],d[g+1]=k[q+1],d[g+2]=k[q+2],n=9*p+(r+1)%3*3,d[g+3]=k[n],d[g+4]=k[n+1],d[g+5]=k[n+2];THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:c}),THREE.LinePieces);this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.WireframeHelper.prototype=Object.create(THREE.Line.prototype);THREE.ImmediateRenderObject=function(){THREE.Object3D.call(this);this.render=function(a){}};THREE.ImmediateRenderObject.prototype=Object.create(THREE.Object3D.prototype);THREE.LensFlare=function(a,b,c,d,e){THREE.Object3D.call(this);this.lensFlares=[];this.positionScreen=new THREE.Vector3;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)};THREE.LensFlare.prototype=Object.create(THREE.Object3D.prototype); +THREE.LensFlare.prototype.add=function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new THREE.Color(16777215));void 0===d&&(d=THREE.NormalBlending);c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:1,opacity:f,color:e,blending:d})}; +THREE.LensFlare.prototype.updateLensFlares=function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;ah.end&&(h.end=f);c||(c=k)}}for(k in d)h=d[k],this.createAnimation(k,h.start,h.end,a);this.firstAnimation=c}; +THREE.MorphBlendMesh.prototype.setAnimationDirectionForward=function(a){if(a=this.animationsMap[a])a.direction=1,a.directionBackwards=!1};THREE.MorphBlendMesh.prototype.setAnimationDirectionBackward=function(a){if(a=this.animationsMap[a])a.direction=-1,a.directionBackwards=!0};THREE.MorphBlendMesh.prototype.setAnimationFPS=function(a,b){var c=this.animationsMap[a];c&&(c.fps=b,c.duration=(c.end-c.start)/c.fps)}; +THREE.MorphBlendMesh.prototype.setAnimationDuration=function(a,b){var c=this.animationsMap[a];c&&(c.duration=b,c.fps=(c.end-c.start)/c.duration)};THREE.MorphBlendMesh.prototype.setAnimationWeight=function(a,b){var c=this.animationsMap[a];c&&(c.weight=b)};THREE.MorphBlendMesh.prototype.setAnimationTime=function(a,b){var c=this.animationsMap[a];c&&(c.time=b)};THREE.MorphBlendMesh.prototype.getAnimationTime=function(a){var b=0;if(a=this.animationsMap[a])b=a.time;return b}; +THREE.MorphBlendMesh.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};THREE.MorphBlendMesh.prototype.playAnimation=function(a){var b=this.animationsMap[a];b?(b.time=0,b.active=!0):console.warn("animation["+a+"] undefined")};THREE.MorphBlendMesh.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1}; +THREE.MorphBlendMesh.prototype.update=function(a){for(var b=0,c=this.animationsList.length;bd.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&(d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.startFrame+THREE.Math.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight; +f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);this.morphTargetInfluences[d.currentFrame]=e*g;this.morphTargetInfluences[d.lastFrame]=(1-e)*g}}};THREE.LensFlarePlugin=function(){function a(a,c){var d=b.createProgram(),e=b.createShader(b.FRAGMENT_SHADER),f=b.createShader(b.VERTEX_SHADER),g="precision "+c+" float;\n";b.shaderSource(e,g+a.fragmentShader);b.shaderSource(f,g+a.vertexShader);b.compileShader(e);b.compileShader(f);b.attachShader(d,e);b.attachShader(d,f);b.linkProgram(d);return d}var b,c,d,e,f,g,h,k,l,n,q,p,s;this.init=function(t){b=t.context;c=t;d=t.getPrecision();e=new Float32Array(16);f=new Uint16Array(6);t=0;e[t++]=-1;e[t++]=-1; +e[t++]=0;e[t++]=0;e[t++]=1;e[t++]=-1;e[t++]=1;e[t++]=0;e[t++]=1;e[t++]=1;e[t++]=1;e[t++]=1;e[t++]=-1;e[t++]=1;e[t++]=0;e[t++]=1;t=0;f[t++]=0;f[t++]=1;f[t++]=2;f[t++]=0;f[t++]=2;f[t++]=3;g=b.createBuffer();h=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,g);b.bufferData(b.ARRAY_BUFFER,e,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.bufferData(b.ELEMENT_ARRAY_BUFFER,f,b.STATIC_DRAW);k=b.createTexture();l=b.createTexture();b.bindTexture(b.TEXTURE_2D,k);b.texImage2D(b.TEXTURE_2D,0,b.RGB,16,16, +0,b.RGB,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);b.bindTexture(b.TEXTURE_2D,l);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,16,16,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE); +b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);0>=b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)?(n=!1,q=a(THREE.ShaderFlares.lensFlare,d)):(n=!0,q=a(THREE.ShaderFlares.lensFlareVertexTexture,d));p={};s={};p.vertex=b.getAttribLocation(q,"position");p.uv=b.getAttribLocation(q,"uv");s.renderType=b.getUniformLocation(q,"renderType");s.map=b.getUniformLocation(q,"map");s.occlusionMap=b.getUniformLocation(q,"occlusionMap");s.opacity= +b.getUniformLocation(q,"opacity");s.color=b.getUniformLocation(q,"color");s.scale=b.getUniformLocation(q,"scale");s.rotation=b.getUniformLocation(q,"rotation");s.screenPosition=b.getUniformLocation(q,"screenPosition")};this.render=function(a,d,e,f){a=a.__webglFlares;var u=a.length;if(u){var y=new THREE.Vector3,L=f/e,x=0.5*e,N=0.5*f,J=16/f,B=new THREE.Vector2(J*L,J),K=new THREE.Vector3(1,1,0),A=new THREE.Vector2(1,1),G=s,J=p;b.useProgram(q);b.enableVertexAttribArray(p.vertex);b.enableVertexAttribArray(p.uv); +b.uniform1i(G.occlusionMap,0);b.uniform1i(G.map,1);b.bindBuffer(b.ARRAY_BUFFER,g);b.vertexAttribPointer(J.vertex,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(J.uv,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.disable(b.CULL_FACE);b.depthMask(!1);var D,C,F,z,H;for(D=0;DL;L++)B[L]=new THREE.Vector3,u[L]=new THREE.Vector3;B=x.shadowCascadeNearZ[y];x=x.shadowCascadeFarZ[y];u[0].set(-1,-1,B);u[1].set(1,-1,B);u[2].set(-1, +1,B);u[3].set(1,1,B);u[4].set(-1,-1,x);u[5].set(1,-1,x);u[6].set(-1,1,x);u[7].set(1,1,x);J.originalCamera=p;u=new THREE.Gyroscope;u.position.copy(r.shadowCascadeOffset);u.add(J);u.add(J.target);p.add(u);r.shadowCascadeArray[w]=J;console.log("Created virtualLight",J)}y=r;B=w;x=y.shadowCascadeArray[B];x.position.copy(y.position);x.target.position.copy(y.target.position);x.lookAt(x.target);x.shadowCameraVisible=y.shadowCameraVisible;x.shadowDarkness=y.shadowDarkness;x.shadowBias=y.shadowCascadeBias[B]; +u=y.shadowCascadeNearZ[B];y=y.shadowCascadeFarZ[B];x=x.pointsFrustum;x[0].z=u;x[1].z=u;x[2].z=u;x[3].z=u;x[4].z=y;x[5].z=y;x[6].z=y;x[7].z=y;N[v]=J;v++}else N[v]=r,v++;s=0;for(t=N.length;sy;y++)B=x[y],B.copy(u[y]),THREE.ShadowMapPlugin.__projector.unprojectVector(B,w),B.applyMatrix4(v.matrixWorldInverse),B.xl.x&&(l.x=B.x),B.yl.y&&(l.y=B.y),B.zl.z&&(l.z=B.z);v.left=k.x;v.right=l.x;v.top=l.y;v.bottom=k.y;v.updateProjectionMatrix()}v=r.shadowMap;u=r.shadowMatrix;w=r.shadowCamera;w.position.setFromMatrixPosition(r.matrixWorld);n.setFromMatrixPosition(r.target.matrixWorld);w.lookAt(n);w.updateMatrixWorld();w.matrixWorldInverse.getInverse(w.matrixWorld);r.cameraHelper&&(r.cameraHelper.visible=r.shadowCameraVisible);r.shadowCameraVisible&&r.cameraHelper.update();u.set(0.5,0,0,0.5,0,0.5,0,0.5, +0,0,0.5,0.5,0,0,0,1);u.multiply(w.projectionMatrix);u.multiply(w.matrixWorldInverse);h.multiplyMatrices(w.projectionMatrix,w.matrixWorldInverse);g.setFromMatrix(h);b.setRenderTarget(v);b.clear();x=q.__webglObjects;r=0;for(v=x.length;r 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n")); +u.compileShader(G);u.compileShader(D);u.attachShader(w,G);u.attachShader(w,D);u.linkProgram(w);K=w;r=u.getAttribLocation(K,"position");v=u.getAttribLocation(K,"uv");a=u.getUniformLocation(K,"uvOffset");b=u.getUniformLocation(K,"uvScale");c=u.getUniformLocation(K,"rotation");d=u.getUniformLocation(K,"scale");e=u.getUniformLocation(K,"color");f=u.getUniformLocation(K,"map");g=u.getUniformLocation(K,"opacity");h=u.getUniformLocation(K,"modelViewMatrix");k=u.getUniformLocation(K,"projectionMatrix");l= +u.getUniformLocation(K,"fogType");n=u.getUniformLocation(K,"fogDensity");q=u.getUniformLocation(K,"fogNear");p=u.getUniformLocation(K,"fogFar");s=u.getUniformLocation(K,"fogColor");t=u.getUniformLocation(K,"alphaTest");w=document.createElement("canvas");w.width=8;w.height=8;G=w.getContext("2d");G.fillStyle="#ffffff";G.fillRect(0,0,w.width,w.height);L=new THREE.Texture(w);L.needsUpdate=!0};this.render=function(A,x,D,C){D=A.__webglSprites;if(C=D.length){u.useProgram(K);u.enableVertexAttribArray(r); +u.enableVertexAttribArray(v);u.disable(u.CULL_FACE);u.enable(u.BLEND);u.bindBuffer(u.ARRAY_BUFFER,J);u.vertexAttribPointer(r,2,u.FLOAT,!1,16,0);u.vertexAttribPointer(v,2,u.FLOAT,!1,16,8);u.bindBuffer(u.ELEMENT_ARRAY_BUFFER,B);u.uniformMatrix4fv(k,!1,x.projectionMatrix.elements);u.activeTexture(u.TEXTURE0);u.uniform1i(f,0);var F=0,z=0,H=A.fog;H?(u.uniform3f(s,H.color.r,H.color.g,H.color.b),H instanceof THREE.Fog?(u.uniform1f(q,H.near),u.uniform1f(p,H.far),u.uniform1i(l,1),z=F=1):H instanceof THREE.FogExp2&& +(u.uniform1f(n,H.density),u.uniform1i(l,2),z=F=2)):(u.uniform1i(l,0),z=F=0);for(var E,N=[],H=0;H Date: Thu, 8 May 2014 15:23:06 +0300 Subject: Remove BOM marker from the beginning of the main.qml file Task-number: QTEE-506 Change-Id: Ic18f19d79395d96094666985005eb3edaadae601 Reviewed-by: Gatis Paeglis --- basicsuite/launchersettings/main.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/launchersettings/main.qml b/basicsuite/launchersettings/main.qml index dbd1a31..7c4daaf 100644 --- a/basicsuite/launchersettings/main.qml +++ b/basicsuite/launchersettings/main.qml @@ -1,4 +1,4 @@ -/**************************************************************************** +/**************************************************************************** ** ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: For any questions to Digia, please use the contact form at -- cgit v1.2.3 From 3b2a2cf79af43aafebdd7646d897d66de0eab4ab Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Fri, 9 May 2014 12:18:36 +0200 Subject: Doc: Bump documentation version to 3.0.0 Also, remove the version-specific install path from the example manifest. From now on, the path will be set by the installer when registering the examples to Qt Creator. Change-Id: I4a0a55ab325be78d72f733a85e25d47420d8c5c0 Reviewed-by: Samuli Piippo --- doc/b2qt-demos.qdocconf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/b2qt-demos.qdocconf b/doc/b2qt-demos.qdocconf index 0a8712f..24a23db 100644 --- a/doc/b2qt-demos.qdocconf +++ b/doc/b2qt-demos.qdocconf @@ -6,7 +6,7 @@ sourceencoding = UTF-8 project = QtEnterpriseEmbeddedDemos description = Qt Enterprise Embedded Examples and Demos -version = 2.1.0 +version = 3.0.0 sourcedirs = . imagedirs += images @@ -17,12 +17,11 @@ examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhc examples.imageextensions = "*.png *.jpg *.gif" exampledirs = ../basicsuite -examplesinstallpath = ../../../Boot2Qt-2.x/sources/b2qt-demos/basicsuite qhp.projects = QtEnterpriseEmbeddedDemos qhp.QtEnterpriseEmbeddedDemos.file = b2qt-demos.qhp -qhp.QtEnterpriseEmbeddedDemos.namespace = com.digia.b2qt-demos.210 +qhp.QtEnterpriseEmbeddedDemos.namespace = com.digia.b2qt-demos.300 qhp.QtEnterpriseEmbeddedDemos.virtualFolder = b2qt-demos qhp.QtEnterpriseEmbeddedDemos.indexTitle = Qt Enterprise Embedded Examples and Demos qhp.QtEnterpriseEmbeddedDemos.indexRoot = -- cgit v1.2.3 From 970e4ef386ea26dd9f475ae17d51aff98970308d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Mon, 12 May 2014 14:53:31 +0300 Subject: Add Qt Data Visualization demo Task-number: QTEE-526 Change-Id: Ifcb729236a73bb04951881bfc6d7d28580cde6aa Reviewed-by: Kalle Viironen --- basicsuite/basicsuite.pro | 4 + basicsuite/enterprise-qtdatavis3d/description.txt | 1 + .../enterprise-qtdatavis3d.pro | 16 ++ basicsuite/enterprise-qtdatavis3d/layer_1.png | Bin 0 -> 34540 bytes basicsuite/enterprise-qtdatavis3d/layer_2.png | Bin 0 -> 10553 bytes basicsuite/enterprise-qtdatavis3d/layer_3.png | Bin 0 -> 13022 bytes basicsuite/enterprise-qtdatavis3d/main.qml | 233 +++++++++++++++++++++ basicsuite/enterprise-qtdatavis3d/preview_l.jpg | Bin 0 -> 30360 bytes basicsuite/enterprise-qtdatavis3d/title.txt | 1 + doc/b2qt-demos.qdoc | 11 + doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg | Bin 0 -> 30360 bytes 11 files changed, 266 insertions(+) create mode 100644 basicsuite/enterprise-qtdatavis3d/description.txt create mode 100644 basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro create mode 100644 basicsuite/enterprise-qtdatavis3d/layer_1.png create mode 100644 basicsuite/enterprise-qtdatavis3d/layer_2.png create mode 100644 basicsuite/enterprise-qtdatavis3d/layer_3.png create mode 100644 basicsuite/enterprise-qtdatavis3d/main.qml create mode 100644 basicsuite/enterprise-qtdatavis3d/preview_l.jpg create mode 100644 basicsuite/enterprise-qtdatavis3d/title.txt create mode 100644 doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg diff --git a/basicsuite/basicsuite.pro b/basicsuite/basicsuite.pro index c098e1f..49d1123 100644 --- a/basicsuite/basicsuite.pro +++ b/basicsuite/basicsuite.pro @@ -6,3 +6,7 @@ qtHaveModule(multimedia) { SUBDIRS += qt5-everywhere \ camera } + +qtHaveModule(datavisualization) { + SUBDIRS += enterprise-qtdatavis3d +} diff --git a/basicsuite/enterprise-qtdatavis3d/description.txt b/basicsuite/enterprise-qtdatavis3d/description.txt new file mode 100644 index 0000000..fbec419 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/description.txt @@ -0,0 +1 @@ +Shows how to make a 3D surface plot, displaying three layers from three different height map images using Surface3D with Qt Quick 2. diff --git a/basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro b/basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro new file mode 100644 index 0000000..6f2feac --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro @@ -0,0 +1,16 @@ +TARGET = enterprise-qtdatavis3d + +include(../shared/shared.pri) +b2qtdemo_deploy_defaults() + +QT += datavisualization + +content.files = \ + *.qml \ + *.png + +content.path = $$DESTPATH + +OTHER_FILES += $${content.files} + +INSTALLS += target content diff --git a/basicsuite/enterprise-qtdatavis3d/layer_1.png b/basicsuite/enterprise-qtdatavis3d/layer_1.png new file mode 100644 index 0000000..9138c71 Binary files /dev/null and b/basicsuite/enterprise-qtdatavis3d/layer_1.png differ diff --git a/basicsuite/enterprise-qtdatavis3d/layer_2.png b/basicsuite/enterprise-qtdatavis3d/layer_2.png new file mode 100644 index 0000000..61631ae Binary files /dev/null and b/basicsuite/enterprise-qtdatavis3d/layer_2.png differ diff --git a/basicsuite/enterprise-qtdatavis3d/layer_3.png b/basicsuite/enterprise-qtdatavis3d/layer_3.png new file mode 100644 index 0000000..796df64 Binary files /dev/null and b/basicsuite/enterprise-qtdatavis3d/layer_3.png differ diff --git a/basicsuite/enterprise-qtdatavis3d/main.qml b/basicsuite/enterprise-qtdatavis3d/main.qml new file mode 100644 index 0000000..417ade0 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/main.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.0 +import QtQuick.Controls 1.0 +import QtDataVisualization 1.0 +import "." + +import QtQuick.Enterprise.Controls 1.1 +import QtQuick.Enterprise.Controls.Styles 1.1 + +Item { + id: mainview + + function toPixels(percentage) { + return percentage * Math.min(mainview.width, mainview.height); + } + + Item { + id: surfaceView + width: mainview.width - buttonLayout.width + height: mainview.height + anchors.right: mainview.right; + + ColorGradient { + id: layerOneGradient + ColorGradientStop { position: 0.0; color: "black" } + ColorGradientStop { position: 0.31; color: "tan" } + ColorGradientStop { position: 0.32; color: "green" } + ColorGradientStop { position: 0.40; color: "darkslategray" } + ColorGradientStop { position: 1.0; color: "white" } + } + + ColorGradient { + id: layerTwoGradient + ColorGradientStop { position: 0.315; color: "blue" } + ColorGradientStop { position: 0.33; color: "white" } + } + + ColorGradient { + id: layerThreeGradient + ColorGradientStop { position: 0.0; color: "red" } + ColorGradientStop { position: 0.15; color: "black" } + } + + Surface3D { + id: surfaceLayers + width: surfaceView.width + height: surfaceView.height + theme: Theme3D { + type: Theme3D.ThemeEbony + font.pointSize: 35 + colorStyle: Theme3D.ColorStyleRangeGradient + } + shadowQuality: AbstractGraph3D.ShadowQualityNone + selectionMode: AbstractGraph3D.SelectionRow | AbstractGraph3D.SelectionSlice + scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeft + axisY.min: 20 + axisY.max: 200 + axisX.segmentCount: 5 + axisX.subSegmentCount: 2 + axisX.labelFormat: "%i" + axisZ.segmentCount: 5 + axisZ.subSegmentCount: 2 + axisZ.labelFormat: "%i" + axisY.segmentCount: 5 + axisY.subSegmentCount: 2 + axisY.labelFormat: "%i" + + Surface3DSeries { + id: layerOneSeries + baseGradient: layerOneGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_1.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerOneToggle.checked // bind to checkbox state + } + + Surface3DSeries { + id: layerTwoSeries + baseGradient: layerTwoGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_2.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerTwoToggle.checked // bind to checkbox state + } + + Surface3DSeries { + id: layerThreeSeries + baseGradient: layerThreeGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_3.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerThreeToggle.checked // bind to checkbox state + } + } + } + + ColumnLayout { + id: buttonLayout + anchors.top: parent.top + anchors.left: parent.left + anchors.bottom: parent.bottom + spacing: 0 + + GroupBox { + //title: "Layer Selection" + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: layerOneToggle + text: "Ground\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + + ToggleButton { + id: layerTwoToggle + text: "Sea\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + + ToggleButton { + id: layerThreeToggle + text: "Tectonic\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + } + } + + GroupBox { + //title: "Layer Style" + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: layerOneGrid + text: "Ground\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerOneSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerOneSeries.drawMode = Surface3DSeries.DrawSurface + } + } + + ToggleButton { + id: layerTwoGrid + text: "Sea\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerTwoSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerTwoSeries.drawMode = Surface3DSeries.DrawSurface + } + } + + ToggleButton { + id: layerThreeGrid + text: "Tectonic\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerThreeSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerThreeSeries.drawMode = Surface3DSeries.DrawSurface + } + } + } + } + + GroupBox { + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: sliceButton + text: "Slice\n All\n Layers" + width: toPixels(0.12) + height: width + onClicked: { + if (surfaceLayers.selectionMode & AbstractGraph3D.SelectionMultiSeries) { + surfaceLayers.selectionMode = AbstractGraph3D.SelectionRow + | AbstractGraph3D.SelectionSlice + text = "Slice\n All\n Layers" + } else { + surfaceLayers.selectionMode = AbstractGraph3D.SelectionRow + | AbstractGraph3D.SelectionSlice + | AbstractGraph3D.SelectionMultiSeries + text = "Slice\n One\n Layer" + } + } + } + } + } + } +} diff --git a/basicsuite/enterprise-qtdatavis3d/preview_l.jpg b/basicsuite/enterprise-qtdatavis3d/preview_l.jpg new file mode 100644 index 0000000..ee3d50d Binary files /dev/null and b/basicsuite/enterprise-qtdatavis3d/preview_l.jpg differ diff --git a/basicsuite/enterprise-qtdatavis3d/title.txt b/basicsuite/enterprise-qtdatavis3d/title.txt new file mode 100644 index 0000000..dff1441 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/title.txt @@ -0,0 +1 @@ +095. QtDatavisualization 3D - Surface Multiseries Example diff --git a/doc/b2qt-demos.qdoc b/doc/b2qt-demos.qdoc index f985d8c..d7498fa 100644 --- a/doc/b2qt-demos.qdoc +++ b/doc/b2qt-demos.qdoc @@ -215,6 +215,17 @@ This example project demonstrates using several CircularGauge controls to create a car dashboard. */ +/*! + \example enterprise-qtdatavis3d + \title Qt Data Visualization + \ingroup b2qt-demos + \brief An interactive showcase for Qt Data Visualization 3D. + + \image b2qt-demo-enterprise-qtdatavis3d.jpg + + This example demonstrates how to use the Qt Data Visualization module to display 3D data visualizations in QML. +*/ + /*! \example enterprise-gallery \title Enterprise Controls Gallery diff --git a/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg b/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg new file mode 100644 index 0000000..ee3d50d Binary files /dev/null and b/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg differ -- cgit v1.2.3 From 929a87255d3e92a3b49299104d53f041c1d4f5a3 Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Tue, 13 May 2014 08:51:52 +0200 Subject: Change text input demo to match virtual keyboard 1.0 API Change-Id: I331138272037cd627e74cbcb7fd5cca99e019fb6 Reviewed-by: Kalle Viironen --- basicsuite/textinput/TextArea.qml | 7 +++--- basicsuite/textinput/TextBase.qml | 4 +++- basicsuite/textinput/TextField.qml | 14 +++++++++-- basicsuite/textinput/main.qml | 49 +++++++++++++++++++++++++++++++++----- 4 files changed, 62 insertions(+), 12 deletions(-) diff --git a/basicsuite/textinput/TextArea.qml b/basicsuite/textinput/TextArea.qml index 6832356..89cdc9f 100644 --- a/basicsuite/textinput/TextArea.qml +++ b/basicsuite/textinput/TextArea.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 TextBase { id: textArea @@ -64,8 +65,9 @@ TextBase { TextEdit { id: textEdit - property alias enterKeyText: textArea.enterKeyText - property alias enterKeyEnabled: textArea.enterKeyEnabled + EnterKeyAction.actionId: textArea.enterKeyAction + EnterKeyAction.label: textArea.enterKeyText + EnterKeyAction.enabled: textArea.enterKeyEnabled y: 6 focus: true @@ -77,7 +79,6 @@ TextBase { selectionColor: Qt.rgba(1.0, 1.0, 1.0, 0.5) selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8) anchors { left: parent.left; right: parent.right; margins: 12 } - onActiveFocusChanged: if (!activeFocus) deselect() } } diff --git a/basicsuite/textinput/TextBase.qml b/basicsuite/textinput/TextBase.qml index 916b3e2..fc399a8 100644 --- a/basicsuite/textinput/TextBase.qml +++ b/basicsuite/textinput/TextBase.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 FocusScope { id: textBase @@ -48,8 +49,9 @@ FocusScope { property bool previewTextActive: !editor.activeFocus && text.length === 0 property int fontPixelSize: 32 property string previewText + property int enterKeyAction: EnterKeyAction.None property string enterKeyText - property bool enterKeyEnabled: enterKeyText.length === 0 || editor.text.length > 0 || editor.inputMethodComposing + property bool enterKeyEnabled: enterKeyAction === EnterKeyAction.None || editor.text.length > 0 || editor.inputMethodComposing property alias mouseParent: mouseArea.parent implicitHeight: editor.height + 12 diff --git a/basicsuite/textinput/TextField.qml b/basicsuite/textinput/TextField.qml index e95ded7..b3671d7 100644 --- a/basicsuite/textinput/TextField.qml +++ b/basicsuite/textinput/TextField.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 TextBase { id: textField @@ -51,6 +52,7 @@ TextBase { property alias inputMethodHints: textInput.inputMethodHints property alias validator: textInput.validator property alias echoMode: textInput.echoMode + property int passwordMaskDelay: 1000 editor: textInput mouseParent: flickable @@ -70,8 +72,9 @@ TextBase { TextInput { id: textInput - property alias enterKeyText: textField.enterKeyText - property alias enterKeyEnabled: textField.enterKeyEnabled + EnterKeyAction.actionId: textField.enterKeyAction + EnterKeyAction.label: textField.enterKeyText + EnterKeyAction.enabled: textField.enterKeyEnabled y: 6 focus: true @@ -83,6 +86,13 @@ TextBase { selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8) width: Math.max(flickable.width, implicitWidth)-2 onActiveFocusChanged: if (!activeFocus) deselect() + + Binding { + target: textInput + property: "passwordMaskDelay" + value: textField.passwordMaskDelay + when: textInput.hasOwnProperty("passwordMaskDelay") + } } } } diff --git a/basicsuite/textinput/main.qml b/basicsuite/textinput/main.qml index 70455bf..bcb48d9 100644 --- a/basicsuite/textinput/main.qml +++ b/basicsuite/textinput/main.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 Flickable { id: flickable @@ -76,27 +77,63 @@ Flickable { TextField { width: parent.width previewText: "One line field" - enterKeyText: "Next" + enterKeyAction: EnterKeyAction.Next onEnterKeyClicked: passwordField.focus = true } TextField { id: passwordField width: parent.width - echoMode: TextInput.PasswordEchoOnEdit + echoMode: TextInput.Password previewText: "Password field" inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhPreferLowercase | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText - enterKeyText: "Next" - onEnterKeyClicked: numberField.focus = true + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: upperCaseField.focus = true } TextField { - id: numberField + id: upperCaseField + + width: parent.width + previewText: "Upper case field" + inputMethodHints: Qt.ImhUppercaseOnly + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: lowerCaseField.focus = true + } + TextField { + id: lowerCaseField + + width: parent.width + previewText: "Lower case field" + inputMethodHints: Qt.ImhLowercaseOnly + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: phoneNumberField.focus = true + } + TextField { + id: phoneNumberField validator: RegExpValidator { regExp: /^[0-9\+\-\#\*\ ]{6,}$/ } width: parent.width previewText: "Phone number field" inputMethodHints: Qt.ImhDialableCharactersOnly - enterKeyText: "Next" + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: formattedNumberField.focus = true + } + TextField { + id: formattedNumberField + + width: parent.width + previewText: "Formatted number field" + inputMethodHints: Qt.ImhFormattedNumbersOnly + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: digitsField.focus = true + } + TextField { + id: digitsField + + width: parent.width + previewText: "Digits only field" + inputMethodHints: Qt.ImhDigitsOnly + enterKeyAction: EnterKeyAction.Next onEnterKeyClicked: textArea.focus = true } TextArea { -- cgit v1.2.3 From 8debfb09a9964a9ade83bb739152b3cc449a3793 Mon Sep 17 00:00:00 2001 From: Kalle Viironen Date: Wed, 14 May 2014 15:37:46 +0300 Subject: Remove non functional demos from i.MX6 SABRE SD launcher demo set Change-Id: I1da24319b52487aba08454b8e1282c342e0f7637 Reviewed-by: Samuli Piippo --- basicsuite/camera/exclude.txt | 1 + basicsuite/sensors/exclude.txt | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/basicsuite/camera/exclude.txt b/basicsuite/camera/exclude.txt index b481e58..354b180 100644 --- a/basicsuite/camera/exclude.txt +++ b/basicsuite/camera/exclude.txt @@ -6,3 +6,4 @@ linux-beaglebone linux-iMX6 linux-raspberrypi linux-emulator +linux-imx6qsabresdcd diff --git a/basicsuite/sensors/exclude.txt b/basicsuite/sensors/exclude.txt index e20e515..7ced997 100644 --- a/basicsuite/sensors/exclude.txt +++ b/basicsuite/sensors/exclude.txt @@ -1 +1,7 @@ -android-beaglebone:android-iMX6:linux-iMX6:linux-raspberrypi:linux-beagleboard:linux-beaglebone +android-beaglebone +android-iMX6 +linux-iMX6 +linux-raspberrypi +linux-beagleboard +linux-beaglebone +linux-imx6qsabresd -- cgit v1.2.3 From 5eda0c14e451a88facc3e803b26f097e4e7dd6de Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Fri, 16 May 2014 10:26:32 +0200 Subject: Use consistent title naming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I39adff137b962d6b1a289eb77910e456228149b3 Reviewed-by: Pasi Petäjäjärvi --- basicsuite/controls-touch/title.txt | 2 +- basicsuite/enterprise-qtdatavis3d/title.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/basicsuite/controls-touch/title.txt b/basicsuite/controls-touch/title.txt index e35803a..60325b1 100644 --- a/basicsuite/controls-touch/title.txt +++ b/basicsuite/controls-touch/title.txt @@ -1 +1 @@ -080. Controls: Touch +080. Controls - Touch diff --git a/basicsuite/enterprise-qtdatavis3d/title.txt b/basicsuite/enterprise-qtdatavis3d/title.txt index dff1441..2b34f13 100644 --- a/basicsuite/enterprise-qtdatavis3d/title.txt +++ b/basicsuite/enterprise-qtdatavis3d/title.txt @@ -1 +1 @@ -095. QtDatavisualization 3D - Surface Multiseries Example +095. Qt Data Visualization 3D - Surface Multiseries -- cgit v1.2.3 From ed10563ad2c049071a579292b792fe4a9230bab0 Mon Sep 17 00:00:00 2001 From: Kalle Viironen Date: Fri, 16 May 2014 12:41:33 +0300 Subject: Fix typo in came exclude Change-Id: Ie34dd2368530605cd27c980d814b93ef211ed7e5 Reviewed-by: Samuli Piippo --- basicsuite/camera/exclude.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/camera/exclude.txt b/basicsuite/camera/exclude.txt index 354b180..00d3261 100644 --- a/basicsuite/camera/exclude.txt +++ b/basicsuite/camera/exclude.txt @@ -6,4 +6,4 @@ linux-beaglebone linux-iMX6 linux-raspberrypi linux-emulator -linux-imx6qsabresdcd +linux-imx6qsabresd -- cgit v1.2.3 From f8f784fa99dddf3e61b78ef083991cc45d690890 Mon Sep 17 00:00:00 2001 From: Kalle Viironen Date: Fri, 16 May 2014 12:43:45 +0300 Subject: remove datavis 3D from RPi launher demos Change-Id: I4f5de4d98cf6c98beadacf1a663cde3a441326ea Reviewed-by: Samuli Piippo --- basicsuite/enterprise-qtdatavis3d/exclude.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 basicsuite/enterprise-qtdatavis3d/exclude.txt diff --git a/basicsuite/enterprise-qtdatavis3d/exclude.txt b/basicsuite/enterprise-qtdatavis3d/exclude.txt new file mode 100644 index 0000000..98679bc --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/exclude.txt @@ -0,0 +1 @@ +linux-raspberrypi -- cgit v1.2.3 From 5ed34dfa932d55b59f20154cb519be01b1345655 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Mon, 19 May 2014 10:26:03 +0300 Subject: Remove yocto version from about-b2qt demo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Version changes almost every relese, no point having it here. Task-number: QTEE-546 Change-Id: I97185ffbceebedceddd38983edc2fc44c0a93469 Reviewed-by: Pasi Petäjäjärvi --- basicsuite/about-b2qt/QtForAndroid.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/about-b2qt/QtForAndroid.qml b/basicsuite/about-b2qt/QtForAndroid.qml index 16d834a..6b3b81f 100644 --- a/basicsuite/about-b2qt/QtForAndroid.qml +++ b/basicsuite/about-b2qt/QtForAndroid.qml @@ -87,7 +87,7 @@ Column { ContentText { width: parent.width text: '

Boot to Qt for embedded Linux is build from scratch using - Yocto 1.5 tools to contain only components required in the embedded device, + Yocto tools to contain only components required in the embedded device, resulting in smaller image sizes while keeping valuable development tools available.' } } -- cgit v1.2.3 From ca76a8e3c9f5bb236c556b877c2499f8fb189eca Mon Sep 17 00:00:00 2001 From: aavit Date: Mon, 19 May 2014 09:24:55 +0200 Subject: Camera demo doesn't work on new nexus just yet, exclude it Change-Id: I0f3bf9d7d83e84d4ba3c97747aa8437bbdb004b8 Reviewed-by: Samuli Piippo --- basicsuite/camera/exclude.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/basicsuite/camera/exclude.txt b/basicsuite/camera/exclude.txt index 00d3261..0d5537c 100644 --- a/basicsuite/camera/exclude.txt +++ b/basicsuite/camera/exclude.txt @@ -1,6 +1,7 @@ android-beaglebone android-iMX6 android-emulator +android-nexus7v2 linux-beagleboard linux-beaglebone linux-iMX6 -- cgit v1.2.3 From 1f07584ea0e67160f2f84e9b6c1375bcd3b46413 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Mon, 19 May 2014 12:54:28 +0300 Subject: workaround for crash on linux Task-number: QTEE-506 Change-Id: I895a7f83ead3afc0a0483b5a75433f8f9ead8397 Reviewed-by: Gatis Paeglis --- basicsuite/launchersettings/PoweroffAction.qml | 1 - basicsuite/launchersettings/RebootAction.qml | 1 - 2 files changed, 2 deletions(-) diff --git a/basicsuite/launchersettings/PoweroffAction.qml b/basicsuite/launchersettings/PoweroffAction.qml index 8c14b79..d0bcd39 100644 --- a/basicsuite/launchersettings/PoweroffAction.qml +++ b/basicsuite/launchersettings/PoweroffAction.qml @@ -43,6 +43,5 @@ import QtDroid.Utils 1.0 Action { - text: "Power Off!" onTriggered: DroidUtils.powerOffSystem()(); } diff --git a/basicsuite/launchersettings/RebootAction.qml b/basicsuite/launchersettings/RebootAction.qml index e6f57ca..995fb61 100644 --- a/basicsuite/launchersettings/RebootAction.qml +++ b/basicsuite/launchersettings/RebootAction.qml @@ -43,6 +43,5 @@ import QtDroid.Utils 1.0 Action { - text: "Reboot" onTriggered: DroidUtils.rebootSystem(); } -- cgit v1.2.3 From 9c34f0a3959a34f6c2607deb8e2bd5cc22292734 Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Mon, 19 May 2014 11:30:30 +0200 Subject: Disable autocompletion for password field Change-Id: I178e3dd14b627d708275a9c70bd7e8b7d55ee0f6 Reviewed-by: Gatis Paeglis --- basicsuite/launchersettings/NetworkList.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/basicsuite/launchersettings/NetworkList.qml b/basicsuite/launchersettings/NetworkList.qml index 204e4e2..6a02e2c 100644 --- a/basicsuite/launchersettings/NetworkList.qml +++ b/basicsuite/launchersettings/NetworkList.qml @@ -133,6 +133,7 @@ Item { visible: !connected anchors.horizontalCenter: parent.horizontalCenter font.pixelSize: 18 + inputMethodHints: Qt.ImhNoPredictiveText } Button { -- cgit v1.2.3 From 79456705728f87be45392f3d87758d84665459fd Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Mon, 19 May 2014 16:33:59 +0200 Subject: Exclude qtdatavis3d from android-beaglebone Performance on this device is ~3 FPS. Change-Id: I5603a18c319975ed0c367b5b809cc0ce10efc9f6 Reviewed-by: Rainer Keller --- basicsuite/enterprise-qtdatavis3d/exclude.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/basicsuite/enterprise-qtdatavis3d/exclude.txt b/basicsuite/enterprise-qtdatavis3d/exclude.txt index 98679bc..d8a20e7 100644 --- a/basicsuite/enterprise-qtdatavis3d/exclude.txt +++ b/basicsuite/enterprise-qtdatavis3d/exclude.txt @@ -1 +1,2 @@ linux-raspberrypi +android-beaglebone -- cgit v1.2.3 From 640c78665ffca949ad4c1773df7eddb1bdb9f1a2 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Fri, 16 May 2014 14:59:49 +0200 Subject: Add a simple WebEngine demo to the B2Qt basicsuite Add a simple demo browser which by default loads the local webgl example. Move the webgl example to the root directory to be deployed. Change-Id: Icb0442ef37dcb31e6e1d33eee279bf429c566106 Reviewed-by: Laszlo Agocs --- basicsuite/shared/engine.h | 3 + basicsuite/shared/main.cpp | 15 +- basicsuite/shared/shared.pri | 5 + basicsuite/webengine/content/webgl/helloqt.html | 48 + basicsuite/webengine/content/webgl/helloqt.js | 213 ++ basicsuite/webengine/content/webgl/qtlogo.js | 2468 +++++++++++++++++++++++ basicsuite/webengine/content/webgl/three.min.js | 737 +++++++ basicsuite/webengine/description.txt | 3 + basicsuite/webengine/exclude.txt | 2 + basicsuite/webengine/main.qml | 225 +++ basicsuite/webengine/preview_l.jpg | Bin 0 -> 18081 bytes basicsuite/webengine/title.txt | 1 + basicsuite/webengine/ui/icons/busy.png | Bin 0 -> 547 bytes basicsuite/webengine/ui/icons/cube.png | Bin 0 -> 635 bytes basicsuite/webengine/ui/icons/down.png | Bin 0 -> 883 bytes basicsuite/webengine/ui/icons/go-next.png | Bin 0 -> 581 bytes basicsuite/webengine/ui/icons/go-previous.png | Bin 0 -> 585 bytes basicsuite/webengine/ui/icons/grid.png | Bin 0 -> 516 bytes basicsuite/webengine/ui/icons/home.png | Bin 0 -> 596 bytes basicsuite/webengine/ui/icons/list.png | Bin 0 -> 383 bytes basicsuite/webengine/ui/icons/pin-checked.png | Bin 0 -> 601 bytes basicsuite/webengine/ui/icons/pin-unchecked.png | Bin 0 -> 455 bytes basicsuite/webengine/ui/icons/pin.png | Bin 0 -> 667 bytes basicsuite/webengine/ui/icons/plus.png | Bin 0 -> 724 bytes basicsuite/webengine/ui/icons/process-stop.png | Bin 0 -> 657 bytes basicsuite/webengine/ui/icons/settings.png | Bin 0 -> 675 bytes basicsuite/webengine/ui/icons/stack.png | Bin 0 -> 820 bytes basicsuite/webengine/ui/icons/up.png | Bin 0 -> 885 bytes basicsuite/webengine/ui/icons/view-refresh.png | Bin 0 -> 786 bytes basicsuite/webengine/ui/icons/wifi-off.png | Bin 0 -> 2866 bytes basicsuite/webengine/ui/icons/wifi-on.png | Bin 0 -> 2844 bytes basicsuite/webengine/ui/icons/wifi.png | Bin 0 -> 617 bytes basicsuite/webengine/ui/icons/window.png | Bin 0 -> 309 bytes basicsuite/webengine/webengine.pro | 13 + experimental/webgl/helloqt.html | 48 - experimental/webgl/helloqt.js | 213 -- experimental/webgl/qtlogo.js | 2468 ----------------------- experimental/webgl/three.min.js | 737 ------- 38 files changed, 3732 insertions(+), 3467 deletions(-) create mode 100644 basicsuite/webengine/content/webgl/helloqt.html create mode 100644 basicsuite/webengine/content/webgl/helloqt.js create mode 100644 basicsuite/webengine/content/webgl/qtlogo.js create mode 100644 basicsuite/webengine/content/webgl/three.min.js create mode 100644 basicsuite/webengine/description.txt create mode 100644 basicsuite/webengine/exclude.txt create mode 100644 basicsuite/webengine/main.qml create mode 100644 basicsuite/webengine/preview_l.jpg create mode 100644 basicsuite/webengine/title.txt create mode 100644 basicsuite/webengine/ui/icons/busy.png create mode 100644 basicsuite/webengine/ui/icons/cube.png create mode 100644 basicsuite/webengine/ui/icons/down.png create mode 100644 basicsuite/webengine/ui/icons/go-next.png create mode 100644 basicsuite/webengine/ui/icons/go-previous.png create mode 100644 basicsuite/webengine/ui/icons/grid.png create mode 100644 basicsuite/webengine/ui/icons/home.png create mode 100644 basicsuite/webengine/ui/icons/list.png create mode 100644 basicsuite/webengine/ui/icons/pin-checked.png create mode 100644 basicsuite/webengine/ui/icons/pin-unchecked.png create mode 100644 basicsuite/webengine/ui/icons/pin.png create mode 100644 basicsuite/webengine/ui/icons/plus.png create mode 100644 basicsuite/webengine/ui/icons/process-stop.png create mode 100644 basicsuite/webengine/ui/icons/settings.png create mode 100644 basicsuite/webengine/ui/icons/stack.png create mode 100644 basicsuite/webengine/ui/icons/up.png create mode 100644 basicsuite/webengine/ui/icons/view-refresh.png create mode 100644 basicsuite/webengine/ui/icons/wifi-off.png create mode 100644 basicsuite/webengine/ui/icons/wifi-on.png create mode 100644 basicsuite/webengine/ui/icons/wifi.png create mode 100644 basicsuite/webengine/ui/icons/window.png create mode 100644 basicsuite/webengine/webengine.pro delete mode 100644 experimental/webgl/helloqt.html delete mode 100644 experimental/webgl/helloqt.js delete mode 100644 experimental/webgl/qtlogo.js delete mode 100644 experimental/webgl/three.min.js diff --git a/basicsuite/shared/engine.h b/basicsuite/shared/engine.h index 1600fc6..43713c8 100644 --- a/basicsuite/shared/engine.h +++ b/basicsuite/shared/engine.h @@ -20,6 +20,8 @@ #include #include +#include +#include class QQmlEngine; class QQuickItem; @@ -36,6 +38,7 @@ class DummyEngine : public QObject public: explicit DummyEngine(QObject *parent = 0); + Q_INVOKABLE QUrl fromUserInput(const QString &userInput) { return QUrl::fromUserInput(userInput); } Q_INVOKABLE int smallFontSize() const { return qMax(m_dpcm * 0.4, 10); } Q_INVOKABLE int fontSize() const { return qMax(m_dpcm * 0.6, 14); } Q_INVOKABLE int titleFontSize() const { return qMax(m_dpcm * 0.9, 20); } diff --git a/basicsuite/shared/main.cpp b/basicsuite/shared/main.cpp index d33b09c..d5b203f 100644 --- a/basicsuite/shared/main.cpp +++ b/basicsuite/shared/main.cpp @@ -34,14 +34,27 @@ #include #include -#include "engine.h" +#if defined(USE_QTWEBENGINE) +#include +#endif +#include "engine.h" int main(int argc, char **argv) { //qputenv("QT_IM_MODULE", QByteArray("qtvkb")); QApplication app(argc, argv); + + +#if defined(USE_QTWEBENGINE) + // This is currently needed by all QtWebEngine applications using the HW accelerated QQuickWebView. + // It enables sharing the QOpenGLContext of all QQuickWindows of the application. + // We have to do so until we expose a public API for it in Qt or choose to enable it + // by default earliest in Qt 5.4.0. + QWebEngine::initialize(); +#endif + QString path = app.applicationDirPath(); QPalette pal; diff --git a/basicsuite/shared/shared.pri b/basicsuite/shared/shared.pri index 8f66b7d..0d7392d 100644 --- a/basicsuite/shared/shared.pri +++ b/basicsuite/shared/shared.pri @@ -1,6 +1,11 @@ # widget dependecy is required by QtCharts demo QT += quick widgets +qtHaveModule(webengine) { + DEFINES += USE_QTWEBENGINE + QT += webengine +} + DESTPATH = /data/user/$$TARGET target.path = $$DESTPATH diff --git a/basicsuite/webengine/content/webgl/helloqt.html b/basicsuite/webengine/content/webgl/helloqt.html new file mode 100644 index 0000000..56c336c --- /dev/null +++ b/basicsuite/webengine/content/webgl/helloqt.html @@ -0,0 +1,48 @@ + + + + + + + + + +

+ + + + + + + + diff --git a/basicsuite/webengine/content/webgl/helloqt.js b/basicsuite/webengine/content/webgl/helloqt.js new file mode 100644 index 0000000..d0ae216 --- /dev/null +++ b/basicsuite/webengine/content/webgl/helloqt.js @@ -0,0 +1,213 @@ +var shadow = false; + +var container = document.getElementById("container"); +var camera = null; +var scene = new THREE.Scene(); +var renderer = new THREE.WebGLRenderer({ antialias: false /*true*/ }); +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 () { + 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 new file mode 100644 index 0000000..e2eba96 --- /dev/null +++ b/basicsuite/webengine/content/webgl/qtlogo.js @@ -0,0 +1,2468 @@ +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/three.min.js b/basicsuite/webengine/content/webgl/three.min.js new file mode 100644 index 0000000..95b938c --- /dev/null +++ b/basicsuite/webengine/content/webgl/three.min.js @@ -0,0 +1,737 @@ +// 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>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);1c?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+(cf&&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.xb.x&&(this.x=b.x);this.yb.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.xb.x&&(this.x=b.x);this.yb.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.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);this.zb.z&&(this.z=b.z);this.wb.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(0this.max.x&&(this.max.x=b.x),b.ythis.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.xthis.max.x||a.ythis.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.xthis.max.x||a.max.ythis.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.xthis.max.x&&(this.max.x=a.x);a.ythis.max.y&&(this.max.y=a.y);a.zthis.max.z&&(this.max.z=a.z);return this},setFromPoints:function(a){if(0this.max.x||a.ythis.max.y||a.zthis.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.xthis.max.x||a.max.ythis.max.y||a.max.zthis.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;ethis.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=0a.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(fg||e>d)return null;if(e>c||c!==c)c=e;if(gd?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=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)e;e++){var f=d[e];a.x=0g&&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&&0a&&0f||1e;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 ac?c:a},clampBottom:function(a,b){return 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:0this.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=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;ef.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;Bn.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;rn.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;Bn.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;rv||(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;de&&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.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;fL;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=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;bb.max.x&&(b.max.x=e);fb.max.y&&(b.max.y=f);gb.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;eGa?-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;nr;r++)t=a[3*c+r],-1==p[t]?(q[2*r]=t,q[2*r+1]=-1,n++):p[t]k.index+b)for(k={start:f,count:0,index:g},h.push(k),n=0;6>n;n+=2)r=q[n+1],-1n;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;ed?-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;cd;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;cc&&(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;ca.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;dg;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;dg;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;dz.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;uh.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[d].distance)this.objects[d-1].object.visible=!1,this.objects[d].object.visible=!0;else break;for(;dD&&A.clearRect(Z.min.x|0,Z.min.y|0,Z.max.x-Z.min.x|0,Z.max.y-Z.min.y|0),0R.positionScreen.z||1I.positionScreen.z||1da.positionScreen.z||1=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 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&&(0p;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=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&&(1b;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;ad.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;nha;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;Dha;ha++)Ca=V[ha],cb[Ra]=Ca.x,cb[Ra+1]=Ca.y,Ra+=2;0ha;ha++)Da=W[ha],db[Sa]= +Da.x,db[Sa+1]=Da.y,Sa+=2;0f;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;qa?b(c,e-1):l[e]>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;qq-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;se)return null;var f=[],g=[],h=[],k,l,n;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;pk)g=d+1;else if(0b&&(b=0);1=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;cb?b=h.x:h.xc?c=h.y:h.yd?d=h.z:h.zMath.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;cl&&(g=b[f],k=-k,h=b[e],l=-l),!(a.yh.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;bB||B>J)return[];k=l*n-k*q;if(0>k||k>J)return[]}else{if(0d?[]: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-10f&&(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;cF){console.log("Infinite Loop! Holes left:"+ +l.length+", Probably Hole outside Shape!");break}for(q=A;qh;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+=0a.hierarchy[c].keys[d].time&& +(a.hierarchy[c].keys[d].time=0),void 0!==a.hierarchy[c].keys[d].rot&&!(a.hierarchy[c].keys[d].rot instanceof THREE.Quaternion)){var h=a.hierarchy[c].keys[d].rot;a.hierarchy[c].keys[d].rot=(new THREE.Quaternion).fromArray(h)}if(a.hierarchy[c].keys.length&&void 0!==a.hierarchy[c].keys[0].morphTargets){h={};for(d=0;dd;d++){for(var e=this.keyTypes[d],f=this.data.hierarchy[a].keys[0],g=this.getNextKeyWith(e,a,1);g.timef.index;)f=g,g=this.getNextKeyWith(e,a,g.index+1);c.prevKey[e]=f;c.nextKey[e]=g}}}; +THREE.Animation.prototype.update=function(){var a=[],b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Quaternion,e=function(a,b){var c=[],d=[],e,q,p,s,t,r;e=(a.length-1)*b;q=Math.floor(e);e-=q;c[0]=0===q?q:q-1;c[1]=q;c[2]=q>a.length-2?q:q+1;c[3]=q>a.length-3?q:q+2;q=a[c[0]];s=a[c[1]];t=a[c[2]];r=a[c[3]];c=e*e;p=e*c;d[0]=f(q[0],s[0],t[0],r[0],e,c,p);d[1]=f(q[1],s[1],t[1],r[1],e,c,p);d[2]=f(q[2],s[2],t[2],r[2],e,c,p);return d},f=function(a,b,c,d,e,f,p){a=0.5*(c-a);d=0.5*(d-b);return(2*(b-c)+a+d)* +p+(-3*(b-c)-2*a-d)*f+a*e+b};return function(f){if(!1!==this.isPlaying&&(this.currentTime+=f*this.timeScale,0!==this.weight)){var h;f=this.data.length;if(!0===this.loop&&this.currentTime>f)this.currentTime%=f,this.reset();else if(!1===this.loop&&this.currentTime>f){this.stop();return}f=0;for(var k=this.hierarchy.length;fq;q++){h=this.keyTypes[q];var p=n.prevKey[h],s=n.nextKey[h];if(s.time<=this.currentTime){p=this.data.hierarchy[f].keys[0]; +for(s=this.getNextKeyWith(h,f,1);s.timep.index;)p=s,s=this.getNextKeyWith(h,f,s.index+1);n.prevKey[h]=p;n.nextKey[h]=s}l.matrixAutoUpdate=!0;l.matrixWorldNeedsUpdate=!0;var t=(this.currentTime-p.time)/(s.time-p.time),r=p[h],v=s[h];0>t&&(t=0);1a&&(this.currentTime%=a);this.currentTime=Math.min(this.currentTime,a);a=0;for(var b=this.hierarchy.length;af.index;)f=g,g=e[f.index+1];d.prevKey= +f;d.nextKey=g}g.time>=this.currentTime?f.interpolate(g,this.currentTime):f.interpolate(g,g.time);this.data.hierarchy[a].node.updateMatrix();c.matrixWorldNeedsUpdate=!0}}}};THREE.KeyFrameAnimation.prototype.getNextKeyWith=function(a,b,c){b=this.data.hierarchy[b].keys;for(c%=b.length;cthis.duration&&(this.currentTime%=this.duration);this.currentTime=Math.min(this.currentTime,this.duration);c=this.duration/this.frames;var d=Math.floor(this.currentTime/c);d!=b&&(this.mesh.morphTargetInfluences[a]=0,this.mesh.morphTargetInfluences[b]=1,this.mesh.morphTargetInfluences[d]= +0,a=b,b=d);this.mesh.morphTargetInfluences[d]=this.currentTime%c/c;this.mesh.morphTargetInfluences[a]=1-this.mesh.morphTargetInfluences[d]}}}()};THREE.CubeCamera=function(a,b,c){THREE.Object3D.call(this);var d=new THREE.PerspectiveCamera(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new THREE.Vector3(1,0,0));this.add(d);var e=new THREE.PerspectiveCamera(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new THREE.Vector3(-1,0,0));this.add(e);var f=new THREE.PerspectiveCamera(90,1,a,b);f.up.set(0,0,1);f.lookAt(new THREE.Vector3(0,1,0));this.add(f);var g=new THREE.PerspectiveCamera(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new THREE.Vector3(0,-1,0));this.add(g);var h=new THREE.PerspectiveCamera(90, +1,a,b);h.up.set(0,-1,0);h.lookAt(new THREE.Vector3(0,0,1));this.add(h);var k=new THREE.PerspectiveCamera(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new THREE.Vector3(0,0,-1));this.add(k);this.renderTarget=new THREE.WebGLRenderTargetCube(c,c,{format:THREE.RGBFormat,magFilter:THREE.LinearFilter,minFilter:THREE.LinearFilter});this.updateCubeMap=function(a,b){var c=this.renderTarget,p=c.generateMipmaps;c.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace= +2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.generateMipmaps=p;c.activeCubeFace=5;a.render(b,k,c)}};THREE.CubeCamera.prototype=Object.create(THREE.Object3D.prototype);THREE.CombinedCamera=function(a,b,c,d,e,f,g){THREE.Camera.call(this);this.fov=c;this.left=-a/2;this.right=a/2;this.top=b/2;this.bottom=-b/2;this.cameraO=new THREE.OrthographicCamera(a/-2,a/2,b/2,b/-2,f,g);this.cameraP=new THREE.PerspectiveCamera(c,a/b,d,e);this.zoom=1;this.toPerspective()};THREE.CombinedCamera.prototype=Object.create(THREE.Camera.prototype); +THREE.CombinedCamera.prototype.toPerspective=function(){this.near=this.cameraP.near;this.far=this.cameraP.far;this.cameraP.fov=this.fov/this.zoom;this.cameraP.updateProjectionMatrix();this.projectionMatrix=this.cameraP.projectionMatrix;this.inPerspectiveMode=!0;this.inOrthographicMode=!1}; +THREE.CombinedCamera.prototype.toOrthographic=function(){var a=this.cameraP.aspect,b=(this.cameraP.near+this.cameraP.far)/2,b=Math.tan(this.fov/2)*b,a=2*b*a/2,b=b/this.zoom,a=a/this.zoom;this.cameraO.left=-a;this.cameraO.right=a;this.cameraO.top=b;this.cameraO.bottom=-b;this.cameraO.updateProjectionMatrix();this.near=this.cameraO.near;this.far=this.cameraO.far;this.projectionMatrix=this.cameraO.projectionMatrix;this.inPerspectiveMode=!1;this.inOrthographicMode=!0}; +THREE.CombinedCamera.prototype.setSize=function(a,b){this.cameraP.aspect=a/b;this.left=-a/2;this.right=a/2;this.top=b/2;this.bottom=-b/2};THREE.CombinedCamera.prototype.setFov=function(a){this.fov=a;this.inPerspectiveMode?this.toPerspective():this.toOrthographic()};THREE.CombinedCamera.prototype.updateProjectionMatrix=function(){this.inPerspectiveMode?this.toPerspective():(this.toPerspective(),this.toOrthographic())}; +THREE.CombinedCamera.prototype.setLens=function(a,b){void 0===b&&(b=24);var c=2*THREE.Math.radToDeg(Math.atan(b/(2*a)));this.setFov(c);return c};THREE.CombinedCamera.prototype.setZoom=function(a){this.zoom=a;this.inPerspectiveMode?this.toPerspective():this.toOrthographic()};THREE.CombinedCamera.prototype.toFrontView=function(){this.rotation.x=0;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1}; +THREE.CombinedCamera.prototype.toBackView=function(){this.rotation.x=0;this.rotation.y=Math.PI;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toLeftView=function(){this.rotation.x=0;this.rotation.y=-Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toRightView=function(){this.rotation.x=0;this.rotation.y=Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1}; +THREE.CombinedCamera.prototype.toTopView=function(){this.rotation.x=-Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toBottomView=function(){this.rotation.x=Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.BoxGeometry=function(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,r){var v,w=h.widthSegments,u=h.heightSegments,y=e/2,L=f/2,x=h.vertices.length;if("x"===a&&"y"===b||"y"===a&&"x"===b)v="z";else if("x"===a&&"z"===b||"z"===a&&"x"===b)v="y",u=h.depthSegments;else if("z"===a&&"y"===b||"y"===a&&"z"===b)v="x",w=h.depthSegments;var N=w+1,J=u+1,B=e/w,K=f/u,A=new THREE.Vector3;A[v]=0=e)return new THREE.Vector2(c,a);e=Math.sqrt(e/2)}else a=!1,1E-10e?-1E-10>g&& +(a=!0):d(f)==d(h)&&(a=!0),a?(c=-f,a=e,e=Math.sqrt(k)):(c=e,a=f,e=Math.sqrt(k/2));return new THREE.Vector2(c/e,a/e)}function e(c,d){var e,f;for(I=c.length;0<=--I;){e=I;f=I-1;0>f&&(f=c.length-1);for(var g=0,h=s+2*n,g=0;gMath.abs(c-k)?[new THREE.Vector2(b,1-e),new THREE.Vector2(d,1-f),new THREE.Vector2(l,1-g),new THREE.Vector2(q,1-a)]:[new THREE.Vector2(c,1-e),new THREE.Vector2(k,1-f),new THREE.Vector2(n,1-g),new THREE.Vector2(p,1-a)]}};THREE.ExtrudeGeometry.__v1=new THREE.Vector2;THREE.ExtrudeGeometry.__v2=new THREE.Vector2;THREE.ExtrudeGeometry.__v3=new THREE.Vector2;THREE.ExtrudeGeometry.__v4=new THREE.Vector2; +THREE.ExtrudeGeometry.__v5=new THREE.Vector2;THREE.ExtrudeGeometry.__v6=new THREE.Vector2;THREE.ShapeGeometry=function(a,b){THREE.Geometry.call(this);!1===a instanceof Array&&(a=[a]);this.shapebb=a[a.length-1].getBoundingBox();this.addShapeList(a,b);this.computeFaceNormals()};THREE.ShapeGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ShapeGeometry.prototype.addShapeList=function(a,b){for(var c=0,d=a.length;cc&&1===a.x&&(a=new THREE.Vector2(a.x-1,a.y));0===b.x&&0===b.z&&(a=new THREE.Vector2(c/2/ +Math.PI+0.5,a.y));return a.clone()}THREE.Geometry.call(this);c=c||1;d=d||0;for(var k=this,l=0,n=a.length;ls&&(0.2>d&&(b[0].x+=1),0.2>a&&(b[1].x+=1),0.2>q&&(b[2].x+=1));l=0;for(n=this.vertices.length;lc.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}(); +THREE.ArrowHelper.prototype.setLength=function(a,b,c){void 0===b&&(b=0.2*a);void 0===c&&(c=0.2*b);this.line.scale.set(1,a,1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};THREE.ArrowHelper.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};THREE.BoxHelper=function(a){var b=[new THREE.Vector3(1,1,1),new THREE.Vector3(-1,1,1),new THREE.Vector3(-1,-1,1),new THREE.Vector3(1,-1,1),new THREE.Vector3(1,1,-1),new THREE.Vector3(-1,1,-1),new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,-1,-1)];this.vertices=b;var c=new THREE.Geometry;c.vertices.push(b[0],b[1],b[1],b[2],b[2],b[3],b[3],b[0],b[4],b[5],b[5],b[6],b[6],b[7],b[7],b[4],b[0],b[4],b[1],b[5],b[2],b[6],b[3],b[7]);THREE.Line.call(this,c,new THREE.LineBasicMaterial({color:16776960}),THREE.LinePieces); +void 0!==a&&this.update(a)};THREE.BoxHelper.prototype=Object.create(THREE.Line.prototype); +THREE.BoxHelper.prototype.update=function(a){var b=a.geometry;null===b.boundingBox&&b.computeBoundingBox();var c=b.boundingBox.min,b=b.boundingBox.max,d=this.vertices;d[0].set(b.x,b.y,b.z);d[1].set(c.x,b.y,b.z);d[2].set(c.x,c.y,b.z);d[3].set(b.x,c.y,b.z);d[4].set(b.x,b.y,c.z);d[5].set(c.x,b.y,c.z);d[6].set(c.x,c.y,c.z);d[7].set(b.x,c.y,c.z);this.geometry.computeBoundingSphere();this.geometry.verticesNeedUpdate=!0;this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.BoundingBoxHelper=function(a,b){var c=void 0!==b?b:8947848;this.object=a;this.box=new THREE.Box3;THREE.Mesh.call(this,new THREE.BoxGeometry(1,1,1),new THREE.MeshBasicMaterial({color:c,wireframe:!0}))};THREE.BoundingBoxHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.BoundingBoxHelper.prototype.update=function(){this.box.setFromObject(this.object);this.box.size(this.scale);this.box.center(this.position)};THREE.CameraHelper=function(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){d.vertices.push(new THREE.Vector3);d.colors.push(new THREE.Color(b));void 0===f[a]&&(f[a]=[]);f[a].push(d.vertices.length-1)}var d=new THREE.Geometry,e=new THREE.LineBasicMaterial({color:16777215,vertexColors:THREE.FaceColors}),f={};b("n1","n2",16755200);b("n2","n4",16755200);b("n4","n3",16755200);b("n3","n1",16755200);b("f1","f2",16755200);b("f2","f4",16755200);b("f4","f3",16755200);b("f3","f1",16755200);b("n1","f1",16755200); +b("n2","f2",16755200);b("n3","f3",16755200);b("n4","f4",16755200);b("p","n1",16711680);b("p","n2",16711680);b("p","n3",16711680);b("p","n4",16711680);b("u1","u2",43775);b("u2","u3",43775);b("u3","u1",43775);b("c","t",16777215);b("p","c",3355443);b("cn1","cn2",3355443);b("cn3","cn4",3355443);b("cf1","cf2",3355443);b("cf3","cf4",3355443);THREE.Line.call(this,d,e,THREE.LinePieces);this.camera=a;this.matrixWorld=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=f;this.update()}; +THREE.CameraHelper.prototype=Object.create(THREE.Line.prototype); +THREE.CameraHelper.prototype.update=function(){var a=new THREE.Vector3,b=new THREE.Camera,c=new THREE.Projector;return function(){function d(d,g,h,k){a.set(g,h,k);c.unprojectVector(a,b);d=e.pointMap[d];if(void 0!==d)for(g=0,h=d.length;gt;t++){d[0]=s[g[t]];d[1]=s[g[(t+1)%3]];d.sort(f);var r=d.toString();void 0===e[r]?(e[r]={vert1:d[0],vert2:d[1],face1:q,face2:void 0},n++):e[r].face2=q}h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d=h.attributes.position.array; +f=0;for(r in e)if(g=e[r],void 0===g.face2||0.9999>k[g.face1].normal.dot(k[g.face2].normal))n=l[g.vert1],d[f++]=n.x,d[f++]=n.y,d[f++]=n.z,n=l[g.vert2],d[f++]=n.x,d[f++]=n.y,d[f++]=n.z;THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:c}),THREE.LinePieces);this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.EdgesHelper.prototype=Object.create(THREE.Line.prototype);THREE.FaceNormalsHelper=function(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=new THREE.Geometry;c=0;for(var e=this.object.geometry.faces.length;cb;b++)a.faces[b].color=this.colors[4>b?0:1];b=new THREE.MeshBasicMaterial({vertexColors:THREE.FaceColors,wireframe:!0});this.lightSphere=new THREE.Mesh(a,b);this.add(this.lightSphere); +this.update()};THREE.HemisphereLightHelper.prototype=Object.create(THREE.Object3D.prototype);THREE.HemisphereLightHelper.prototype.dispose=function(){this.lightSphere.geometry.dispose();this.lightSphere.material.dispose()}; +THREE.HemisphereLightHelper.prototype.update=function(){var a=new THREE.Vector3;return function(){this.colors[0].copy(this.light.color).multiplyScalar(this.light.intensity);this.colors[1].copy(this.light.groundColor).multiplyScalar(this.light.intensity);this.lightSphere.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());this.lightSphere.geometry.colorsNeedUpdate=!0}}();THREE.PointLightHelper=function(a,b){this.light=a;this.light.updateMatrixWorld();var c=new THREE.SphereGeometry(b,4,2),d=new THREE.MeshBasicMaterial({wireframe:!0,fog:!1});d.color.copy(this.light.color).multiplyScalar(this.light.intensity);THREE.Mesh.call(this,c,d);this.matrixWorld=this.light.matrixWorld;this.matrixAutoUpdate=!1};THREE.PointLightHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.PointLightHelper.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()}; +THREE.PointLightHelper.prototype.update=function(){this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity)};THREE.SkeletonHelper=function(a){for(var b=a.skeleton,c=new THREE.Geometry,d=0;dr;r++){d[0]=t[g[r]];d[1]=t[g[(r+1)%3]];d.sort(f);var v=d.toString();void 0===e[v]&&(q[2*n]=d[0],q[2*n+1]=d[1],e[v]=!0,n++)}h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d= +h.attributes.position.array;p=0;for(s=n;pr;r++)n=k[q[2*p+r]],g=6*p+3*r,d[g+0]=n.x,d[g+1]=n.y,d[g+2]=n.z}else if(a.geometry instanceof THREE.BufferGeometry&&void 0!==a.geometry.attributes.index){for(var k=a.geometry.attributes.position.array,s=a.geometry.attributes.index.array,l=a.geometry.offsets,n=0,q=new Uint32Array(2*s.length),t=0,w=l.length;tr;r++)d[0]=g+s[p+r],d[1]=g+s[p+(r+1)%3],d.sort(f),v=d.toString(), +void 0===e[v]&&(q[2*n]=d[0],q[2*n+1]=d[1],e[v]=!0,n++);h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d=h.attributes.position.array;p=0;for(s=n;pr;r++)g=6*p+3*r,n=3*q[2*p+r],d[g+0]=k[n],d[g+1]=k[n+1],d[g+2]=k[n+2]}else if(a.geometry instanceof THREE.BufferGeometry)for(k=a.geometry.attributes.position.array,n=k.length/3,q=n/3,h.addAttribute("position",new THREE.Float32Attribute(2*n,3)),d=h.attributes.position.array,p=0,s=q;pr;r++)g=18*p+6*r,q=9*p+3*r, +d[g+0]=k[q],d[g+1]=k[q+1],d[g+2]=k[q+2],n=9*p+(r+1)%3*3,d[g+3]=k[n],d[g+4]=k[n+1],d[g+5]=k[n+2];THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:c}),THREE.LinePieces);this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.WireframeHelper.prototype=Object.create(THREE.Line.prototype);THREE.ImmediateRenderObject=function(){THREE.Object3D.call(this);this.render=function(a){}};THREE.ImmediateRenderObject.prototype=Object.create(THREE.Object3D.prototype);THREE.LensFlare=function(a,b,c,d,e){THREE.Object3D.call(this);this.lensFlares=[];this.positionScreen=new THREE.Vector3;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)};THREE.LensFlare.prototype=Object.create(THREE.Object3D.prototype); +THREE.LensFlare.prototype.add=function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new THREE.Color(16777215));void 0===d&&(d=THREE.NormalBlending);c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:1,opacity:f,color:e,blending:d})}; +THREE.LensFlare.prototype.updateLensFlares=function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;ah.end&&(h.end=f);c||(c=k)}}for(k in d)h=d[k],this.createAnimation(k,h.start,h.end,a);this.firstAnimation=c}; +THREE.MorphBlendMesh.prototype.setAnimationDirectionForward=function(a){if(a=this.animationsMap[a])a.direction=1,a.directionBackwards=!1};THREE.MorphBlendMesh.prototype.setAnimationDirectionBackward=function(a){if(a=this.animationsMap[a])a.direction=-1,a.directionBackwards=!0};THREE.MorphBlendMesh.prototype.setAnimationFPS=function(a,b){var c=this.animationsMap[a];c&&(c.fps=b,c.duration=(c.end-c.start)/c.fps)}; +THREE.MorphBlendMesh.prototype.setAnimationDuration=function(a,b){var c=this.animationsMap[a];c&&(c.duration=b,c.fps=(c.end-c.start)/c.duration)};THREE.MorphBlendMesh.prototype.setAnimationWeight=function(a,b){var c=this.animationsMap[a];c&&(c.weight=b)};THREE.MorphBlendMesh.prototype.setAnimationTime=function(a,b){var c=this.animationsMap[a];c&&(c.time=b)};THREE.MorphBlendMesh.prototype.getAnimationTime=function(a){var b=0;if(a=this.animationsMap[a])b=a.time;return b}; +THREE.MorphBlendMesh.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};THREE.MorphBlendMesh.prototype.playAnimation=function(a){var b=this.animationsMap[a];b?(b.time=0,b.active=!0):console.warn("animation["+a+"] undefined")};THREE.MorphBlendMesh.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1}; +THREE.MorphBlendMesh.prototype.update=function(a){for(var b=0,c=this.animationsList.length;bd.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&(d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.startFrame+THREE.Math.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight; +f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);this.morphTargetInfluences[d.currentFrame]=e*g;this.morphTargetInfluences[d.lastFrame]=(1-e)*g}}};THREE.LensFlarePlugin=function(){function a(a,c){var d=b.createProgram(),e=b.createShader(b.FRAGMENT_SHADER),f=b.createShader(b.VERTEX_SHADER),g="precision "+c+" float;\n";b.shaderSource(e,g+a.fragmentShader);b.shaderSource(f,g+a.vertexShader);b.compileShader(e);b.compileShader(f);b.attachShader(d,e);b.attachShader(d,f);b.linkProgram(d);return d}var b,c,d,e,f,g,h,k,l,n,q,p,s;this.init=function(t){b=t.context;c=t;d=t.getPrecision();e=new Float32Array(16);f=new Uint16Array(6);t=0;e[t++]=-1;e[t++]=-1; +e[t++]=0;e[t++]=0;e[t++]=1;e[t++]=-1;e[t++]=1;e[t++]=0;e[t++]=1;e[t++]=1;e[t++]=1;e[t++]=1;e[t++]=-1;e[t++]=1;e[t++]=0;e[t++]=1;t=0;f[t++]=0;f[t++]=1;f[t++]=2;f[t++]=0;f[t++]=2;f[t++]=3;g=b.createBuffer();h=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,g);b.bufferData(b.ARRAY_BUFFER,e,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.bufferData(b.ELEMENT_ARRAY_BUFFER,f,b.STATIC_DRAW);k=b.createTexture();l=b.createTexture();b.bindTexture(b.TEXTURE_2D,k);b.texImage2D(b.TEXTURE_2D,0,b.RGB,16,16, +0,b.RGB,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);b.bindTexture(b.TEXTURE_2D,l);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,16,16,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE); +b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);0>=b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)?(n=!1,q=a(THREE.ShaderFlares.lensFlare,d)):(n=!0,q=a(THREE.ShaderFlares.lensFlareVertexTexture,d));p={};s={};p.vertex=b.getAttribLocation(q,"position");p.uv=b.getAttribLocation(q,"uv");s.renderType=b.getUniformLocation(q,"renderType");s.map=b.getUniformLocation(q,"map");s.occlusionMap=b.getUniformLocation(q,"occlusionMap");s.opacity= +b.getUniformLocation(q,"opacity");s.color=b.getUniformLocation(q,"color");s.scale=b.getUniformLocation(q,"scale");s.rotation=b.getUniformLocation(q,"rotation");s.screenPosition=b.getUniformLocation(q,"screenPosition")};this.render=function(a,d,e,f){a=a.__webglFlares;var u=a.length;if(u){var y=new THREE.Vector3,L=f/e,x=0.5*e,N=0.5*f,J=16/f,B=new THREE.Vector2(J*L,J),K=new THREE.Vector3(1,1,0),A=new THREE.Vector2(1,1),G=s,J=p;b.useProgram(q);b.enableVertexAttribArray(p.vertex);b.enableVertexAttribArray(p.uv); +b.uniform1i(G.occlusionMap,0);b.uniform1i(G.map,1);b.bindBuffer(b.ARRAY_BUFFER,g);b.vertexAttribPointer(J.vertex,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(J.uv,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.disable(b.CULL_FACE);b.depthMask(!1);var D,C,F,z,H;for(D=0;DL;L++)B[L]=new THREE.Vector3,u[L]=new THREE.Vector3;B=x.shadowCascadeNearZ[y];x=x.shadowCascadeFarZ[y];u[0].set(-1,-1,B);u[1].set(1,-1,B);u[2].set(-1, +1,B);u[3].set(1,1,B);u[4].set(-1,-1,x);u[5].set(1,-1,x);u[6].set(-1,1,x);u[7].set(1,1,x);J.originalCamera=p;u=new THREE.Gyroscope;u.position.copy(r.shadowCascadeOffset);u.add(J);u.add(J.target);p.add(u);r.shadowCascadeArray[w]=J;console.log("Created virtualLight",J)}y=r;B=w;x=y.shadowCascadeArray[B];x.position.copy(y.position);x.target.position.copy(y.target.position);x.lookAt(x.target);x.shadowCameraVisible=y.shadowCameraVisible;x.shadowDarkness=y.shadowDarkness;x.shadowBias=y.shadowCascadeBias[B]; +u=y.shadowCascadeNearZ[B];y=y.shadowCascadeFarZ[B];x=x.pointsFrustum;x[0].z=u;x[1].z=u;x[2].z=u;x[3].z=u;x[4].z=y;x[5].z=y;x[6].z=y;x[7].z=y;N[v]=J;v++}else N[v]=r,v++;s=0;for(t=N.length;sy;y++)B=x[y],B.copy(u[y]),THREE.ShadowMapPlugin.__projector.unprojectVector(B,w),B.applyMatrix4(v.matrixWorldInverse),B.xl.x&&(l.x=B.x),B.yl.y&&(l.y=B.y),B.zl.z&&(l.z=B.z);v.left=k.x;v.right=l.x;v.top=l.y;v.bottom=k.y;v.updateProjectionMatrix()}v=r.shadowMap;u=r.shadowMatrix;w=r.shadowCamera;w.position.setFromMatrixPosition(r.matrixWorld);n.setFromMatrixPosition(r.target.matrixWorld);w.lookAt(n);w.updateMatrixWorld();w.matrixWorldInverse.getInverse(w.matrixWorld);r.cameraHelper&&(r.cameraHelper.visible=r.shadowCameraVisible);r.shadowCameraVisible&&r.cameraHelper.update();u.set(0.5,0,0,0.5,0,0.5,0,0.5, +0,0,0.5,0.5,0,0,0,1);u.multiply(w.projectionMatrix);u.multiply(w.matrixWorldInverse);h.multiplyMatrices(w.projectionMatrix,w.matrixWorldInverse);g.setFromMatrix(h);b.setRenderTarget(v);b.clear();x=q.__webglObjects;r=0;for(v=x.length;r 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n")); +u.compileShader(G);u.compileShader(D);u.attachShader(w,G);u.attachShader(w,D);u.linkProgram(w);K=w;r=u.getAttribLocation(K,"position");v=u.getAttribLocation(K,"uv");a=u.getUniformLocation(K,"uvOffset");b=u.getUniformLocation(K,"uvScale");c=u.getUniformLocation(K,"rotation");d=u.getUniformLocation(K,"scale");e=u.getUniformLocation(K,"color");f=u.getUniformLocation(K,"map");g=u.getUniformLocation(K,"opacity");h=u.getUniformLocation(K,"modelViewMatrix");k=u.getUniformLocation(K,"projectionMatrix");l= +u.getUniformLocation(K,"fogType");n=u.getUniformLocation(K,"fogDensity");q=u.getUniformLocation(K,"fogNear");p=u.getUniformLocation(K,"fogFar");s=u.getUniformLocation(K,"fogColor");t=u.getUniformLocation(K,"alphaTest");w=document.createElement("canvas");w.width=8;w.height=8;G=w.getContext("2d");G.fillStyle="#ffffff";G.fillRect(0,0,w.width,w.height);L=new THREE.Texture(w);L.needsUpdate=!0};this.render=function(A,x,D,C){D=A.__webglSprites;if(C=D.length){u.useProgram(K);u.enableVertexAttribArray(r); +u.enableVertexAttribArray(v);u.disable(u.CULL_FACE);u.enable(u.BLEND);u.bindBuffer(u.ARRAY_BUFFER,J);u.vertexAttribPointer(r,2,u.FLOAT,!1,16,0);u.vertexAttribPointer(v,2,u.FLOAT,!1,16,8);u.bindBuffer(u.ELEMENT_ARRAY_BUFFER,B);u.uniformMatrix4fv(k,!1,x.projectionMatrix.elements);u.activeTexture(u.TEXTURE0);u.uniform1i(f,0);var F=0,z=0,H=A.fog;H?(u.uniform3f(s,H.color.r,H.color.g,H.color.b),H instanceof THREE.Fog?(u.uniform1f(q,H.near),u.uniform1f(p,H.far),u.uniform1i(l,1),z=F=1):H instanceof THREE.FogExp2&& +(u.uniform1f(n,H.density),u.uniform1i(l,2),z=F=2)):(u.uniform1i(l,0),z=F=0);for(var E,N=[],H=0;H - - - - - - - - -
- - - - - - - - diff --git a/experimental/webgl/helloqt.js b/experimental/webgl/helloqt.js deleted file mode 100644 index d0ae216..0000000 --- a/experimental/webgl/helloqt.js +++ /dev/null @@ -1,213 +0,0 @@ -var shadow = false; - -var container = document.getElementById("container"); -var camera = null; -var scene = new THREE.Scene(); -var renderer = new THREE.WebGLRenderer({ antialias: false /*true*/ }); -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 () { - 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/experimental/webgl/qtlogo.js b/experimental/webgl/qtlogo.js deleted file mode 100644 index e2eba96..0000000 --- a/experimental/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/experimental/webgl/three.min.js b/experimental/webgl/three.min.js deleted file mode 100644 index 95b938c..0000000 --- a/experimental/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>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);1c?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+(cf&&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.xb.x&&(this.x=b.x);this.yb.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.xb.x&&(this.x=b.x);this.yb.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.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);this.zb.z&&(this.z=b.z);this.wb.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(0this.max.x&&(this.max.x=b.x),b.ythis.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.xthis.max.x||a.ythis.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.xthis.max.x||a.max.ythis.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.xthis.max.x&&(this.max.x=a.x);a.ythis.max.y&&(this.max.y=a.y);a.zthis.max.z&&(this.max.z=a.z);return this},setFromPoints:function(a){if(0this.max.x||a.ythis.max.y||a.zthis.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.xthis.max.x||a.max.ythis.max.y||a.max.zthis.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;ethis.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=0a.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(fg||e>d)return null;if(e>c||c!==c)c=e;if(gd?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=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)e;e++){var f=d[e];a.x=0g&&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&&0a&&0f||1e;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 ac?c:a},clampBottom:function(a,b){return 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:0this.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=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;ef.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;Bn.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;rn.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;Bn.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;rv||(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;de&&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.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;fL;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=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;bb.max.x&&(b.max.x=e);fb.max.y&&(b.max.y=f);gb.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;eGa?-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;nr;r++)t=a[3*c+r],-1==p[t]?(q[2*r]=t,q[2*r+1]=-1,n++):p[t]k.index+b)for(k={start:f,count:0,index:g},h.push(k),n=0;6>n;n+=2)r=q[n+1],-1n;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;ed?-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;cd;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;cc&&(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;ca.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;dg;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;dg;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;dz.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;uh.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[d].distance)this.objects[d-1].object.visible=!1,this.objects[d].object.visible=!0;else break;for(;dD&&A.clearRect(Z.min.x|0,Z.min.y|0,Z.max.x-Z.min.x|0,Z.max.y-Z.min.y|0),0R.positionScreen.z||1I.positionScreen.z||1da.positionScreen.z||1=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 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&&(0p;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=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&&(1b;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;ad.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;nha;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;Dha;ha++)Ca=V[ha],cb[Ra]=Ca.x,cb[Ra+1]=Ca.y,Ra+=2;0ha;ha++)Da=W[ha],db[Sa]= -Da.x,db[Sa+1]=Da.y,Sa+=2;0f;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;qa?b(c,e-1):l[e]>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;qq-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;se)return null;var f=[],g=[],h=[],k,l,n;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;pk)g=d+1;else if(0b&&(b=0);1=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;cb?b=h.x:h.xc?c=h.y:h.yd?d=h.z:h.zMath.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;cl&&(g=b[f],k=-k,h=b[e],l=-l),!(a.yh.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;bB||B>J)return[];k=l*n-k*q;if(0>k||k>J)return[]}else{if(0d?[]: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-10f&&(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;cF){console.log("Infinite Loop! Holes left:"+ -l.length+", Probably Hole outside Shape!");break}for(q=A;qh;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+=0a.hierarchy[c].keys[d].time&& -(a.hierarchy[c].keys[d].time=0),void 0!==a.hierarchy[c].keys[d].rot&&!(a.hierarchy[c].keys[d].rot instanceof THREE.Quaternion)){var h=a.hierarchy[c].keys[d].rot;a.hierarchy[c].keys[d].rot=(new THREE.Quaternion).fromArray(h)}if(a.hierarchy[c].keys.length&&void 0!==a.hierarchy[c].keys[0].morphTargets){h={};for(d=0;dd;d++){for(var e=this.keyTypes[d],f=this.data.hierarchy[a].keys[0],g=this.getNextKeyWith(e,a,1);g.timef.index;)f=g,g=this.getNextKeyWith(e,a,g.index+1);c.prevKey[e]=f;c.nextKey[e]=g}}}; -THREE.Animation.prototype.update=function(){var a=[],b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Quaternion,e=function(a,b){var c=[],d=[],e,q,p,s,t,r;e=(a.length-1)*b;q=Math.floor(e);e-=q;c[0]=0===q?q:q-1;c[1]=q;c[2]=q>a.length-2?q:q+1;c[3]=q>a.length-3?q:q+2;q=a[c[0]];s=a[c[1]];t=a[c[2]];r=a[c[3]];c=e*e;p=e*c;d[0]=f(q[0],s[0],t[0],r[0],e,c,p);d[1]=f(q[1],s[1],t[1],r[1],e,c,p);d[2]=f(q[2],s[2],t[2],r[2],e,c,p);return d},f=function(a,b,c,d,e,f,p){a=0.5*(c-a);d=0.5*(d-b);return(2*(b-c)+a+d)* -p+(-3*(b-c)-2*a-d)*f+a*e+b};return function(f){if(!1!==this.isPlaying&&(this.currentTime+=f*this.timeScale,0!==this.weight)){var h;f=this.data.length;if(!0===this.loop&&this.currentTime>f)this.currentTime%=f,this.reset();else if(!1===this.loop&&this.currentTime>f){this.stop();return}f=0;for(var k=this.hierarchy.length;fq;q++){h=this.keyTypes[q];var p=n.prevKey[h],s=n.nextKey[h];if(s.time<=this.currentTime){p=this.data.hierarchy[f].keys[0]; -for(s=this.getNextKeyWith(h,f,1);s.timep.index;)p=s,s=this.getNextKeyWith(h,f,s.index+1);n.prevKey[h]=p;n.nextKey[h]=s}l.matrixAutoUpdate=!0;l.matrixWorldNeedsUpdate=!0;var t=(this.currentTime-p.time)/(s.time-p.time),r=p[h],v=s[h];0>t&&(t=0);1a&&(this.currentTime%=a);this.currentTime=Math.min(this.currentTime,a);a=0;for(var b=this.hierarchy.length;af.index;)f=g,g=e[f.index+1];d.prevKey= -f;d.nextKey=g}g.time>=this.currentTime?f.interpolate(g,this.currentTime):f.interpolate(g,g.time);this.data.hierarchy[a].node.updateMatrix();c.matrixWorldNeedsUpdate=!0}}}};THREE.KeyFrameAnimation.prototype.getNextKeyWith=function(a,b,c){b=this.data.hierarchy[b].keys;for(c%=b.length;cthis.duration&&(this.currentTime%=this.duration);this.currentTime=Math.min(this.currentTime,this.duration);c=this.duration/this.frames;var d=Math.floor(this.currentTime/c);d!=b&&(this.mesh.morphTargetInfluences[a]=0,this.mesh.morphTargetInfluences[b]=1,this.mesh.morphTargetInfluences[d]= -0,a=b,b=d);this.mesh.morphTargetInfluences[d]=this.currentTime%c/c;this.mesh.morphTargetInfluences[a]=1-this.mesh.morphTargetInfluences[d]}}}()};THREE.CubeCamera=function(a,b,c){THREE.Object3D.call(this);var d=new THREE.PerspectiveCamera(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new THREE.Vector3(1,0,0));this.add(d);var e=new THREE.PerspectiveCamera(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new THREE.Vector3(-1,0,0));this.add(e);var f=new THREE.PerspectiveCamera(90,1,a,b);f.up.set(0,0,1);f.lookAt(new THREE.Vector3(0,1,0));this.add(f);var g=new THREE.PerspectiveCamera(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new THREE.Vector3(0,-1,0));this.add(g);var h=new THREE.PerspectiveCamera(90, -1,a,b);h.up.set(0,-1,0);h.lookAt(new THREE.Vector3(0,0,1));this.add(h);var k=new THREE.PerspectiveCamera(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new THREE.Vector3(0,0,-1));this.add(k);this.renderTarget=new THREE.WebGLRenderTargetCube(c,c,{format:THREE.RGBFormat,magFilter:THREE.LinearFilter,minFilter:THREE.LinearFilter});this.updateCubeMap=function(a,b){var c=this.renderTarget,p=c.generateMipmaps;c.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace= -2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.generateMipmaps=p;c.activeCubeFace=5;a.render(b,k,c)}};THREE.CubeCamera.prototype=Object.create(THREE.Object3D.prototype);THREE.CombinedCamera=function(a,b,c,d,e,f,g){THREE.Camera.call(this);this.fov=c;this.left=-a/2;this.right=a/2;this.top=b/2;this.bottom=-b/2;this.cameraO=new THREE.OrthographicCamera(a/-2,a/2,b/2,b/-2,f,g);this.cameraP=new THREE.PerspectiveCamera(c,a/b,d,e);this.zoom=1;this.toPerspective()};THREE.CombinedCamera.prototype=Object.create(THREE.Camera.prototype); -THREE.CombinedCamera.prototype.toPerspective=function(){this.near=this.cameraP.near;this.far=this.cameraP.far;this.cameraP.fov=this.fov/this.zoom;this.cameraP.updateProjectionMatrix();this.projectionMatrix=this.cameraP.projectionMatrix;this.inPerspectiveMode=!0;this.inOrthographicMode=!1}; -THREE.CombinedCamera.prototype.toOrthographic=function(){var a=this.cameraP.aspect,b=(this.cameraP.near+this.cameraP.far)/2,b=Math.tan(this.fov/2)*b,a=2*b*a/2,b=b/this.zoom,a=a/this.zoom;this.cameraO.left=-a;this.cameraO.right=a;this.cameraO.top=b;this.cameraO.bottom=-b;this.cameraO.updateProjectionMatrix();this.near=this.cameraO.near;this.far=this.cameraO.far;this.projectionMatrix=this.cameraO.projectionMatrix;this.inPerspectiveMode=!1;this.inOrthographicMode=!0}; -THREE.CombinedCamera.prototype.setSize=function(a,b){this.cameraP.aspect=a/b;this.left=-a/2;this.right=a/2;this.top=b/2;this.bottom=-b/2};THREE.CombinedCamera.prototype.setFov=function(a){this.fov=a;this.inPerspectiveMode?this.toPerspective():this.toOrthographic()};THREE.CombinedCamera.prototype.updateProjectionMatrix=function(){this.inPerspectiveMode?this.toPerspective():(this.toPerspective(),this.toOrthographic())}; -THREE.CombinedCamera.prototype.setLens=function(a,b){void 0===b&&(b=24);var c=2*THREE.Math.radToDeg(Math.atan(b/(2*a)));this.setFov(c);return c};THREE.CombinedCamera.prototype.setZoom=function(a){this.zoom=a;this.inPerspectiveMode?this.toPerspective():this.toOrthographic()};THREE.CombinedCamera.prototype.toFrontView=function(){this.rotation.x=0;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1}; -THREE.CombinedCamera.prototype.toBackView=function(){this.rotation.x=0;this.rotation.y=Math.PI;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toLeftView=function(){this.rotation.x=0;this.rotation.y=-Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toRightView=function(){this.rotation.x=0;this.rotation.y=Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1}; -THREE.CombinedCamera.prototype.toTopView=function(){this.rotation.x=-Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toBottomView=function(){this.rotation.x=Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.BoxGeometry=function(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,r){var v,w=h.widthSegments,u=h.heightSegments,y=e/2,L=f/2,x=h.vertices.length;if("x"===a&&"y"===b||"y"===a&&"x"===b)v="z";else if("x"===a&&"z"===b||"z"===a&&"x"===b)v="y",u=h.depthSegments;else if("z"===a&&"y"===b||"y"===a&&"z"===b)v="x",w=h.depthSegments;var N=w+1,J=u+1,B=e/w,K=f/u,A=new THREE.Vector3;A[v]=0=e)return new THREE.Vector2(c,a);e=Math.sqrt(e/2)}else a=!1,1E-10e?-1E-10>g&& -(a=!0):d(f)==d(h)&&(a=!0),a?(c=-f,a=e,e=Math.sqrt(k)):(c=e,a=f,e=Math.sqrt(k/2));return new THREE.Vector2(c/e,a/e)}function e(c,d){var e,f;for(I=c.length;0<=--I;){e=I;f=I-1;0>f&&(f=c.length-1);for(var g=0,h=s+2*n,g=0;gMath.abs(c-k)?[new THREE.Vector2(b,1-e),new THREE.Vector2(d,1-f),new THREE.Vector2(l,1-g),new THREE.Vector2(q,1-a)]:[new THREE.Vector2(c,1-e),new THREE.Vector2(k,1-f),new THREE.Vector2(n,1-g),new THREE.Vector2(p,1-a)]}};THREE.ExtrudeGeometry.__v1=new THREE.Vector2;THREE.ExtrudeGeometry.__v2=new THREE.Vector2;THREE.ExtrudeGeometry.__v3=new THREE.Vector2;THREE.ExtrudeGeometry.__v4=new THREE.Vector2; -THREE.ExtrudeGeometry.__v5=new THREE.Vector2;THREE.ExtrudeGeometry.__v6=new THREE.Vector2;THREE.ShapeGeometry=function(a,b){THREE.Geometry.call(this);!1===a instanceof Array&&(a=[a]);this.shapebb=a[a.length-1].getBoundingBox();this.addShapeList(a,b);this.computeFaceNormals()};THREE.ShapeGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ShapeGeometry.prototype.addShapeList=function(a,b){for(var c=0,d=a.length;cc&&1===a.x&&(a=new THREE.Vector2(a.x-1,a.y));0===b.x&&0===b.z&&(a=new THREE.Vector2(c/2/ -Math.PI+0.5,a.y));return a.clone()}THREE.Geometry.call(this);c=c||1;d=d||0;for(var k=this,l=0,n=a.length;ls&&(0.2>d&&(b[0].x+=1),0.2>a&&(b[1].x+=1),0.2>q&&(b[2].x+=1));l=0;for(n=this.vertices.length;lc.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}(); -THREE.ArrowHelper.prototype.setLength=function(a,b,c){void 0===b&&(b=0.2*a);void 0===c&&(c=0.2*b);this.line.scale.set(1,a,1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};THREE.ArrowHelper.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};THREE.BoxHelper=function(a){var b=[new THREE.Vector3(1,1,1),new THREE.Vector3(-1,1,1),new THREE.Vector3(-1,-1,1),new THREE.Vector3(1,-1,1),new THREE.Vector3(1,1,-1),new THREE.Vector3(-1,1,-1),new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,-1,-1)];this.vertices=b;var c=new THREE.Geometry;c.vertices.push(b[0],b[1],b[1],b[2],b[2],b[3],b[3],b[0],b[4],b[5],b[5],b[6],b[6],b[7],b[7],b[4],b[0],b[4],b[1],b[5],b[2],b[6],b[3],b[7]);THREE.Line.call(this,c,new THREE.LineBasicMaterial({color:16776960}),THREE.LinePieces); -void 0!==a&&this.update(a)};THREE.BoxHelper.prototype=Object.create(THREE.Line.prototype); -THREE.BoxHelper.prototype.update=function(a){var b=a.geometry;null===b.boundingBox&&b.computeBoundingBox();var c=b.boundingBox.min,b=b.boundingBox.max,d=this.vertices;d[0].set(b.x,b.y,b.z);d[1].set(c.x,b.y,b.z);d[2].set(c.x,c.y,b.z);d[3].set(b.x,c.y,b.z);d[4].set(b.x,b.y,c.z);d[5].set(c.x,b.y,c.z);d[6].set(c.x,c.y,c.z);d[7].set(b.x,c.y,c.z);this.geometry.computeBoundingSphere();this.geometry.verticesNeedUpdate=!0;this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.BoundingBoxHelper=function(a,b){var c=void 0!==b?b:8947848;this.object=a;this.box=new THREE.Box3;THREE.Mesh.call(this,new THREE.BoxGeometry(1,1,1),new THREE.MeshBasicMaterial({color:c,wireframe:!0}))};THREE.BoundingBoxHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.BoundingBoxHelper.prototype.update=function(){this.box.setFromObject(this.object);this.box.size(this.scale);this.box.center(this.position)};THREE.CameraHelper=function(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){d.vertices.push(new THREE.Vector3);d.colors.push(new THREE.Color(b));void 0===f[a]&&(f[a]=[]);f[a].push(d.vertices.length-1)}var d=new THREE.Geometry,e=new THREE.LineBasicMaterial({color:16777215,vertexColors:THREE.FaceColors}),f={};b("n1","n2",16755200);b("n2","n4",16755200);b("n4","n3",16755200);b("n3","n1",16755200);b("f1","f2",16755200);b("f2","f4",16755200);b("f4","f3",16755200);b("f3","f1",16755200);b("n1","f1",16755200); -b("n2","f2",16755200);b("n3","f3",16755200);b("n4","f4",16755200);b("p","n1",16711680);b("p","n2",16711680);b("p","n3",16711680);b("p","n4",16711680);b("u1","u2",43775);b("u2","u3",43775);b("u3","u1",43775);b("c","t",16777215);b("p","c",3355443);b("cn1","cn2",3355443);b("cn3","cn4",3355443);b("cf1","cf2",3355443);b("cf3","cf4",3355443);THREE.Line.call(this,d,e,THREE.LinePieces);this.camera=a;this.matrixWorld=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=f;this.update()}; -THREE.CameraHelper.prototype=Object.create(THREE.Line.prototype); -THREE.CameraHelper.prototype.update=function(){var a=new THREE.Vector3,b=new THREE.Camera,c=new THREE.Projector;return function(){function d(d,g,h,k){a.set(g,h,k);c.unprojectVector(a,b);d=e.pointMap[d];if(void 0!==d)for(g=0,h=d.length;gt;t++){d[0]=s[g[t]];d[1]=s[g[(t+1)%3]];d.sort(f);var r=d.toString();void 0===e[r]?(e[r]={vert1:d[0],vert2:d[1],face1:q,face2:void 0},n++):e[r].face2=q}h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d=h.attributes.position.array; -f=0;for(r in e)if(g=e[r],void 0===g.face2||0.9999>k[g.face1].normal.dot(k[g.face2].normal))n=l[g.vert1],d[f++]=n.x,d[f++]=n.y,d[f++]=n.z,n=l[g.vert2],d[f++]=n.x,d[f++]=n.y,d[f++]=n.z;THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:c}),THREE.LinePieces);this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.EdgesHelper.prototype=Object.create(THREE.Line.prototype);THREE.FaceNormalsHelper=function(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=new THREE.Geometry;c=0;for(var e=this.object.geometry.faces.length;cb;b++)a.faces[b].color=this.colors[4>b?0:1];b=new THREE.MeshBasicMaterial({vertexColors:THREE.FaceColors,wireframe:!0});this.lightSphere=new THREE.Mesh(a,b);this.add(this.lightSphere); -this.update()};THREE.HemisphereLightHelper.prototype=Object.create(THREE.Object3D.prototype);THREE.HemisphereLightHelper.prototype.dispose=function(){this.lightSphere.geometry.dispose();this.lightSphere.material.dispose()}; -THREE.HemisphereLightHelper.prototype.update=function(){var a=new THREE.Vector3;return function(){this.colors[0].copy(this.light.color).multiplyScalar(this.light.intensity);this.colors[1].copy(this.light.groundColor).multiplyScalar(this.light.intensity);this.lightSphere.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());this.lightSphere.geometry.colorsNeedUpdate=!0}}();THREE.PointLightHelper=function(a,b){this.light=a;this.light.updateMatrixWorld();var c=new THREE.SphereGeometry(b,4,2),d=new THREE.MeshBasicMaterial({wireframe:!0,fog:!1});d.color.copy(this.light.color).multiplyScalar(this.light.intensity);THREE.Mesh.call(this,c,d);this.matrixWorld=this.light.matrixWorld;this.matrixAutoUpdate=!1};THREE.PointLightHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.PointLightHelper.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()}; -THREE.PointLightHelper.prototype.update=function(){this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity)};THREE.SkeletonHelper=function(a){for(var b=a.skeleton,c=new THREE.Geometry,d=0;dr;r++){d[0]=t[g[r]];d[1]=t[g[(r+1)%3]];d.sort(f);var v=d.toString();void 0===e[v]&&(q[2*n]=d[0],q[2*n+1]=d[1],e[v]=!0,n++)}h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d= -h.attributes.position.array;p=0;for(s=n;pr;r++)n=k[q[2*p+r]],g=6*p+3*r,d[g+0]=n.x,d[g+1]=n.y,d[g+2]=n.z}else if(a.geometry instanceof THREE.BufferGeometry&&void 0!==a.geometry.attributes.index){for(var k=a.geometry.attributes.position.array,s=a.geometry.attributes.index.array,l=a.geometry.offsets,n=0,q=new Uint32Array(2*s.length),t=0,w=l.length;tr;r++)d[0]=g+s[p+r],d[1]=g+s[p+(r+1)%3],d.sort(f),v=d.toString(), -void 0===e[v]&&(q[2*n]=d[0],q[2*n+1]=d[1],e[v]=!0,n++);h.addAttribute("position",new THREE.Float32Attribute(2*n,3));d=h.attributes.position.array;p=0;for(s=n;pr;r++)g=6*p+3*r,n=3*q[2*p+r],d[g+0]=k[n],d[g+1]=k[n+1],d[g+2]=k[n+2]}else if(a.geometry instanceof THREE.BufferGeometry)for(k=a.geometry.attributes.position.array,n=k.length/3,q=n/3,h.addAttribute("position",new THREE.Float32Attribute(2*n,3)),d=h.attributes.position.array,p=0,s=q;pr;r++)g=18*p+6*r,q=9*p+3*r, -d[g+0]=k[q],d[g+1]=k[q+1],d[g+2]=k[q+2],n=9*p+(r+1)%3*3,d[g+3]=k[n],d[g+4]=k[n+1],d[g+5]=k[n+2];THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:c}),THREE.LinePieces);this.matrixAutoUpdate=!1;this.matrixWorld=a.matrixWorld};THREE.WireframeHelper.prototype=Object.create(THREE.Line.prototype);THREE.ImmediateRenderObject=function(){THREE.Object3D.call(this);this.render=function(a){}};THREE.ImmediateRenderObject.prototype=Object.create(THREE.Object3D.prototype);THREE.LensFlare=function(a,b,c,d,e){THREE.Object3D.call(this);this.lensFlares=[];this.positionScreen=new THREE.Vector3;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)};THREE.LensFlare.prototype=Object.create(THREE.Object3D.prototype); -THREE.LensFlare.prototype.add=function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new THREE.Color(16777215));void 0===d&&(d=THREE.NormalBlending);c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:1,opacity:f,color:e,blending:d})}; -THREE.LensFlare.prototype.updateLensFlares=function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;ah.end&&(h.end=f);c||(c=k)}}for(k in d)h=d[k],this.createAnimation(k,h.start,h.end,a);this.firstAnimation=c}; -THREE.MorphBlendMesh.prototype.setAnimationDirectionForward=function(a){if(a=this.animationsMap[a])a.direction=1,a.directionBackwards=!1};THREE.MorphBlendMesh.prototype.setAnimationDirectionBackward=function(a){if(a=this.animationsMap[a])a.direction=-1,a.directionBackwards=!0};THREE.MorphBlendMesh.prototype.setAnimationFPS=function(a,b){var c=this.animationsMap[a];c&&(c.fps=b,c.duration=(c.end-c.start)/c.fps)}; -THREE.MorphBlendMesh.prototype.setAnimationDuration=function(a,b){var c=this.animationsMap[a];c&&(c.duration=b,c.fps=(c.end-c.start)/c.duration)};THREE.MorphBlendMesh.prototype.setAnimationWeight=function(a,b){var c=this.animationsMap[a];c&&(c.weight=b)};THREE.MorphBlendMesh.prototype.setAnimationTime=function(a,b){var c=this.animationsMap[a];c&&(c.time=b)};THREE.MorphBlendMesh.prototype.getAnimationTime=function(a){var b=0;if(a=this.animationsMap[a])b=a.time;return b}; -THREE.MorphBlendMesh.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};THREE.MorphBlendMesh.prototype.playAnimation=function(a){var b=this.animationsMap[a];b?(b.time=0,b.active=!0):console.warn("animation["+a+"] undefined")};THREE.MorphBlendMesh.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1}; -THREE.MorphBlendMesh.prototype.update=function(a){for(var b=0,c=this.animationsList.length;bd.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&(d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.startFrame+THREE.Math.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight; -f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);this.morphTargetInfluences[d.currentFrame]=e*g;this.morphTargetInfluences[d.lastFrame]=(1-e)*g}}};THREE.LensFlarePlugin=function(){function a(a,c){var d=b.createProgram(),e=b.createShader(b.FRAGMENT_SHADER),f=b.createShader(b.VERTEX_SHADER),g="precision "+c+" float;\n";b.shaderSource(e,g+a.fragmentShader);b.shaderSource(f,g+a.vertexShader);b.compileShader(e);b.compileShader(f);b.attachShader(d,e);b.attachShader(d,f);b.linkProgram(d);return d}var b,c,d,e,f,g,h,k,l,n,q,p,s;this.init=function(t){b=t.context;c=t;d=t.getPrecision();e=new Float32Array(16);f=new Uint16Array(6);t=0;e[t++]=-1;e[t++]=-1; -e[t++]=0;e[t++]=0;e[t++]=1;e[t++]=-1;e[t++]=1;e[t++]=0;e[t++]=1;e[t++]=1;e[t++]=1;e[t++]=1;e[t++]=-1;e[t++]=1;e[t++]=0;e[t++]=1;t=0;f[t++]=0;f[t++]=1;f[t++]=2;f[t++]=0;f[t++]=2;f[t++]=3;g=b.createBuffer();h=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,g);b.bufferData(b.ARRAY_BUFFER,e,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.bufferData(b.ELEMENT_ARRAY_BUFFER,f,b.STATIC_DRAW);k=b.createTexture();l=b.createTexture();b.bindTexture(b.TEXTURE_2D,k);b.texImage2D(b.TEXTURE_2D,0,b.RGB,16,16, -0,b.RGB,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);b.bindTexture(b.TEXTURE_2D,l);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,16,16,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE); -b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);0>=b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)?(n=!1,q=a(THREE.ShaderFlares.lensFlare,d)):(n=!0,q=a(THREE.ShaderFlares.lensFlareVertexTexture,d));p={};s={};p.vertex=b.getAttribLocation(q,"position");p.uv=b.getAttribLocation(q,"uv");s.renderType=b.getUniformLocation(q,"renderType");s.map=b.getUniformLocation(q,"map");s.occlusionMap=b.getUniformLocation(q,"occlusionMap");s.opacity= -b.getUniformLocation(q,"opacity");s.color=b.getUniformLocation(q,"color");s.scale=b.getUniformLocation(q,"scale");s.rotation=b.getUniformLocation(q,"rotation");s.screenPosition=b.getUniformLocation(q,"screenPosition")};this.render=function(a,d,e,f){a=a.__webglFlares;var u=a.length;if(u){var y=new THREE.Vector3,L=f/e,x=0.5*e,N=0.5*f,J=16/f,B=new THREE.Vector2(J*L,J),K=new THREE.Vector3(1,1,0),A=new THREE.Vector2(1,1),G=s,J=p;b.useProgram(q);b.enableVertexAttribArray(p.vertex);b.enableVertexAttribArray(p.uv); -b.uniform1i(G.occlusionMap,0);b.uniform1i(G.map,1);b.bindBuffer(b.ARRAY_BUFFER,g);b.vertexAttribPointer(J.vertex,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(J.uv,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.disable(b.CULL_FACE);b.depthMask(!1);var D,C,F,z,H;for(D=0;DL;L++)B[L]=new THREE.Vector3,u[L]=new THREE.Vector3;B=x.shadowCascadeNearZ[y];x=x.shadowCascadeFarZ[y];u[0].set(-1,-1,B);u[1].set(1,-1,B);u[2].set(-1, -1,B);u[3].set(1,1,B);u[4].set(-1,-1,x);u[5].set(1,-1,x);u[6].set(-1,1,x);u[7].set(1,1,x);J.originalCamera=p;u=new THREE.Gyroscope;u.position.copy(r.shadowCascadeOffset);u.add(J);u.add(J.target);p.add(u);r.shadowCascadeArray[w]=J;console.log("Created virtualLight",J)}y=r;B=w;x=y.shadowCascadeArray[B];x.position.copy(y.position);x.target.position.copy(y.target.position);x.lookAt(x.target);x.shadowCameraVisible=y.shadowCameraVisible;x.shadowDarkness=y.shadowDarkness;x.shadowBias=y.shadowCascadeBias[B]; -u=y.shadowCascadeNearZ[B];y=y.shadowCascadeFarZ[B];x=x.pointsFrustum;x[0].z=u;x[1].z=u;x[2].z=u;x[3].z=u;x[4].z=y;x[5].z=y;x[6].z=y;x[7].z=y;N[v]=J;v++}else N[v]=r,v++;s=0;for(t=N.length;sy;y++)B=x[y],B.copy(u[y]),THREE.ShadowMapPlugin.__projector.unprojectVector(B,w),B.applyMatrix4(v.matrixWorldInverse),B.xl.x&&(l.x=B.x),B.yl.y&&(l.y=B.y),B.zl.z&&(l.z=B.z);v.left=k.x;v.right=l.x;v.top=l.y;v.bottom=k.y;v.updateProjectionMatrix()}v=r.shadowMap;u=r.shadowMatrix;w=r.shadowCamera;w.position.setFromMatrixPosition(r.matrixWorld);n.setFromMatrixPosition(r.target.matrixWorld);w.lookAt(n);w.updateMatrixWorld();w.matrixWorldInverse.getInverse(w.matrixWorld);r.cameraHelper&&(r.cameraHelper.visible=r.shadowCameraVisible);r.shadowCameraVisible&&r.cameraHelper.update();u.set(0.5,0,0,0.5,0,0.5,0,0.5, -0,0,0.5,0.5,0,0,0,1);u.multiply(w.projectionMatrix);u.multiply(w.matrixWorldInverse);h.multiplyMatrices(w.projectionMatrix,w.matrixWorldInverse);g.setFromMatrix(h);b.setRenderTarget(v);b.clear();x=q.__webglObjects;r=0;for(v=x.length;r 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n")); -u.compileShader(G);u.compileShader(D);u.attachShader(w,G);u.attachShader(w,D);u.linkProgram(w);K=w;r=u.getAttribLocation(K,"position");v=u.getAttribLocation(K,"uv");a=u.getUniformLocation(K,"uvOffset");b=u.getUniformLocation(K,"uvScale");c=u.getUniformLocation(K,"rotation");d=u.getUniformLocation(K,"scale");e=u.getUniformLocation(K,"color");f=u.getUniformLocation(K,"map");g=u.getUniformLocation(K,"opacity");h=u.getUniformLocation(K,"modelViewMatrix");k=u.getUniformLocation(K,"projectionMatrix");l= -u.getUniformLocation(K,"fogType");n=u.getUniformLocation(K,"fogDensity");q=u.getUniformLocation(K,"fogNear");p=u.getUniformLocation(K,"fogFar");s=u.getUniformLocation(K,"fogColor");t=u.getUniformLocation(K,"alphaTest");w=document.createElement("canvas");w.width=8;w.height=8;G=w.getContext("2d");G.fillStyle="#ffffff";G.fillRect(0,0,w.width,w.height);L=new THREE.Texture(w);L.needsUpdate=!0};this.render=function(A,x,D,C){D=A.__webglSprites;if(C=D.length){u.useProgram(K);u.enableVertexAttribArray(r); -u.enableVertexAttribArray(v);u.disable(u.CULL_FACE);u.enable(u.BLEND);u.bindBuffer(u.ARRAY_BUFFER,J);u.vertexAttribPointer(r,2,u.FLOAT,!1,16,0);u.vertexAttribPointer(v,2,u.FLOAT,!1,16,8);u.bindBuffer(u.ELEMENT_ARRAY_BUFFER,B);u.uniformMatrix4fv(k,!1,x.projectionMatrix.elements);u.activeTexture(u.TEXTURE0);u.uniform1i(f,0);var F=0,z=0,H=A.fog;H?(u.uniform3f(s,H.color.r,H.color.g,H.color.b),H instanceof THREE.Fog?(u.uniform1f(q,H.near),u.uniform1f(p,H.far),u.uniform1i(l,1),z=F=1):H instanceof THREE.FogExp2&& -(u.uniform1f(n,H.density),u.uniform1i(l,2),z=F=2)):(u.uniform1i(l,0),z=F=0);for(var E,N=[],H=0;H Date: Mon, 19 May 2014 18:35:05 +0200 Subject: Display an error message if WebGL is not supported. Change-Id: I244f572737b5a118752970e928ea3fefbefffe52 Reviewed-by: Andras Becsi --- basicsuite/webengine/content/webgl/helloqt.html | 1 + basicsuite/webengine/content/webgl/helloqt.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/basicsuite/webengine/content/webgl/helloqt.html b/basicsuite/webengine/content/webgl/helloqt.html index 56c336c..95f0a44 100644 --- a/basicsuite/webengine/content/webgl/helloqt.html +++ b/basicsuite/webengine/content/webgl/helloqt.html @@ -7,6 +7,7 @@ body { margin: 0px; overflow: hidden; + background-color: black; } canvas { /* -webkit-transform: scale3d(2.0, 2.0, 1.0); diff --git a/basicsuite/webengine/content/webgl/helloqt.js b/basicsuite/webengine/content/webgl/helloqt.js index d0ae216..b514628 100644 --- a/basicsuite/webengine/content/webgl/helloqt.js +++ b/basicsuite/webengine/content/webgl/helloqt.js @@ -2,8 +2,8 @@ var shadow = false; var container = document.getElementById("container"); var camera = null; -var scene = new THREE.Scene(); -var renderer = new THREE.WebGLRenderer({ antialias: false /*true*/ }); +var scene; +var renderer; var cbTexture; var cbScene; var cbCamera; @@ -196,6 +196,16 @@ var onMouseMove = function (e) { }; 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= "
WebGLRenderer could not be created.
"; + return; + } + container.appendChild(renderer.domElement); onResize(); window.addEventListener("resize", onResize); -- cgit v1.2.3 From 77cc452220d0fcba050156065bb1d0204101f4d2 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Tue, 20 May 2014 11:50:27 +0200 Subject: Also deploy webengine demo local content Change-Id: I0f8ed3d604d4f1dd403ca856943bbb49df3bbbea Reviewed-by: Laszlo Agocs --- basicsuite/webengine/webengine.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/basicsuite/webengine/webengine.pro b/basicsuite/webengine/webengine.pro index 2a1bd91..47bb4e4 100644 --- a/basicsuite/webengine/webengine.pro +++ b/basicsuite/webengine/webengine.pro @@ -4,6 +4,7 @@ include(../shared/shared.pri) b2qtdemo_deploy_defaults() content.files = \ + content \ ui \ *.qml content.path = $$DESTPATH -- cgit v1.2.3 From 4ef60e64ef8e4e64cd705a59f1dca494f846db74 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Wed, 30 Apr 2014 11:28:26 +0200 Subject: [launchersettings] Add boundaries for signal strength bar. This is already in the "dev" branch of b2qt-utils, would be good to have it for this release as well. Change-Id: Ieae42d6b0854d6b3d8c47850f06a7ec6da0b4e43 Reviewed-by: Laszlo Agocs --- basicsuite/launchersettings/NetworkList.qml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/basicsuite/launchersettings/NetworkList.qml b/basicsuite/launchersettings/NetworkList.qml index 6a02e2c..1820dac 100644 --- a/basicsuite/launchersettings/NetworkList.qml +++ b/basicsuite/launchersettings/NetworkList.qml @@ -108,7 +108,7 @@ Item { } Rectangle { - width: Math.max(100 + network.signalStrength, 0) / 100 * parent.width; + id: signalStrengthBar height: 20 radius: 10 antialiasing: true @@ -117,6 +117,15 @@ Item { anchors.top: parent.top color: "#BF8888" border.color: "#212126" + + property int strengthBarWidth: Math.max(100 + network.signalStrength, 0) / 100 * parent.width + onStrengthBarWidthChanged: { + if (strengthBarWidth > parent.width * 0.7) + signalStrengthBar.width = parent.width * 0.7 + else + signalStrengthBar.width = strengthBarWidth + } + } MouseArea { -- cgit v1.2.3 From 6168bce3ae5da77cb3cf4cb0003e2d2c9db36b62 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 20 May 2014 14:18:04 +0200 Subject: Disable webengine demo on beaglebone and pi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The performance is not satisfactory on these devices Change-Id: I518dc7d98da71b180acfe0d46f4fa8128575da48 Reviewed-by: Pasi Petäjäjärvi --- basicsuite/webengine/exclude.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/basicsuite/webengine/exclude.txt b/basicsuite/webengine/exclude.txt index 9372368..4efe135 100644 --- a/basicsuite/webengine/exclude.txt +++ b/basicsuite/webengine/exclude.txt @@ -1,2 +1,5 @@ android-emulator linux-emulator +linux-raspberrypi +linux-beaglebone +android-beaglebone -- cgit v1.2.3 From d2741203d3096aba2b58f340a02a8bac12a4a555 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Tue, 20 May 2014 14:17:13 +0200 Subject: Add local CSS tetrahedron example and home page to webengine demo Change-Id: I9f1db26846dc43215fc3f987e41fa177ed1f64cc Reviewed-by: Zeno Albisser --- .../webengine/content/csstetrahedron/index.html | 25 +++++ .../content/csstetrahedron/screenshot.png | Bin 0 -> 7405 bytes .../webengine/content/csstetrahedron/style.css | 109 +++++++++++++++++++++ basicsuite/webengine/content/webgl/screenshot.png | Bin 0 -> 17367 bytes basicsuite/webengine/main.qml | 27 ++++- basicsuite/webengine/ui/PageView.qml | 81 +++++++++++++++ 6 files changed, 241 insertions(+), 1 deletion(-) create mode 100644 basicsuite/webengine/content/csstetrahedron/index.html create mode 100644 basicsuite/webengine/content/csstetrahedron/screenshot.png create mode 100644 basicsuite/webengine/content/csstetrahedron/style.css create mode 100644 basicsuite/webengine/content/webgl/screenshot.png create mode 100644 basicsuite/webengine/ui/PageView.qml diff --git a/basicsuite/webengine/content/csstetrahedron/index.html b/basicsuite/webengine/content/csstetrahedron/index.html new file mode 100644 index 0000000..540890b --- /dev/null +++ b/basicsuite/webengine/content/csstetrahedron/index.html @@ -0,0 +1,25 @@ + + + + + + A tetrahedron built with CSS 3D transforms + + + + +
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/basicsuite/webengine/content/csstetrahedron/screenshot.png b/basicsuite/webengine/content/csstetrahedron/screenshot.png new file mode 100644 index 0000000..1c1283f Binary files /dev/null and b/basicsuite/webengine/content/csstetrahedron/screenshot.png differ diff --git a/basicsuite/webengine/content/csstetrahedron/style.css b/basicsuite/webengine/content/csstetrahedron/style.css new file mode 100644 index 0000000..70d872a --- /dev/null +++ b/basicsuite/webengine/content/csstetrahedron/style.css @@ -0,0 +1,109 @@ +#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/webgl/screenshot.png b/basicsuite/webengine/content/webgl/screenshot.png new file mode 100644 index 0000000..388b45b Binary files /dev/null and b/basicsuite/webengine/content/webgl/screenshot.png differ diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index 299d779..cded371 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -44,6 +44,8 @@ import QtQuick.Controls 1.1 import QtQuick.Layouts 1.1 import QtWebEngine 0.9 +import "ui" + Rectangle { id: root z: 0 @@ -53,7 +55,8 @@ Rectangle { width: 1280 height: 800 - property url defaultUrl: "content/webgl/helloqt.html" + property url defaultUrl: "about:blank" + function load(url) { mainWebView.url = url } WebEngineView { id: mainWebView @@ -67,6 +70,15 @@ Rectangle { } } + PageView { + id: pageView + visible: true + opacity: 1 + Behavior on opacity { + NumberAnimation { duration: 250 } + } + } + MultiPointTouchArea { z: showToolBarButton.z width: parent.width @@ -164,6 +176,19 @@ Rectangle { iconSource: mainWebView.loading ? "ui/icons/process-stop.png" : "ui/icons/view-refresh.png" onClicked: mainWebView.loading ? mainWebView.stop() : mainWebView.reload() } + ToolButton { + id: homeButton + width: 20 + Layout.fillHeight: true + iconSource: pageView.opacity == 1 ? "ui/icons/window.png" : "ui/icons/home.png" + onClicked: { + if (pageView.opacity == 0) { + pageView.opacity = 1 + } else { + pageView.opacity = 0 + } + } + } TextField { id: addressBar focus: true diff --git a/basicsuite/webengine/ui/PageView.qml b/basicsuite/webengine/ui/PageView.qml new file mode 100644 index 0000000..ac95306 --- /dev/null +++ b/basicsuite/webengine/ui/PageView.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: For any questions to Digia, please use the contact form at +** http://qt.digia.com/ +** +** 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.1 +import QtQuick.Layouts 1.1 + +Rectangle { + id: root + color: "darkgrey" + visible: true + anchors { + fill: parent + } + RowLayout { + anchors { + centerIn: root + } + Image { + sourceSize.width: 300 + sourceSize.height: 175 + source: "../content/webgl/screenshot.png" + MouseArea { + anchors.fill: parent + onClicked: { + load(Qt.resolvedUrl("../content/webgl/helloqt.html")) + homeButton.clicked() + } + } + } + Image { + sourceSize.width: 300 + sourceSize.height: 175 + source: "../content/csstetrahedron/screenshot.png" + MouseArea { + anchors.fill: parent + onClicked: { + load(Qt.resolvedUrl("../content/csstetrahedron/index.html")) + homeButton.clicked() + } + } + } + } +} -- cgit v1.2.3 From 0861ecbda6273380c51517fb6337ff5c5dac869a Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Tue, 20 May 2014 15:19:55 +0200 Subject: Hide the webengine demo on the new nexus7 Change-Id: Iacd83deea6a219a400ed10f78aad91da23a2a7b7 Reviewed-by: Eirik Aavitsland Reviewed-by: Laszlo Agocs --- basicsuite/webengine/exclude.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/basicsuite/webengine/exclude.txt b/basicsuite/webengine/exclude.txt index 4efe135..4ae58fb 100644 --- a/basicsuite/webengine/exclude.txt +++ b/basicsuite/webengine/exclude.txt @@ -3,3 +3,4 @@ linux-emulator linux-raspberrypi linux-beaglebone android-beaglebone +android-nexus7v2 -- cgit v1.2.3 From bba3912611845da1035bf0799b4283259ffba5cb Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Tue, 20 May 2014 17:59:40 +0200 Subject: webengine demo: disable the pageview when it's hidden This prevents the MouseAreas to still be active when a page is loaded. Change-Id: Ib233debed702718f14e064e71442fcc78bc934be Reviewed-by: Eirik Aavitsland --- basicsuite/webengine/main.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index cded371..6b7a989 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -183,8 +183,10 @@ Rectangle { iconSource: pageView.opacity == 1 ? "ui/icons/window.png" : "ui/icons/home.png" onClicked: { if (pageView.opacity == 0) { + pageView.enabled = true pageView.opacity = 1 } else { + pageView.enabled = false pageView.opacity = 0 } } -- cgit v1.2.3 From 54ead8c42780e3cf848fbd6ce21653f6c6cff628 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Wed, 21 May 2014 12:30:57 +0200 Subject: Fix webengine demo to hide home screen when adressbar is accepted Task-number: QTEE-574 Change-Id: I43f6163f15028c0a47e1676b6da39155e7df30aa Reviewed-by: Laszlo Agocs --- basicsuite/webengine/main.qml | 11 +++++------ basicsuite/webengine/ui/PageView.qml | 12 ++++++++++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index 6b7a989..2295ea4 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -180,14 +180,12 @@ Rectangle { id: homeButton width: 20 Layout.fillHeight: true - iconSource: pageView.opacity == 1 ? "ui/icons/window.png" : "ui/icons/home.png" + iconSource: pageView.enabled ? "ui/icons/window.png" : "ui/icons/home.png" onClicked: { - if (pageView.opacity == 0) { - pageView.enabled = true - pageView.opacity = 1 + if (pageView.enabled) { + pageView.hide() } else { - pageView.enabled = false - pageView.opacity = 0 + pageView.show() } } } @@ -213,6 +211,7 @@ Rectangle { Layout.fillWidth: true text: mainWebView.url onAccepted: { + pageView.hide() mainWebView.url = engine.fromUserInput(text) } } diff --git a/basicsuite/webengine/ui/PageView.qml b/basicsuite/webengine/ui/PageView.qml index ac95306..49ed103 100644 --- a/basicsuite/webengine/ui/PageView.qml +++ b/basicsuite/webengine/ui/PageView.qml @@ -46,6 +46,14 @@ Rectangle { id: root color: "darkgrey" visible: true + function show() { + enabled = true + opacity = 1 + } + function hide() { + enabled = false + opacity = 0 + } anchors { fill: parent } @@ -61,7 +69,7 @@ Rectangle { anchors.fill: parent onClicked: { load(Qt.resolvedUrl("../content/webgl/helloqt.html")) - homeButton.clicked() + hide() } } } @@ -73,7 +81,7 @@ Rectangle { anchors.fill: parent onClicked: { load(Qt.resolvedUrl("../content/csstetrahedron/index.html")) - homeButton.clicked() + hide() } } } -- cgit v1.2.3 From 3b64133f33ccb3e8e6f429b0ade56d836687fd0a Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Wed, 21 May 2014 13:26:53 +0200 Subject: webengine demo: add predefined links to page view Change-Id: Iaca74a100d1ad105fd926af4c9f5b589330c2cb4 Reviewed-by: Eirik Aavitsland --- basicsuite/webengine/ui/PageView.qml | 62 ++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/basicsuite/webengine/ui/PageView.qml b/basicsuite/webengine/ui/PageView.qml index 49ed103..a7ea7a1 100644 --- a/basicsuite/webengine/ui/PageView.qml +++ b/basicsuite/webengine/ui/PageView.qml @@ -44,8 +44,11 @@ import QtQuick.Layouts 1.1 Rectangle { id: root - color: "darkgrey" + color: "#AAAAAA" visible: true + + property real fontPointSize: 12 + function show() { enabled = true opacity = 1 @@ -57,9 +60,64 @@ Rectangle { anchors { fill: parent } + ColumnLayout { + id: links + anchors { + bottom: localContent.top + horizontalCenter: parent.horizontalCenter + bottomMargin: 50 + } + Text { + text: "http://www.google.com" + font.pointSize: fontPointSize + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + Layout.fillWidth: true + Layout.preferredHeight: 60 + MouseArea { + anchors.fill: parent + onClicked: { + load(Qt.resolvedUrl(parent.text)) + hide() + } + } + } + Text { + text: "http://qt.digia.com" + font.pointSize: fontPointSize + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + Layout.fillWidth: true + Layout.preferredHeight: 60 + MouseArea { + anchors.fill: parent + onClicked: { + load(Qt.resolvedUrl(parent.text)) + hide() + } + } + } + Text { + text: "http://qt-project.org/doc/qt-5" + font.pointSize: fontPointSize + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + Layout.fillWidth: true + Layout.preferredHeight: 60 + MouseArea { + anchors.fill: parent + onClicked: { + load(Qt.resolvedUrl(parent.text)) + hide() + } + } + } + } RowLayout { + id: localContent anchors { - centerIn: root + centerIn: parent + margins: 50 } Image { sourceSize.width: 300 -- cgit v1.2.3 From 536f2ed4438a1e04aeed372d08c46811603f5018 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Wed, 21 May 2014 14:10:05 +0200 Subject: webengine demo: rearrange layout to make all links visible on iMX6 Change-Id: Id7c317a2b678940f6bb0914e1d0b61610be5f43a Reviewed-by: Laszlo Agocs --- basicsuite/webengine/ui/PageView.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/basicsuite/webengine/ui/PageView.qml b/basicsuite/webengine/ui/PageView.qml index a7ea7a1..778fcd7 100644 --- a/basicsuite/webengine/ui/PageView.qml +++ b/basicsuite/webengine/ui/PageView.qml @@ -47,7 +47,7 @@ Rectangle { color: "#AAAAAA" visible: true - property real fontPointSize: 12 + property real fontPointSize: 13 function show() { enabled = true @@ -63,9 +63,10 @@ Rectangle { ColumnLayout { id: links anchors { - bottom: localContent.top + bottom: parent.bottom + top: parent.top horizontalCenter: parent.horizontalCenter - bottomMargin: 50 + margins: 50 } Text { text: "http://www.google.com" @@ -112,11 +113,9 @@ Rectangle { } } } - } RowLayout { id: localContent anchors { - centerIn: parent margins: 50 } Image { @@ -143,5 +142,6 @@ Rectangle { } } } - } + } // RowLayout + } // ColumnLayout } -- cgit v1.2.3 From 40a1d5ce549b9cbdc0df883a343289cc21f88a10 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Fri, 23 May 2014 10:19:15 +0200 Subject: Doc: Document Qt WebEngine demo Task-number: QTEE-570 Change-Id: Ib2896470f31ff1dbd2c7860c8f8c96badd854c8b Reviewed-by: Samuli Piippo --- doc/b2qt-demos.qdoc | 12 ++++++++++++ doc/images/b2qt-demo-webengine.jpg | Bin 0 -> 18081 bytes 2 files changed, 12 insertions(+) create mode 100644 doc/images/b2qt-demo-webengine.jpg diff --git a/doc/b2qt-demos.qdoc b/doc/b2qt-demos.qdoc index d7498fa..3bfb6d6 100644 --- a/doc/b2qt-demos.qdoc +++ b/doc/b2qt-demos.qdoc @@ -243,3 +243,15 @@ \ingroup b2qt-demos \brief Displays information and settings available for the Boot to Qt launcher. */ + +/*! + \example webengine + \title Qt WebEngine Browser Demo + \ingroup b2qt-demos + \brief This example demonstrates the use of the QtWebEngine WebView with Qt Quick. + + \image b2qt-demo-webengine.jpg + + The example can be used to browse the internet (working network connection + required) or run the off-line WebGL demo. +*/ diff --git a/doc/images/b2qt-demo-webengine.jpg b/doc/images/b2qt-demo-webengine.jpg new file mode 100644 index 0000000..963258a Binary files /dev/null and b/doc/images/b2qt-demo-webengine.jpg differ -- cgit v1.2.3 From 1ce9c5aa3d911963b05daf1194f2ad7daab8e491 Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Tue, 10 Jun 2014 13:46:52 +0200 Subject: sensors: Display only 2 decimals Currently on Nexus2013 there are so many decimals printed that the label for the value is out of the screen. Change-Id: Ic6bb1a265a978cfbab0f42d6237b22e42b460818 Reviewed-by: Gatis Paeglis --- basicsuite/sensors/Light.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/sensors/Light.qml b/basicsuite/sensors/Light.qml index f997efd..0cff8e6 100644 --- a/basicsuite/sensors/Light.qml +++ b/basicsuite/sensors/Light.qml @@ -83,7 +83,7 @@ Item { LightSensor { active: true onReadingChanged: { - illuminanceLevel.text = "Illuminance: " + reading.illuminance + illuminanceLevel.text = "Illuminance: " + reading.illuminance.toFixed(2); } } } -- cgit v1.2.3 From 0d56278af6eace6747bd7c91215f6e5daef8b84e Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Wed, 11 Jun 2014 11:25:47 +0200 Subject: Show sensors example in landscape view Show sensors example in landscape view to match the way all the other examples are presented in the qtlauncher. Also the calculation is more pysically correct. Task-number: QTEE-569 Change-Id: I12e1b27e62dfa082d9d768598891a5ce91109436 Reviewed-by: Gatis Paeglis --- basicsuite/sensors/Accelbubble.qml | 116 +++++++++++++++---------------------- basicsuite/sensors/Light.qml | 77 ++++++++++++------------ basicsuite/sensors/main.qml | 34 ++++++----- basicsuite/sensors/preview_l.jpg | Bin 19464 -> 16715 bytes 4 files changed, 103 insertions(+), 124 deletions(-) diff --git a/basicsuite/sensors/Accelbubble.qml b/basicsuite/sensors/Accelbubble.qml index c5aeefc..f70aa32 100644 --- a/basicsuite/sensors/Accelbubble.qml +++ b/basicsuite/sensors/Accelbubble.qml @@ -41,90 +41,68 @@ import QtQuick 2.0 import QtSensors 5.0 -Item { - function calc() { - if (xAnimation.running || yAnimation.running) - return +Rectangle { + id: area + color: "lightblue" + border.width: 1 + border.color: "darkblue" + property real velocityX: 0 + property real velocityY: 0 - var newX = (bubble.x + calcRoll(accel.reading.x, accel.reading.y, accel.reading.z) * .8) - var newY = (bubble.y - calcPitch(accel.reading.x, accel.reading.y, accel.reading.z) * .8) + function updatePosition() { + velocityX += accel.reading.y + velocityY += accel.reading.x - if (newX < 0) + 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 - if (newY < 0) + velocityX = -velocityX * 0.9 + } + if (newY < 0) { newY = 0 + velocityY = -velocityY * 0.9 + } - var right = field.width - bubble.width - var bottom = field.height - bubble.height - - if (newX > right) + if (newX > right) { newX = right - if (newY > bottom) + velocityX = -velocityX * 0.9 + } + if (newY > bottom) { newY = bottom + velocityY = -velocityY * 0.9 + } bubble.x = newX bubble.y = newY - - yBehavior.enabled = true - xBehavior.enabled = true } - Rectangle { - id: field - color: "lightblue" - border.width: 1 - border.color: "darkblue" - width: parent.width - height: parent.height - Accelerometer { - id: accel - active:true - } - - Timer { - interval: 100 - running: true - repeat: true - onTriggered: calc() - } + Accelerometer { + id: accel + active:true + } - Image { - id: bubble - source: "bluebubble.png" - property real centerX: parent.width / 2 - property real centerY: parent.height / 2; - property real bubbleCenter: bubble.width / 2 - x: centerX - bubbleCenter - y: centerY - bubbleCenter - smooth: true + Component.onCompleted: timer.running = true - Behavior on y { - id: yBehavior - enabled: false - SmoothedAnimation { - id: yAnimation - easing.type: Easing.Linear - duration: 40 - onRunningChanged: calc() - } - } - Behavior on x { - id: xBehavior - enabled: false - SmoothedAnimation { - id: xAnimation - easing.type: Easing.Linear - duration: 40 - onRunningChanged: calc() - } - } - } + Timer { + id: timer + interval: 16 + running: false + repeat: true + onTriggered: updatePosition() } - function calcPitch(x,y,z) { - return Math.atan(y / Math.sqrt(x*x + z*z)) * 57.2957795; - } - function calcRoll(x,y,z) { - return Math.atan(x / Math.sqrt(y*y + z*z)) * 57.2957795; + 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 index 0cff8e6..24f3bd9 100644 --- a/basicsuite/sensors/Light.qml +++ b/basicsuite/sensors/Light.qml @@ -41,50 +41,47 @@ import QtQuick 2.0 import QtSensors 5.0 -Item { - rotation: 180 - Rectangle { - id: bg - width: parent.width - height: parent.height - Text { - id: illuminanceLevel - anchors.horizontalCenter: parent.horizontalCenter - font.pointSize: 26 - anchors.top: parent.top - } - Image { - id: avatar - anchors.top: illuminanceLevel.bottom - anchors.topMargin: 30 - anchors.centerIn: parent - } +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 = "midnightblue" - } 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 = "yellow" - } else { - avatar.text = "Unknown light level" - } + 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); - } + LightSensor { + active: true + onReadingChanged: { + illuminanceLevel.text = "Illuminance: " + reading.illuminance.toFixed(2); } } } diff --git a/basicsuite/sensors/main.qml b/basicsuite/sensors/main.qml index b5a1207..d6e0e9d 100644 --- a/basicsuite/sensors/main.qml +++ b/basicsuite/sensors/main.qml @@ -42,30 +42,30 @@ import QtQuick 2.0 import QtSensors 5.0 import QtSensors 5.0 as Sensors -Item { +Rectangle { id: root - width: 800 - height: 1280 + anchors.fill: parent Component { id: sensorExample Rectangle { id: main - width: root.height - height: root.width - rotation: 90 + 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 { - id: lys - width: main.width - height: main.height / 2 + anchors.left: bubble.right + width: parent.width / 2 + height: parent.height } - Accelbubble { - width: main.width - height: main.height / 2 - anchors.top: lys.bottom - } } } @@ -74,10 +74,14 @@ Item { Rectangle { width: root.width height: root.height + color: "black" Text { - font.pixelSize: 22 + 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 } } } diff --git a/basicsuite/sensors/preview_l.jpg b/basicsuite/sensors/preview_l.jpg index 7ce979d..d87d757 100644 Binary files a/basicsuite/sensors/preview_l.jpg and b/basicsuite/sensors/preview_l.jpg differ -- cgit v1.2.3 From 79fcd4fefc090c79c4fa088d4d0ba24b60c1b4e7 Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Mon, 16 Jun 2014 06:04:01 -0700 Subject: Replace PageView with index.html page. This way the start page will also be contained in the browsing history. Change-Id: Icd185a398c5dae622703a6dc9693ed4769d241ae Reviewed-by: Andras Becsi --- basicsuite/webengine/content/index.html | 34 ++++++++ basicsuite/webengine/main.qml | 22 +---- basicsuite/webengine/ui/PageView.qml | 147 -------------------------------- 3 files changed, 38 insertions(+), 165 deletions(-) create mode 100644 basicsuite/webengine/content/index.html delete mode 100644 basicsuite/webengine/ui/PageView.qml diff --git a/basicsuite/webengine/content/index.html b/basicsuite/webengine/content/index.html new file mode 100644 index 0000000..d1cf160 --- /dev/null +++ b/basicsuite/webengine/content/index.html @@ -0,0 +1,34 @@ + + + + + Qt WebEngine Demo + + + + + + diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index 2295ea4..dcf40d7 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -55,13 +55,13 @@ Rectangle { width: 1280 height: 800 - property url defaultUrl: "about:blank" + property url defaultUrl: Qt.resolvedUrl("content/index.html") function load(url) { mainWebView.url = url } WebEngineView { id: mainWebView anchors.fill: parent - url: Qt.resolvedUrl(defaultUrl) + url: defaultUrl onLoadingChanged: { if (!loading) { addressBar.cursorPosition = 0 @@ -70,15 +70,6 @@ Rectangle { } } - PageView { - id: pageView - visible: true - opacity: 1 - Behavior on opacity { - NumberAnimation { duration: 250 } - } - } - MultiPointTouchArea { z: showToolBarButton.z width: parent.width @@ -180,13 +171,9 @@ Rectangle { id: homeButton width: 20 Layout.fillHeight: true - iconSource: pageView.enabled ? "ui/icons/window.png" : "ui/icons/home.png" + iconSource: "ui/icons/home.png" onClicked: { - if (pageView.enabled) { - pageView.hide() - } else { - pageView.show() - } + load(defaultUrl) } } TextField { @@ -211,7 +198,6 @@ Rectangle { Layout.fillWidth: true text: mainWebView.url onAccepted: { - pageView.hide() mainWebView.url = engine.fromUserInput(text) } } diff --git a/basicsuite/webengine/ui/PageView.qml b/basicsuite/webengine/ui/PageView.qml deleted file mode 100644 index 778fcd7..0000000 --- a/basicsuite/webengine/ui/PageView.qml +++ /dev/null @@ -1,147 +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://qt.digia.com/ -** -** 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.1 -import QtQuick.Layouts 1.1 - -Rectangle { - id: root - color: "#AAAAAA" - visible: true - - property real fontPointSize: 13 - - function show() { - enabled = true - opacity = 1 - } - function hide() { - enabled = false - opacity = 0 - } - anchors { - fill: parent - } - ColumnLayout { - id: links - anchors { - bottom: parent.bottom - top: parent.top - horizontalCenter: parent.horizontalCenter - margins: 50 - } - Text { - text: "http://www.google.com" - font.pointSize: fontPointSize - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - Layout.fillWidth: true - Layout.preferredHeight: 60 - MouseArea { - anchors.fill: parent - onClicked: { - load(Qt.resolvedUrl(parent.text)) - hide() - } - } - } - Text { - text: "http://qt.digia.com" - font.pointSize: fontPointSize - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - Layout.fillWidth: true - Layout.preferredHeight: 60 - MouseArea { - anchors.fill: parent - onClicked: { - load(Qt.resolvedUrl(parent.text)) - hide() - } - } - } - Text { - text: "http://qt-project.org/doc/qt-5" - font.pointSize: fontPointSize - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - Layout.fillWidth: true - Layout.preferredHeight: 60 - MouseArea { - anchors.fill: parent - onClicked: { - load(Qt.resolvedUrl(parent.text)) - hide() - } - } - } - RowLayout { - id: localContent - anchors { - margins: 50 - } - Image { - sourceSize.width: 300 - sourceSize.height: 175 - source: "../content/webgl/screenshot.png" - MouseArea { - anchors.fill: parent - onClicked: { - load(Qt.resolvedUrl("../content/webgl/helloqt.html")) - hide() - } - } - } - Image { - sourceSize.width: 300 - sourceSize.height: 175 - source: "../content/csstetrahedron/screenshot.png" - MouseArea { - anchors.fill: parent - onClicked: { - load(Qt.resolvedUrl("../content/csstetrahedron/index.html")) - hide() - } - } - } - } // RowLayout - } // ColumnLayout -} -- cgit v1.2.3 From 52f7c8b3c40e0d73200436530e8d91a1c07d61f1 Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Wed, 18 Jun 2014 16:30:24 +0200 Subject: Add the loading error page to make it clearer when the connectivity is a problem. Change-Id: I828d75baf31d5333a3cb727a0baa8447e56f30d4 Reviewed-by: Andras Becsi --- basicsuite/webengine/ErrorPage.qml | 71 ++++++++++++++++++++++++++++++++++++++ basicsuite/webengine/main.qml | 23 ++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 basicsuite/webengine/ErrorPage.qml diff --git a/basicsuite/webengine/ErrorPage.qml b/basicsuite/webengine/ErrorPage.qml new file mode 100644 index 0000000..daa25d0 --- /dev/null +++ b/basicsuite/webengine/ErrorPage.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtWebEngine 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 + +Rectangle { + id: errorPage + property alias mainMessage: errorMessage.text; + property bool displayingError: false; + anchors.fill: parent + color: "lightgray" + visible: displayingError + + Rectangle { + color: "white" + anchors.centerIn: parent + height: parent.height / 3 + width: Math.max(parent.width / 2, errorMessage.width + 20) + + border { + color: "dimgray" + width: 0.5 + } + + radius: 20 + Text { + id: errorMessage + color: "dimgray" + font.pixelSize: 20 + anchors.centerIn: parent + } + } + +} diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index dcf40d7..30365ce 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -58,15 +58,38 @@ Rectangle { property url defaultUrl: Qt.resolvedUrl("content/index.html") function load(url) { mainWebView.url = url } + ErrorPage { + id: errorPage + anchors.fill: parent + displayingError: false + } + WebEngineView { id: mainWebView anchors.fill: parent url: defaultUrl + visible: !errorPage.displayingError onLoadingChanged: { if (!loading) { addressBar.cursorPosition = 0 toolBar.state = "address" } + var loadError = loadRequest.errorDomain + if (loadError == WebEngineView.NoErrorDomain) { + errorPage.displayingError = false + return; + } + errorPage.displayingError = true + if (loadError == WebEngineView.InternalErrorDomain) + errorPage.mainMessage = "Internal error" + else if (loadError == WebEngineView.ConnectionErrorDomain) + errorPage.mainMessage = "Unable to connect to the Internet" + else if (loadError == WebEngineView.CertificateErrorDomain) + errorPage.mainMessage = "Certificate error" + else if (loadError == WebEngineView.DnsErrorDomain) + errorPage.mainMessage = "Unable to resolve the server's DNS address" + else // HTTP and FTP + errorPage.mainMessage = "Protocol error" } } -- cgit v1.2.3 From 46a7bf5976cc88e66f21bdd571a819aa57bd11de Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Wed, 18 Jun 2014 02:25:21 -0700 Subject: Remove obsolete png files. Change-Id: I60f1fb9ad1184a40f39634fbe7e415394b79af40 Reviewed-by: Andras Becsi --- basicsuite/webengine/ui/icons/busy.png | Bin 547 -> 0 bytes basicsuite/webengine/ui/icons/cube.png | Bin 635 -> 0 bytes basicsuite/webengine/ui/icons/grid.png | Bin 516 -> 0 bytes basicsuite/webengine/ui/icons/list.png | Bin 383 -> 0 bytes basicsuite/webengine/ui/icons/pin-checked.png | Bin 601 -> 0 bytes basicsuite/webengine/ui/icons/pin-unchecked.png | Bin 455 -> 0 bytes basicsuite/webengine/ui/icons/pin.png | Bin 667 -> 0 bytes basicsuite/webengine/ui/icons/plus.png | Bin 724 -> 0 bytes basicsuite/webengine/ui/icons/settings.png | Bin 675 -> 0 bytes basicsuite/webengine/ui/icons/stack.png | Bin 820 -> 0 bytes basicsuite/webengine/ui/icons/wifi-off.png | Bin 2866 -> 0 bytes basicsuite/webengine/ui/icons/wifi-on.png | Bin 2844 -> 0 bytes basicsuite/webengine/ui/icons/wifi.png | Bin 617 -> 0 bytes basicsuite/webengine/ui/icons/window.png | Bin 309 -> 0 bytes 14 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 basicsuite/webengine/ui/icons/busy.png delete mode 100644 basicsuite/webengine/ui/icons/cube.png delete mode 100644 basicsuite/webengine/ui/icons/grid.png delete mode 100644 basicsuite/webengine/ui/icons/list.png delete mode 100644 basicsuite/webengine/ui/icons/pin-checked.png delete mode 100644 basicsuite/webengine/ui/icons/pin-unchecked.png delete mode 100644 basicsuite/webengine/ui/icons/pin.png delete mode 100644 basicsuite/webengine/ui/icons/plus.png delete mode 100644 basicsuite/webengine/ui/icons/settings.png delete mode 100644 basicsuite/webengine/ui/icons/stack.png delete mode 100644 basicsuite/webengine/ui/icons/wifi-off.png delete mode 100644 basicsuite/webengine/ui/icons/wifi-on.png delete mode 100644 basicsuite/webengine/ui/icons/wifi.png delete mode 100644 basicsuite/webengine/ui/icons/window.png diff --git a/basicsuite/webengine/ui/icons/busy.png b/basicsuite/webengine/ui/icons/busy.png deleted file mode 100644 index 3b60d26..0000000 Binary files a/basicsuite/webengine/ui/icons/busy.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/cube.png b/basicsuite/webengine/ui/icons/cube.png deleted file mode 100644 index a5b337b..0000000 Binary files a/basicsuite/webengine/ui/icons/cube.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/grid.png b/basicsuite/webengine/ui/icons/grid.png deleted file mode 100644 index 2959d1d..0000000 Binary files a/basicsuite/webengine/ui/icons/grid.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/list.png b/basicsuite/webengine/ui/icons/list.png deleted file mode 100644 index 6cbc8b3..0000000 Binary files a/basicsuite/webengine/ui/icons/list.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/pin-checked.png b/basicsuite/webengine/ui/icons/pin-checked.png deleted file mode 100644 index aa50f2b..0000000 Binary files a/basicsuite/webengine/ui/icons/pin-checked.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/pin-unchecked.png b/basicsuite/webengine/ui/icons/pin-unchecked.png deleted file mode 100644 index c11411b..0000000 Binary files a/basicsuite/webengine/ui/icons/pin-unchecked.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/pin.png b/basicsuite/webengine/ui/icons/pin.png deleted file mode 100644 index 4439f04..0000000 Binary files a/basicsuite/webengine/ui/icons/pin.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/plus.png b/basicsuite/webengine/ui/icons/plus.png deleted file mode 100644 index 33b03d2..0000000 Binary files a/basicsuite/webengine/ui/icons/plus.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/settings.png b/basicsuite/webengine/ui/icons/settings.png deleted file mode 100644 index 347a0e5..0000000 Binary files a/basicsuite/webengine/ui/icons/settings.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/stack.png b/basicsuite/webengine/ui/icons/stack.png deleted file mode 100644 index d631adc..0000000 Binary files a/basicsuite/webengine/ui/icons/stack.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/wifi-off.png b/basicsuite/webengine/ui/icons/wifi-off.png deleted file mode 100644 index 4c0490d..0000000 Binary files a/basicsuite/webengine/ui/icons/wifi-off.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/wifi-on.png b/basicsuite/webengine/ui/icons/wifi-on.png deleted file mode 100644 index 8bdc553..0000000 Binary files a/basicsuite/webengine/ui/icons/wifi-on.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/wifi.png b/basicsuite/webengine/ui/icons/wifi.png deleted file mode 100644 index 8a0d9e0..0000000 Binary files a/basicsuite/webengine/ui/icons/wifi.png and /dev/null differ diff --git a/basicsuite/webengine/ui/icons/window.png b/basicsuite/webengine/ui/icons/window.png deleted file mode 100644 index a06602b..0000000 Binary files a/basicsuite/webengine/ui/icons/window.png and /dev/null differ -- cgit v1.2.3 From e6a47635dc438ba896a180423bc714ccd59f4f8f Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Wed, 18 Jun 2014 03:25:27 -0700 Subject: Update icons with newly created ones. Change-Id: Icad6f597f969a01d3ddb8c586993c0de808e2f0d Reviewed-by: Andras Becsi --- basicsuite/webengine/ui/icons/down.png | Bin 883 -> 6275 bytes basicsuite/webengine/ui/icons/go-next.png | Bin 581 -> 6729 bytes basicsuite/webengine/ui/icons/go-previous.png | Bin 585 -> 6737 bytes basicsuite/webengine/ui/icons/home.png | Bin 596 -> 4504 bytes basicsuite/webengine/ui/icons/process-stop.png | Bin 657 -> 9423 bytes basicsuite/webengine/ui/icons/up.png | Bin 885 -> 6257 bytes basicsuite/webengine/ui/icons/view-refresh.png | Bin 786 -> 12593 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/basicsuite/webengine/ui/icons/down.png b/basicsuite/webengine/ui/icons/down.png index cabd356..ec246e7 100644 Binary files a/basicsuite/webengine/ui/icons/down.png and b/basicsuite/webengine/ui/icons/down.png differ diff --git a/basicsuite/webengine/ui/icons/go-next.png b/basicsuite/webengine/ui/icons/go-next.png index c8b9b76..6ba21f8 100644 Binary files a/basicsuite/webengine/ui/icons/go-next.png and b/basicsuite/webengine/ui/icons/go-next.png differ diff --git a/basicsuite/webengine/ui/icons/go-previous.png b/basicsuite/webengine/ui/icons/go-previous.png index 7a71d7d..e0753dd 100644 Binary files a/basicsuite/webengine/ui/icons/go-previous.png and b/basicsuite/webengine/ui/icons/go-previous.png differ diff --git a/basicsuite/webengine/ui/icons/home.png b/basicsuite/webengine/ui/icons/home.png index 92d01d1..b241e02 100644 Binary files a/basicsuite/webengine/ui/icons/home.png and b/basicsuite/webengine/ui/icons/home.png differ diff --git a/basicsuite/webengine/ui/icons/process-stop.png b/basicsuite/webengine/ui/icons/process-stop.png index 8399059..c71d5a7 100644 Binary files a/basicsuite/webengine/ui/icons/process-stop.png and b/basicsuite/webengine/ui/icons/process-stop.png differ diff --git a/basicsuite/webengine/ui/icons/up.png b/basicsuite/webengine/ui/icons/up.png index 8a2e626..5d33c4a 100644 Binary files a/basicsuite/webengine/ui/icons/up.png and b/basicsuite/webengine/ui/icons/up.png differ diff --git a/basicsuite/webengine/ui/icons/view-refresh.png b/basicsuite/webengine/ui/icons/view-refresh.png index 265585b..e7af6b3 100644 Binary files a/basicsuite/webengine/ui/icons/view-refresh.png and b/basicsuite/webengine/ui/icons/view-refresh.png differ -- cgit v1.2.3 From 60355c949c4c8bf438465eaef0c0cc28a51fab53 Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Fri, 20 Jun 2014 01:27:43 -0700 Subject: Optimize behavior for hiding the address bar. The address bar is only hidden, when the WebEngineView gains focus. It is hidden with a delay of 2 seconds. This usually gives the impression the address bar hides when the page loaded. Change-Id: I3d62406b3de7219d831d195fd961d71c3debb767 Reviewed-by: Andras Becsi --- basicsuite/webengine/main.qml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index 30365ce..abcfe09 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -72,7 +72,6 @@ Rectangle { onLoadingChanged: { if (!loading) { addressBar.cursorPosition = 0 - toolBar.state = "address" } var loadError = loadRequest.errorDomain if (loadError == WebEngineView.NoErrorDomain) { @@ -91,6 +90,7 @@ Rectangle { else // HTTP and FTP errorPage.mainMessage = "Protocol error" } + onActiveFocusChanged: activeFocus ? hideTimer.running = true : toolBar.state = "address" } MultiPointTouchArea { @@ -134,13 +134,12 @@ Rectangle { Timer { id: hideTimer - interval: 3000 - running: (toolBar.state == "address" || toolBar.state == "") && !addressBar.activeFocus + interval: 2000 onTriggered: { - if (toolBar.state == "address") - toolBar.state = "hidden" - if (toolBar.state == "") - toolBar.state = "address" + if (addressBar.activeFocus) + return; + toolBar.state = "hidden" + running = false } } @@ -231,9 +230,11 @@ Rectangle { height: 25 iconSource: (toolBar.state == "hidden") ? "ui/icons/down.png" : "ui/icons/up.png" onClicked: { - if (toolBar.state == "hidden") + if (toolBar.state == "hidden") { toolBar.state = "address" - else + addressBar.forceActiveFocus() + addressBar.selectAll() + } else toolBar.state = "hidden" } anchors { -- cgit v1.2.3 From d1e02fea9e1e8adee6046cba5cefd5231d762716 Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Fri, 20 Jun 2014 03:56:22 -0700 Subject: Adjust the size of the address bar and the ToolButtons. Use a Component for styling the buttons to allow scaling. Change-Id: I2fb421e8d663832c919c3439c7431fe403c318d4 Reviewed-by: Andras Becsi --- basicsuite/webengine/main.qml | 45 +++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index abcfe09..fbcf6b0 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -41,6 +41,7 @@ import QtQuick 2.1 import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.2 import QtQuick.Layouts 1.1 import QtWebEngine 0.9 @@ -114,7 +115,7 @@ Rectangle { color: "black" opacity: 1 - height: addressBar.height + showToolBarButton.height + 50 + height: addressBar.height + showToolBarButton.height + 60 y: 0 Behavior on y { @@ -135,6 +136,7 @@ Rectangle { Timer { id: hideTimer interval: 2000 + running: false onTriggered: { if (addressBar.activeFocus) return; @@ -160,7 +162,22 @@ Rectangle { RowLayout { id: addressRow - height: 65 + + Component { + id: navigationButtonStyle + ButtonStyle { + background: Rectangle { + anchors.fill: parent + color: control.pressed ? "grey" : "transparent" + radius: 5 + Image { + anchors.fill: parent + anchors.margins: 6 + source: control.icon + } + } + } + } anchors { top: parent.top bottom: showToolBarButton.top @@ -172,31 +189,37 @@ Rectangle { ToolButton { id: backButton Layout.fillHeight: true - iconSource: "ui/icons/go-previous.png" + Layout.minimumWidth: height + property string icon: "ui/icons/go-previous.png" onClicked: mainWebView.goBack() enabled: mainWebView.canGoBack + style: navigationButtonStyle } ToolButton { id: forwardButton Layout.fillHeight: true - iconSource: "ui/icons/go-next.png" + Layout.minimumWidth: height + property string icon: "ui/icons/go-next.png" onClicked: mainWebView.goForward() enabled: mainWebView.canGoForward + style: navigationButtonStyle } ToolButton { id: reloadButton Layout.fillHeight: true - iconSource: mainWebView.loading ? "ui/icons/process-stop.png" : "ui/icons/view-refresh.png" + Layout.minimumWidth: height + property string icon: mainWebView.loading ? "ui/icons/process-stop.png" : "ui/icons/view-refresh.png" onClicked: mainWebView.loading ? mainWebView.stop() : mainWebView.reload() + style: navigationButtonStyle } ToolButton { id: homeButton width: 20 Layout.fillHeight: true - iconSource: "ui/icons/home.png" - onClicked: { - load(defaultUrl) - } + Layout.minimumWidth: height + property string icon: "ui/icons/home.png" + onClicked: load(defaultUrl) + style: navigationButtonStyle } TextField { id: addressBar @@ -228,7 +251,9 @@ Rectangle { ToolButton { id: showToolBarButton height: 25 - iconSource: (toolBar.state == "hidden") ? "ui/icons/down.png" : "ui/icons/up.png" + width: height + property string icon: (toolBar.state == "hidden") ? "ui/icons/down.png" : "ui/icons/up.png" + style: navigationButtonStyle onClicked: { if (toolBar.state == "hidden") { toolBar.state = "address" -- cgit v1.2.3 From 775c9ef760d56a11156151777deb3142c201c6f8 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Mon, 23 Jun 2014 11:18:59 +0200 Subject: webengine: Make the address bar size similar across devices Use pixelSize for the font and make the TextField height enough, the hide button big enough to be able to acurately press it on the new Nexus as well. Change-Id: If683e533639a46534fca8bab1489b2c034477698 Reviewed-by: Eirik Aavitsland --- basicsuite/webengine/main.qml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index fbcf6b0..c8ea895 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -115,7 +115,7 @@ Rectangle { color: "black" opacity: 1 - height: addressBar.height + showToolBarButton.height + 60 + height: addressBar.height + showToolBarButton.height + 40 y: 0 Behavior on y { @@ -184,7 +184,7 @@ Rectangle { left: parent.left right: parent.right margins: 10 - topMargin: 40 + topMargin: 30 } ToolButton { id: backButton @@ -225,8 +225,8 @@ Rectangle { id: addressBar focus: true textColor: "black" - implicitHeight: 40 - font.pointSize: 10 + implicitHeight: 50 + font.pixelSize: 25 inputMethodHints: Qt.ImhUrlCharactersOnly | Qt.ImhNoPredictiveText Image { anchors { @@ -250,7 +250,7 @@ Rectangle { ToolButton { id: showToolBarButton - height: 25 + height: 30 width: height property string icon: (toolBar.state == "hidden") ? "ui/icons/down.png" : "ui/icons/up.png" style: navigationButtonStyle -- cgit v1.2.3 From ee0818e6892bda96b7dc9fc8046f876285c0914a Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Mon, 23 Jun 2014 11:19:37 +0200 Subject: webengine: Update the example description and make the home page unscalable Change-Id: I68efc715d931fe14f4042b8590c1fff6249840bf Reviewed-by: Laszlo Agocs --- basicsuite/webengine/content/index.html | 1 + basicsuite/webengine/description.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/basicsuite/webengine/content/index.html b/basicsuite/webengine/content/index.html index d1cf160..f5a2bf4 100644 --- a/basicsuite/webengine/content/index.html +++ b/basicsuite/webengine/content/index.html @@ -2,6 +2,7 @@ + Qt WebEngine Demo + + + + +
+

Animations, Transitions and 3D Transforms

+

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.

+

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.

+

Toggle the Backfaces Visible checkbox to turn backfaces on and off using -webkit-backface-visibility.

+
+
+
+ +
+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
+
+
+ + + + diff --git a/basicsuite/webengine/content/morphingcubes/screenshot.png b/basicsuite/webengine/content/morphingcubes/screenshot.png new file mode 100644 index 0000000..9d36114 Binary files /dev/null and b/basicsuite/webengine/content/morphingcubes/screenshot.png differ -- cgit v1.2.3 From e6253b8d140a98f3d2327b2d028b237480378637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Thu, 19 Jun 2014 17:32:08 +0300 Subject: Delete obsoleted demos from Boot2Qt launcher * Qt5 Launch Presentation * Photogallery Task-number: QTEE-656 Change-Id: I5e71e38fd318a0934285dfa82873279c7fadd31d Reviewed-by: Kalle Viironen --- basicsuite/photogallery/description.txt | 1 - basicsuite/photogallery/main.qml | 295 ----------- basicsuite/photogallery/photogallery.pro | 13 - basicsuite/photogallery/preview_l.jpg | Bin 55274 -> 0 bytes basicsuite/photogallery/title.txt | 1 - basicsuite/qt5-launchpresentation/Button.qml | 78 --- basicsuite/qt5-launchpresentation/CameraSlide.qml | 92 ---- basicsuite/qt5-launchpresentation/CanvasSlide.qml | 161 ------ basicsuite/qt5-launchpresentation/DemoMain.qml | 139 ----- basicsuite/qt5-launchpresentation/EffectsSlide.qml | 203 ------- .../qt5-launchpresentation/ExamplesSlide.qml | 89 ---- basicsuite/qt5-launchpresentation/FontSlide.qml | 98 ---- .../qt5-launchpresentation/NoisyGradient.qml | 92 ---- .../qt5-launchpresentation/NormalMapGenerator.qml | 92 ---- .../OpacityTransitionPresentation.qml | 104 ---- .../qt5-launchpresentation/ParticleSlide.qml | 86 --- basicsuite/qt5-launchpresentation/README | 51 -- basicsuite/qt5-launchpresentation/ShaderSlide.qml | 197 ------- basicsuite/qt5-launchpresentation/SlideDeck.qml | 232 -------- basicsuite/qt5-launchpresentation/Swirl.qml | 116 ---- basicsuite/qt5-launchpresentation/VideoSlide.qml | 116 ---- .../qt5-launchpresentation/WebKitSlideContent.qml | 124 ----- basicsuite/qt5-launchpresentation/WebkitSlide.qml | 59 --- basicsuite/qt5-launchpresentation/WidgetsSlide.qml | 152 ------ .../qt5-launchpresentation/calqlatr/.DS_Store | Bin 6148 -> 0 bytes .../qt5-launchpresentation/calqlatr/Calqlatr.qml | 110 ---- .../calqlatr/content/Button.qml | 80 --- .../calqlatr/content/Display.qml | 124 ----- .../calqlatr/content/NumberPad.qml | 69 --- .../calqlatr/content/StyleLabel.qml | 50 -- .../calqlatr/content/audio/touch.wav | Bin 950 -> 0 bytes .../calqlatr/content/calculator.js | 143 ----- .../calqlatr/content/images/icon-back.png | Bin 328 -> 0 bytes .../calqlatr/content/images/icon-close.png | Bin 488 -> 0 bytes .../calqlatr/content/images/icon-settings.png | Bin 503 -> 0 bytes .../calqlatr/content/images/logo.png | Bin 5950 -> 0 bytes .../calqlatr/content/images/paper-edge-left.png | Bin 12401 -> 0 bytes .../calqlatr/content/images/paper-edge-right.png | Bin 12967 -> 0 bytes .../calqlatr/content/images/paper-grip.png | Bin 298 -> 0 bytes .../content/images/settings-selected-a.png | Bin 2326 -> 0 bytes .../content/images/settings-selected-b.png | Bin 2334 -> 0 bytes .../calqlatr/content/images/touch-green.png | Bin 4808 -> 0 bytes .../calqlatr/content/images/touch-white.png | Bin 4601 -> 0 bytes basicsuite/qt5-launchpresentation/demo.qmlproject | 18 - basicsuite/qt5-launchpresentation/description.txt | 5 - basicsuite/qt5-launchpresentation/images/ally.png | Bin 1907941 -> 0 bytes .../qt5-launchpresentation/images/butterfly.png | Bin 18668 -> 0 bytes .../qt5-launchpresentation/images/displace.png | Bin 20269 -> 0 bytes basicsuite/qt5-launchpresentation/images/fog.png | Bin 225653 -> 0 bytes .../qt5-launchpresentation/images/particle.png | Bin 861 -> 0 bytes .../qt5-launchpresentation/images/qt-logo.png | Bin 49656 -> 0 bytes .../images/widgets_boxes.png | Bin 589779 -> 0 bytes .../images/widgets_chips.png | Bin 211342 -> 0 bytes .../images/widgets_mainwindows.png | Bin 95685 -> 0 bytes .../images/widgets_styles_fusion.png | Bin 65678 -> 0 bytes .../images/widgets_styles_macstyle.png | Bin 70514 -> 0 bytes basicsuite/qt5-launchpresentation/main.qml | 63 --- basicsuite/qt5-launchpresentation/main_hifi.qml | 43 -- basicsuite/qt5-launchpresentation/maroon/.DS_Store | Bin 6148 -> 0 bytes .../qt5-launchpresentation/maroon/Maroon.qml | 233 --------- .../maroon/content/BuildButton.qml | 90 ---- .../maroon/content/GameCanvas.qml | 240 --------- .../maroon/content/GameOverScreen.qml | 115 ---- .../maroon/content/InfoBar.qml | 84 --- .../maroon/content/NewGameScreen.qml | 111 ---- .../maroon/content/SoundEffect.qml | 53 -- .../maroon/content/audio/bomb-action.wav | Bin 20972 -> 0 bytes .../maroon/content/audio/catch-action.wav | Bin 13274 -> 0 bytes .../maroon/content/audio/catch.wav | Bin 8638 -> 0 bytes .../maroon/content/audio/currency.wav | Bin 15790 -> 0 bytes .../maroon/content/audio/factory-action.wav | Bin 4936 -> 0 bytes .../maroon/content/audio/melee-action.wav | Bin 17798 -> 0 bytes .../maroon/content/audio/projectile-action.wav | Bin 2562 -> 0 bytes .../maroon/content/audio/shooter-action.wav | Bin 27554 -> 0 bytes .../maroon/content/gfx/background.png | Bin 5802 -> 0 bytes .../maroon/content/gfx/bomb-action.png | Bin 23974 -> 0 bytes .../maroon/content/gfx/bomb-idle.png | Bin 12238 -> 0 bytes .../maroon/content/gfx/bomb.png | Bin 4067 -> 0 bytes .../maroon/content/gfx/button-help.png | Bin 8916 -> 0 bytes .../maroon/content/gfx/button-play.png | Bin 13945 -> 0 bytes .../maroon/content/gfx/catch-action.png | Bin 6760 -> 0 bytes .../maroon/content/gfx/catch.png | Bin 4771 -> 0 bytes .../maroon/content/gfx/cloud.png | Bin 3398 -> 0 bytes .../maroon/content/gfx/currency.png | Bin 1889 -> 0 bytes .../maroon/content/gfx/dialog-bomb.png | Bin 3751 -> 0 bytes .../maroon/content/gfx/dialog-factory.png | Bin 3946 -> 0 bytes .../maroon/content/gfx/dialog-melee.png | Bin 4392 -> 0 bytes .../maroon/content/gfx/dialog-pointer.png | Bin 911 -> 0 bytes .../maroon/content/gfx/dialog-shooter.png | Bin 3737 -> 0 bytes .../maroon/content/gfx/dialog.png | Bin 3362 -> 0 bytes .../maroon/content/gfx/factory-action.png | Bin 22440 -> 0 bytes .../maroon/content/gfx/factory-idle.png | Bin 12729 -> 0 bytes .../maroon/content/gfx/factory.png | Bin 4138 -> 0 bytes .../maroon/content/gfx/grid.png | Bin 2830 -> 0 bytes .../maroon/content/gfx/help.png | Bin 38255 -> 0 bytes .../maroon/content/gfx/lifes.png | Bin 1675 -> 0 bytes .../maroon/content/gfx/logo-bubble.png | Bin 7706 -> 0 bytes .../maroon/content/gfx/logo-fish.png | Bin 3477 -> 0 bytes .../maroon/content/gfx/logo.png | Bin 18332 -> 0 bytes .../maroon/content/gfx/melee-action.png | Bin 7797 -> 0 bytes .../maroon/content/gfx/melee-idle.png | Bin 22832 -> 0 bytes .../maroon/content/gfx/melee.png | Bin 4046 -> 0 bytes .../maroon/content/gfx/mob-idle.png | Bin 6181 -> 0 bytes .../maroon/content/gfx/mob.png | Bin 2391 -> 0 bytes .../maroon/content/gfx/points.png | Bin 1561 -> 0 bytes .../maroon/content/gfx/projectile-action.png | Bin 6257 -> 0 bytes .../maroon/content/gfx/projectile.png | Bin 801 -> 0 bytes .../maroon/content/gfx/scores.png | Bin 1535 -> 0 bytes .../maroon/content/gfx/shooter-action.png | Bin 18121 -> 0 bytes .../maroon/content/gfx/shooter-idle.png | Bin 11929 -> 0 bytes .../maroon/content/gfx/shooter.png | Bin 4137 -> 0 bytes .../maroon/content/gfx/sunlight.png | Bin 248412 -> 0 bytes .../maroon/content/gfx/text-1.png | Bin 2777 -> 0 bytes .../maroon/content/gfx/text-2.png | Bin 4959 -> 0 bytes .../maroon/content/gfx/text-3.png | Bin 5063 -> 0 bytes .../maroon/content/gfx/text-blank.png | Bin 1326 -> 0 bytes .../maroon/content/gfx/text-gameover.png | Bin 1515 -> 0 bytes .../maroon/content/gfx/text-go.png | Bin 4230 -> 0 bytes .../maroon/content/gfx/wave.png | Bin 2763 -> 0 bytes .../qt5-launchpresentation/maroon/content/logic.js | 264 ---------- .../maroon/content/mobs/MobBase.qml | 262 ---------- .../maroon/content/towers/Bomb.qml | 133 ----- .../maroon/content/towers/Factory.qml | 114 ---- .../maroon/content/towers/Melee.qml | 83 --- .../maroon/content/towers/Ranged.qml | 128 ----- .../maroon/content/towers/TowerBase.qml | 72 --- .../particles/customemitter.qml | 91 ---- .../qt5-launchpresentation/particles/emitmask.qml | 76 --- .../qt5-launchpresentation/particles/particle.png | Bin 861 -> 0 bytes .../qt5-launchpresentation/particles/particle4.png | Bin 1799 -> 0 bytes .../qt5-launchpresentation/particles/star.png | Bin 1550 -> 0 bytes .../particles/starfish_mask.png | Bin 11301 -> 0 bytes .../particles/velocityfrommotion.qml | 306 ----------- .../qt5-launchpresentation/presentation/Clock.qml | 77 --- .../presentation/CodeSlide.qml | 162 ------ .../presentation/Presentation.qml | 196 ------- .../qt5-launchpresentation/presentation/Slide.qml | 186 ------- .../presentation/SlideCounter.qml | 61 --- basicsuite/qt5-launchpresentation/preview_l.jpg | Bin 16252 -> 0 bytes .../qt5-launchpresentation.pro | 18 - .../qt5-launchpresentation/samegame/.DS_Store | Bin 6148 -> 0 bytes .../qt5-launchpresentation/samegame/Samegame.qml | 371 ------------- .../samegame/content/Block.qml | 114 ---- .../samegame/content/BlockEmitter.qml | 57 -- .../samegame/content/Button.qml | 70 --- .../samegame/content/GameArea.qml | 226 -------- .../samegame/content/LogoAnimation.qml | 102 ---- .../samegame/content/MenuEmitter.qml | 53 -- .../samegame/content/PaintEmitter.qml | 98 ---- .../samegame/content/PrimaryPack.qml | 122 ----- .../samegame/content/PuzzleBlock.qml | 111 ---- .../samegame/content/SamegameText.qml | 49 -- .../samegame/content/SimpleBlock.qml | 108 ---- .../samegame/content/SmokeText.qml | 83 --- .../samegame/content/gfx/background-puzzle.png | Bin 86666 -> 0 bytes .../samegame/content/gfx/background.png | Bin 101018 -> 0 bytes .../samegame/content/gfx/bar.png | Bin 10970 -> 0 bytes .../samegame/content/gfx/blue-puzzle.png | Bin 2219 -> 0 bytes .../samegame/content/gfx/blue.png | Bin 1018 -> 0 bytes .../samegame/content/gfx/bubble-highscore.png | Bin 2276 -> 0 bytes .../samegame/content/gfx/bubble-puzzle.png | Bin 2811 -> 0 bytes .../samegame/content/gfx/but-game-1.png | Bin 2728 -> 0 bytes .../samegame/content/gfx/but-game-2.png | Bin 3378 -> 0 bytes .../samegame/content/gfx/but-game-3.png | Bin 1423 -> 0 bytes .../samegame/content/gfx/but-game-4.png | Bin 2096 -> 0 bytes .../samegame/content/gfx/but-game-new.png | Bin 3662 -> 0 bytes .../samegame/content/gfx/but-menu.png | Bin 2391 -> 0 bytes .../samegame/content/gfx/but-puzzle-next.png | Bin 3658 -> 0 bytes .../samegame/content/gfx/but-quit.png | Bin 2100 -> 0 bytes .../samegame/content/gfx/green-puzzle.png | Bin 2271 -> 0 bytes .../samegame/content/gfx/green.png | Bin 1024 -> 0 bytes .../samegame/content/gfx/icon-fail.png | Bin 6549 -> 0 bytes .../samegame/content/gfx/icon-ok.png | Bin 7190 -> 0 bytes .../samegame/content/gfx/icon-time.png | Bin 1159 -> 0 bytes .../samegame/content/gfx/logo-a.png | Bin 1814 -> 0 bytes .../samegame/content/gfx/logo-e.png | Bin 1725 -> 0 bytes .../samegame/content/gfx/logo-g.png | Bin 1765 -> 0 bytes .../samegame/content/gfx/logo-m.png | Bin 1743 -> 0 bytes .../samegame/content/gfx/logo-s.png | Bin 1791 -> 0 bytes .../samegame/content/gfx/logo.png | Bin 3608 -> 0 bytes .../samegame/content/gfx/particle-brick.png | Bin 861 -> 0 bytes .../samegame/content/gfx/particle-paint.png | Bin 714 -> 0 bytes .../samegame/content/gfx/particle-smoke.png | Bin 5409 -> 0 bytes .../samegame/content/gfx/red-puzzle.png | Bin 2218 -> 0 bytes .../samegame/content/gfx/red.png | Bin 1018 -> 0 bytes .../samegame/content/gfx/text-highscore-new.png | Bin 6767 -> 0 bytes .../samegame/content/gfx/text-highscore.png | Bin 3179 -> 0 bytes .../samegame/content/gfx/text-no-winner.png | Bin 6321 -> 0 bytes .../samegame/content/gfx/text-p1-go.png | Bin 5395 -> 0 bytes .../samegame/content/gfx/text-p1-won.png | Bin 5618 -> 0 bytes .../samegame/content/gfx/text-p1.png | Bin 1751 -> 0 bytes .../samegame/content/gfx/text-p2-go.png | Bin 5874 -> 0 bytes .../samegame/content/gfx/text-p2-won.png | Bin 6177 -> 0 bytes .../samegame/content/gfx/text-p2.png | Bin 2381 -> 0 bytes .../samegame/content/gfx/yellow-puzzle.png | Bin 2239 -> 0 bytes .../samegame/content/gfx/yellow.png | Bin 1008 -> 0 bytes .../samegame/content/levels/TemplateBase.qml | 70 --- .../samegame/content/levels/level0.qml | 59 --- .../samegame/content/levels/level1.qml | 59 --- .../samegame/content/levels/level2.qml | 61 --- .../samegame/content/levels/level3.qml | 60 --- .../samegame/content/levels/level4.qml | 58 -- .../samegame/content/levels/level5.qml | 59 --- .../samegame/content/levels/level6.qml | 60 --- .../samegame/content/levels/level7.qml | 58 -- .../samegame/content/levels/level8.qml | 59 --- .../samegame/content/levels/level9.qml | 62 --- .../samegame/content/samegame.js | 581 --------------------- .../qt5-launchpresentation/samegame/settings.js | 56 -- basicsuite/qt5-launchpresentation/title.txt | 1 - 210 files changed, 9318 deletions(-) delete mode 100644 basicsuite/photogallery/description.txt delete mode 100644 basicsuite/photogallery/main.qml delete mode 100644 basicsuite/photogallery/photogallery.pro delete mode 100644 basicsuite/photogallery/preview_l.jpg delete mode 100644 basicsuite/photogallery/title.txt delete mode 100644 basicsuite/qt5-launchpresentation/Button.qml delete mode 100644 basicsuite/qt5-launchpresentation/CameraSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/CanvasSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/DemoMain.qml delete mode 100644 basicsuite/qt5-launchpresentation/EffectsSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/ExamplesSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/FontSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/NoisyGradient.qml delete mode 100644 basicsuite/qt5-launchpresentation/NormalMapGenerator.qml delete mode 100644 basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml delete mode 100644 basicsuite/qt5-launchpresentation/ParticleSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/README delete mode 100644 basicsuite/qt5-launchpresentation/ShaderSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/SlideDeck.qml delete mode 100644 basicsuite/qt5-launchpresentation/Swirl.qml delete mode 100644 basicsuite/qt5-launchpresentation/VideoSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/WebKitSlideContent.qml delete mode 100644 basicsuite/qt5-launchpresentation/WebkitSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/WidgetsSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/.DS_Store delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/Calqlatr.qml delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/Button.qml delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/Display.qml delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/NumberPad.qml delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/StyleLabel.qml delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/audio/touch.wav delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/calculator.js delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-back.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-close.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-settings.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/logo.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-left.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-right.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-grip.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-a.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-b.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-green.png delete mode 100644 basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-white.png delete mode 100644 basicsuite/qt5-launchpresentation/demo.qmlproject delete mode 100644 basicsuite/qt5-launchpresentation/description.txt delete mode 100644 basicsuite/qt5-launchpresentation/images/ally.png delete mode 100644 basicsuite/qt5-launchpresentation/images/butterfly.png delete mode 100644 basicsuite/qt5-launchpresentation/images/displace.png delete mode 100644 basicsuite/qt5-launchpresentation/images/fog.png delete mode 100644 basicsuite/qt5-launchpresentation/images/particle.png delete mode 100644 basicsuite/qt5-launchpresentation/images/qt-logo.png delete mode 100644 basicsuite/qt5-launchpresentation/images/widgets_boxes.png delete mode 100644 basicsuite/qt5-launchpresentation/images/widgets_chips.png delete mode 100644 basicsuite/qt5-launchpresentation/images/widgets_mainwindows.png delete mode 100644 basicsuite/qt5-launchpresentation/images/widgets_styles_fusion.png delete mode 100644 basicsuite/qt5-launchpresentation/images/widgets_styles_macstyle.png delete mode 100644 basicsuite/qt5-launchpresentation/main.qml delete mode 100644 basicsuite/qt5-launchpresentation/main_hifi.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/.DS_Store delete mode 100644 basicsuite/qt5-launchpresentation/maroon/Maroon.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/BuildButton.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/GameCanvas.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/GameOverScreen.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/InfoBar.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/NewGameScreen.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/SoundEffect.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/bomb-action.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/catch-action.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/catch.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/currency.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/factory-action.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/melee-action.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/projectile-action.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/audio/shooter-action.wav delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/background.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-action.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-idle.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/button-help.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/button-play.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/catch-action.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/catch.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/cloud.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/currency.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-bomb.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-factory.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-melee.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-pointer.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-shooter.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-action.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-idle.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/factory.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/grid.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/help.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/lifes.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-bubble.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-fish.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/logo.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-action.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-idle.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/melee.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/mob-idle.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/mob.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/points.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile-action.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/scores.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-action.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-idle.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/sunlight.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/text-1.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/text-2.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/text-3.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/text-blank.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/text-gameover.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/text-go.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/gfx/wave.png delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/logic.js delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/mobs/MobBase.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/towers/Bomb.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/towers/Factory.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/towers/Melee.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/towers/Ranged.qml delete mode 100644 basicsuite/qt5-launchpresentation/maroon/content/towers/TowerBase.qml delete mode 100644 basicsuite/qt5-launchpresentation/particles/customemitter.qml delete mode 100644 basicsuite/qt5-launchpresentation/particles/emitmask.qml delete mode 100644 basicsuite/qt5-launchpresentation/particles/particle.png delete mode 100644 basicsuite/qt5-launchpresentation/particles/particle4.png delete mode 100644 basicsuite/qt5-launchpresentation/particles/star.png delete mode 100644 basicsuite/qt5-launchpresentation/particles/starfish_mask.png delete mode 100644 basicsuite/qt5-launchpresentation/particles/velocityfrommotion.qml delete mode 100644 basicsuite/qt5-launchpresentation/presentation/Clock.qml delete mode 100644 basicsuite/qt5-launchpresentation/presentation/CodeSlide.qml delete mode 100644 basicsuite/qt5-launchpresentation/presentation/Presentation.qml delete mode 100644 basicsuite/qt5-launchpresentation/presentation/Slide.qml delete mode 100644 basicsuite/qt5-launchpresentation/presentation/SlideCounter.qml delete mode 100644 basicsuite/qt5-launchpresentation/preview_l.jpg delete mode 100644 basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro delete mode 100644 basicsuite/qt5-launchpresentation/samegame/.DS_Store delete mode 100644 basicsuite/qt5-launchpresentation/samegame/Samegame.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/Block.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/BlockEmitter.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/Button.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/GameArea.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/LogoAnimation.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/MenuEmitter.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/PaintEmitter.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/PrimaryPack.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/PuzzleBlock.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/SamegameText.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/SimpleBlock.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/SmokeText.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/background-puzzle.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/background.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/bar.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/blue-puzzle.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/blue.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-highscore.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-puzzle.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-1.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-2.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-3.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-4.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-new.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-menu.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-puzzle-next.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/but-quit.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/green-puzzle.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/green.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-fail.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-ok.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-time.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-a.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-e.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-g.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-m.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-s.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/logo.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-brick.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-paint.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-smoke.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/red-puzzle.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/red.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore-new.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-no-winner.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-go.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-won.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-go.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-won.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow-puzzle.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow.png delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/TemplateBase.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level0.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level1.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level2.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level3.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level4.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level5.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level6.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level7.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level8.qml delete mode 100644 basicsuite/qt5-launchpresentation/samegame/content/levels/level9.qml delete mode 100755 basicsuite/qt5-launchpresentation/samegame/content/samegame.js delete mode 100644 basicsuite/qt5-launchpresentation/samegame/settings.js delete mode 100644 basicsuite/qt5-launchpresentation/title.txt diff --git a/basicsuite/photogallery/description.txt b/basicsuite/photogallery/description.txt deleted file mode 100644 index f47f907..0000000 --- a/basicsuite/photogallery/description.txt +++ /dev/null @@ -1 +0,0 @@ -This is a simple photo gallery, showing images found in /data/images. Images captured with the Camera demo will also appear in this folder. diff --git a/basicsuite/photogallery/main.qml b/basicsuite/photogallery/main.qml deleted file mode 100644 index a7f114e..0000000 --- a/basicsuite/photogallery/main.qml +++ /dev/null @@ -1,295 +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://qt.digia.com/ -** -** 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 Qt.labs.folderlistmodel 1.0 - -Item { - id: root - - width: 320 - height: 480 - - Rectangle { - anchors.fill: parent - color: "black" - } - - FolderListModel { - id: imageList - folder: "/data/images" - nameFilters: ["*.png", "*.jpg"] - - showDirs: false - } - - Text { - id: noImages - color: "white" - visible: grid.count == 0 - text: "No images in " + imageList.folder - anchors.centerIn: parent - } - - GridView { - id: grid - - anchors.fill: parent - - cellHeight: root.width / 3 - cellWidth: cellHeight - - model: imageList - -// NumberAnimation on contentY { from: 0; to: 2000; duration: 3000; loops: 1; easing.type: Easing.InOutCubic } - - delegate: Rectangle { - - id: box - color: "white" - width: grid.cellWidth - height: grid.cellHeight - scale: 0.97 - rotation: 2; - antialiasing: true - - Rectangle { - id: sepia - color: "#b08050" - width: image.width - height: image.height - anchors.centerIn: parent - - property real fakeOpacity: image.status == Image.Ready ? 1.5 : 0 - Behavior on fakeOpacity { NumberAnimation { duration: 1000 } } - - opacity: fakeOpacity - visible: image.opacity <= 0.99; - antialiasing: true - } - - Image { - id: image - source: filePath - width: grid.cellWidth * 0.9 - height: grid.cellHeight * 0.9 - anchors.centerIn: sepia - asynchronous: true - opacity: sepia.fakeOpacity - .5 - sourceSize.width: width; - antialiasing: true - } - - MouseArea { - anchors.fill: parent - onClicked: { - root.showBigImage(filePath, box.x - grid.contentX, box.y - grid.contentY, image); - } - } - } - } - - function showBigImage(filePath, itemX, itemY, image) { - fakeBigImage.x = itemX; - fakeBigImage.y = itemY; - fakeBigImage.sourceSize = image.sourceSize; - fakeBigImage.source = filePath; - - beginEnterLargeAnimation.running = true; - } - - property int time: 500; - property real xPos: width < height ? 0 : width / 2 - height / 2; - property real yPos: width < height ? height / 2 - width / 2: 0; - property real size: Math.min(width, height); - - states: [ - State { name: "grid" }, - State { name: "enter-large" }, - State { name: "large" }, - State { name: "exit-large" } - ] - - SequentialAnimation { - id: beginEnterLargeAnimation - PropertyAction { target: mouseArea; property: "enabled"; value: "true" } - PropertyAction { target: fakeBigImage; property: "rotation"; value: 2; } - PropertyAction { target: fakeBigImage; property: "scale"; value: 0.97 * 0.9; } - PropertyAction { target: fakeBigImage; property: "width"; value: grid.cellWidth; } - PropertyAction { target: fakeBigImage; property: "height"; value: grid.cellHeight; } - PropertyAction { target: fakeBigImage; property: "visible"; value: true; } - - ParallelAnimation { - NumberAnimation { target: fakeBigImage; property: "rotation"; to: 0; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "scale"; to: 1; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "x"; to: root.xPos; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "y"; to: root.yPos; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "width"; to: root.size; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "height"; to: root.size; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: grid; property: "opacity"; to: 0; duration: root.time; easing.type: Easing.InOutCubic } - } - ScriptAction { - script: { - - bigImage = realBigImageComponent.createObject(root); - bigImage.source = fakeBigImage.source; - } - } - } - - property Item bigImage; - property real targetRotation: 0; - property real targetWidth: 0 - property real targetHeight: 0 - property bool bigImageShowing: false; - - SequentialAnimation { - id: finalizeEnterLargeAnimation - ScriptAction { script: { - fakeBigImage.anchors.centerIn = root; - } - } - ParallelAnimation { - NumberAnimation { target: bigImage; property: "opacity"; to: 1; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "rotation"; to: root.targetRotation; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: bigImage; property: "rotation"; to: root.targetRotation; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "width"; to: root.targetWidth; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: fakeBigImage; property: "height"; to: root.targetHeight; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: bigImage; property: "width"; to: root.targetWidth; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: bigImage; property: "height"; to: root.targetHeight; duration: root.time; easing.type: Easing.InOutCubic } - } - PropertyAction { target: fakeBigImage; property: "visible"; value: false } - PropertyAction { target: root; property: "bigImageShowing"; value: true } - } - - SequentialAnimation { - id: backToGridAnimation - ParallelAnimation { - NumberAnimation { target: bigImage; property: "opacity"; to: 0; duration: root.time; easing.type: Easing.InOutCubic } - NumberAnimation { target: grid; property: "opacity"; to: 1; duration: root.time; easing.type: Easing.InOutCubic } - } - PropertyAction { target: fakeBigImage; property: "source"; value: "" } - PropertyAction { target: root; property: "bigImageShowing"; value: false } - PropertyAction { target: mouseArea; property: "enabled"; value: false } - ScriptAction { script: { - bigImage.destroy(); - fakeBigImage.anchors.centerIn = undefined - } - } - } - - Image { - id: fakeBigImage - width: grid.cellWidth - height: grid.cellHeight - visible: false - antialiasing: true - } - - Component { - id: realBigImageComponent - - Image { - id: realBigImage - - anchors.centerIn: parent; - - asynchronous: true; - - // Bound size to the current display size, to try to avoid any GL_MAX_TEXTURE_SIZE issues. - sourceSize: Qt.size(Math.max(root.width, root.height), Math.max(root.width, root.height)); - - opacity: 0 - onStatusChanged: { - - if (status != Image.Ready) - return; - - var imageIsLandscape = width > height; - var screenIsLandscape = root.width > root.height; - - var targetScale; - - // Rotation needed... - if (imageIsLandscape != screenIsLandscape && width != height) { - root.targetRotation = 90; - var aspect = width / height - var screenAspect = root.height / root.width - - if (aspect > screenAspect) { - targetScale = root.height / width - } else { - targetScale = root.width / height; - } - } else { - root.targetRotation = 0; - var aspect = height / width; - var screenAspect = root.height / root.width - - if (aspect > screenAspect) { - targetScale = root.height / height - } else { - targetScale = root.width / width; - } - } - - root.targetWidth = width * targetScale - root.targetHeight = height * targetScale; - - width = root.size - height = root.size; - - finalizeEnterLargeAnimation.running = true; - } - } - } - - MouseArea { - id: mouseArea - anchors.fill: parent - enabled: false - - onClicked: { - if (root.bigImageShowing) - backToGridAnimation.running = true; - } - } - -} diff --git a/basicsuite/photogallery/photogallery.pro b/basicsuite/photogallery/photogallery.pro deleted file mode 100644 index 3b1476a..0000000 --- a/basicsuite/photogallery/photogallery.pro +++ /dev/null @@ -1,13 +0,0 @@ -TARGET = photogallery - -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/photogallery/preview_l.jpg b/basicsuite/photogallery/preview_l.jpg deleted file mode 100644 index 0b67f1d..0000000 Binary files a/basicsuite/photogallery/preview_l.jpg and /dev/null differ diff --git a/basicsuite/photogallery/title.txt b/basicsuite/photogallery/title.txt deleted file mode 100644 index eda05c5..0000000 --- a/basicsuite/photogallery/title.txt +++ /dev/null @@ -1 +0,0 @@ -120. Photo Gallery diff --git a/basicsuite/qt5-launchpresentation/Button.qml b/basicsuite/qt5-launchpresentation/Button.qml deleted file mode 100644 index 6d6bf6e..0000000 --- a/basicsuite/qt5-launchpresentation/Button.qml +++ /dev/null @@ -1,78 +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 Qt 5 launch demo. -** -** $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: root; - - border.width: (pressed ? 1.5 : 1) * height / 20; - border.color: Qt.rgba(1, 1, 1, 0.4); - radius: height / 4; - - antialiasing: true - - gradient: Gradient { - GradientStop { position: 0; color: Qt.rgba(0.5, 0.5, 0.5, pressed ? 0.7 : 0.5); } - GradientStop { position: 1; color: Qt.rgba(0.2, 0.2, 0.2, pressed ? 0.7 : 0.5); } - } - - Behavior on color { ColorAnimation { duration: 100 } } - - property bool pressed; - property alias label: textItem.text; - - Text { - id: textItem - anchors.centerIn: parent - color: "white" - font.pixelSize: parent.height / 3; - font.bold: true - } - - MouseArea { - id: mouse - anchors.fill: parent - onPressed: root.pressed = !root.pressed; - - } - -} diff --git a/basicsuite/qt5-launchpresentation/CameraSlide.qml b/basicsuite/qt5-launchpresentation/CameraSlide.qml deleted file mode 100644 index a253c08..0000000 --- a/basicsuite/qt5-launchpresentation/CameraSlide.qml +++ /dev/null @@ -1,92 +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 Qt 5 launch demo. -** -** $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 QtMultimedia 5.0 -import "presentation" - -import QtGraphicalEffects 1.0 - -Slide { - - id: slide - - title: "Qt Multimedia - Camera" - - Camera { - id: camera - Component.onCompleted: camera.stop(); - } - - VideoOutput { - id: videoOut - anchors.fill: parent - source: camera - layer.enabled: true; - layer.effect: ZoomBlur { - samples: 16 - length: button.pressed ? parent.height / 5 : 0 - Behavior on length { - NumberAnimation { duration: 250 } - } - } - } - - onVisibleChanged: { - if (slide.visible) - camera.start(); - else - camera.stop(); - } - - Button { - id: button - anchors.bottom: videoOut.bottom - anchors.horizontalCenter: videoOut.horizontalCenter - anchors.bottomMargin: height / 2; -// anchors.bottom: slide.top; -// anchors.right: slide.right; -// anchors.bottomMargin: height; - label: pressed ? "Remove Effect" : "Zoom Effect"; - width: height * 4; - height: parent.height * 0.1 - } - -} diff --git a/basicsuite/qt5-launchpresentation/CanvasSlide.qml b/basicsuite/qt5-launchpresentation/CanvasSlide.qml deleted file mode 100644 index 46f98ed..0000000 --- a/basicsuite/qt5-launchpresentation/CanvasSlide.qml +++ /dev/null @@ -1,161 +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 Qt 5 launch demo. -** -** $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 -import "presentation" - -Slide { - id: slide - - title: "Qt Quick - Canvas" - - - - Rectangle { - height: parent.height - width: parent.width * 0.45 - anchors.right: parent.right; - antialiasing: true - radius: slide.height * 0.03; - color: Qt.rgba(0.0, 0.0, 0.0, 0.2); - Canvas { - id:canvas - anchors.fill: parent; - - renderTarget: Canvas.Image; - antialiasing: true; - onPaint: { - eval(editor.text); - } - } - } - - Rectangle { - height: parent.height - width: parent.width * 0.45 - anchors.left: parent.left - antialiasing: true - radius: slide.height * 0.03; - color: Qt.rgba(0.0, 0.0, 0.0, 0.2); - - clip: true; - - TextEdit { - id: editor - anchors.fill: parent; - anchors.margins: 10 - - font.pixelSize: 16 - color: "white" - font.family: "courier" - font.bold: true - - text: -"var ctx = canvas.getContext('2d'); -ctx.save(); -ctx.clearRect(0, 0, canvas.width, canvas.height); -ctx.strokeStyle = 'palegreen' -ctx.fillStyle = 'limegreen'; -ctx.lineWidth = 5; - -ctx.beginPath(); -ctx.moveTo(100, 100); -ctx.lineTo(300, 100); -ctx.lineTo(100, 200); -ctx.closePath(); -ctx.fill(); -ctx.stroke(); - -ctx.fillStyle = 'aquamarine' -ctx.font = '20px sans-serif' -ctx.fillText('HTML Canvas API!', 100, 300); -ctx.fillText('Imperative Drawing!', 100, 340); - -ctx.restore(); -" - onTextChanged: canvas.requestPaint(); - - onCursorRectangleChanged: { - emitter.burst(10) - - } - - ParticleSystem { - id: sys1 - running: slide.visible - } - - ImageParticle { - system: sys1 - source: "images/particle.png" - color: "white" - colorVariation: 0.2 - alpha: 0 - } - - Emitter { - id: emitter - system: sys1 - - x: editor.cursorRectangle.x - editor.cursorRectangle.height / 2; - y: editor.cursorRectangle.y - width: editor.cursorRectangle.height - height: editor.cursorRectangle.height - enabled: false - - lifeSpan: 1000 - - velocity: PointDirection { xVariation: 30; yVariation: 30; } - acceleration: PointDirection {xVariation: 30; yVariation: 30; y: 100 } - - endSize: 0 - - size: 4 - sizeVariation: 2 - } - - } - - - - - } -} diff --git a/basicsuite/qt5-launchpresentation/DemoMain.qml b/basicsuite/qt5-launchpresentation/DemoMain.qml deleted file mode 100644 index 05454be..0000000 --- a/basicsuite/qt5-launchpresentation/DemoMain.qml +++ /dev/null @@ -1,139 +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 Qt 5 launch demo. -** -** $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 QtGraphicalEffects 1.0 - -Item { - id: demoMain; - - property bool useDropShadow: true; - property bool useSwirls: true; - property bool useSimpleGradient: false; - property bool autorun: false; - - width: 1280 - height: 720 - - NoisyGradient { - anchors.fill: parent; - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.rgba(0.64 * 0.6, 0.82 * 0.6, 0.15 * 0.6) } - GradientStop { position: 1.0; color: "black" } - } - visible: !parent.useSimpleGradient - } - - Rectangle { - anchors.fill: parent; - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.rgba(0.64, 0.82, 0.15) } - GradientStop { position: 1.0; color: "black" } - } - visible: parent.useSimpleGradient; - } - - Rectangle { - id: colorTable - width: 1 - height: 46 - color: "transparent" - - Column { - spacing: 2 - y: 1 - Rectangle { width: 1; height: 10; color: "white" } - Rectangle { width: 1; height: 10; color: Qt.rgba(0.64 * 1.4, 0.82 * 1.4, 0.15 * 1.4, 1); } - Rectangle { width: 1; height: 10; color: Qt.rgba(0.64, 0.82, 0.15); } - Rectangle { width: 1; height: 10; color: Qt.rgba(0.64 * 0.7, 0.82 * 0.7, 0.15 * 0.7); } - } - - layer.enabled: true - layer.smooth: true - visible: false; - } - - - Swirl - { - x: 0; - width: parent.width - height: parent.height * 0.2 - anchors.bottom: parent.bottom; - amplitude: height * 0.2; - colorTable: colorTable; - speed: 0.2; - opacity: 0.3 - visible: parent.useSwirls; - } - - Timer { - interval: 20000 - running: parent.autorun - repeat: true - - onTriggered: { - var from = slides.currentSlide; - var to = from == slides.slides.length - 1 ? 1 : from + 1; - slides.switchSlides(slides.slides[from], slides.slides[to], true); - slides.currentSlide = to; - } - } - - SlideDeck { - id: slides - titleColor: "white" - textColor: "white" - anchors.fill: parent - layer.enabled: parent.useDropShadow - layer.effect: DropShadow { - horizontalOffset: slides.width * 0.005; - verticalOffset: slides.width * 0.005; - radius: 16.0 - samples: 16 - fast: true - color: Qt.rgba(0.0, 0.0, 0.0, 0.7); - } - } - - - -} diff --git a/basicsuite/qt5-launchpresentation/EffectsSlide.qml b/basicsuite/qt5-launchpresentation/EffectsSlide.qml deleted file mode 100644 index 0355284..0000000 --- a/basicsuite/qt5-launchpresentation/EffectsSlide.qml +++ /dev/null @@ -1,203 +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 Qt 5 launch demo. -** -** $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 QtGraphicalEffects 1.0 - -import "presentation" - -Slide { - id: slide - - title: "Qt Graphical Effects" - writeInText: "The Qt Graphical Effects module includes a wide range of effects:" - - property real t; - SequentialAnimation on t { - NumberAnimation { from: 0; to: 1; duration: 5000; easing.type: Easing.InOutCubic } - NumberAnimation { from: 1; to: 0; duration: 5000; easing.type: Easing.InOutCubic } - loops: Animation.Infinite - running: slide.visible; - } - - SequentialAnimation { - PropertyAction { target: grid; property: "opacity"; value: 0 } - PauseAnimation { duration: 1500 } - NumberAnimation { target: grid; property: "opacity"; to: 1; duration: 2000; easing.type: Easing.InOutCubic } - running: slide.visible; - } - - Grid { - id: grid; - - opacity: 0; - - width: parent.width - height: parent.height * 0.84 - anchors.bottom: parent.bottom; - - property real cw: width / columns - property real ch: height / rows; - - property int fontSize: slide.baseFontSize * 0.5 - - columns: 4 - rows: 2 - - Item { - width: grid.cw - height: grid.ch - Text { text: "Original"; color: "white"; font.pixelSize: grid.fontSize; anchors.horizontalCenter: noEffect.horizontalCenter } - Image { - id: noEffect; - source: "images/butterfly.png" - width: grid.cw * 0.9 - fillMode: Image.PreserveAspectFit - } - } - - Column { - Glow { - id: glowEffect - radius: 4 - samples: 4 - spread: slide.t - source: noEffect - width: grid.cw * 0.9 - height: width; - Text { text: "Glow"; color: "white"; font.pixelSize: grid.fontSize; anchors.top: parent.top; anchors.horizontalCenter: parent.horizontalCenter; } - } - } - - Column { - InnerShadow { - id: innerShadowEffect - radius: slide.t * 16; - samples: 16 - color: "black" - source: noEffect - width: grid.cw * 0.9 - height: width; - Text { text: "InnerShadow"; color: "white"; font.pixelSize: grid.fontSize; anchors.top: parent.top; anchors.horizontalCenter: parent.horizontalCenter; } - } - } - - Column { - GaussianBlur { - id: blurEffect - radius: slide.t * samples; - samples: 8 - source: noEffect - width: grid.cw * 0.9 - height: width; - Text { text: "GaussianBlur"; color: "white"; font.pixelSize: grid.fontSize; anchors.top: parent.top; anchors.horizontalCenter: parent.horizontalCenter; } - } - } - - Column { - ThresholdMask { - id: thresholdEffect - maskSource: Image { source: "images/fog.png" } - threshold: slide.t * 0.5 + 0.2; - spread: 0.2 - source: noEffect - width: grid.cw * 0.9 - height: width; - Text { text: "ThresholdMask"; color: "white"; font.pixelSize: grid.fontSize; anchors.top: parent.top; anchors.horizontalCenter: parent.horizontalCenter; } - } - } - - Column { - BrightnessContrast { - id: brightnessEffect - brightness: Math.sin(slide.t * 2 * Math.PI) * 0.5; - contrast: Math.sin(slide.t * 4 * Math.PI) * 0.5; - source: noEffect - width: grid.cw * 0.9 - height: width; - Text { text: "BrightnessContrast"; color: "white"; font.pixelSize: grid.fontSize; anchors.top: parent.top; anchors.horizontalCenter: parent.horizontalCenter; } - } - } - - Column { - Colorize { - id: colorizeEffect - hue: slide.t - source: noEffect - width: grid.cw * 0.9 - height: width; - Text { text: "Colorize"; color: "white"; font.pixelSize: grid.fontSize; anchors.top: parent.top; anchors.horizontalCenter: parent.horizontalCenter; } - } - } - - Column { - OpacityMask { - - Item { - id: maskSource; - anchors.fill: parent; - Rectangle { - anchors.fill: parent; - opacity: slide.t; - } - - Text { - text: "Qt 5" - font.pixelSize: parent.height * 0.15 - font.bold: true; - font.underline: true; - anchors.centerIn: parent; - rotation: 70 - } - visible: false; - } - - id: opacityMaskEffect - source: noEffect - maskSource: maskSource; - width: grid.cw * 0.9 - height: width; - Text { text: "OpacityMask"; color: "white"; font.pixelSize: grid.fontSize; anchors.top: parent.top; anchors.horizontalCenter: parent.horizontalCenter; } - } - } - } - -} diff --git a/basicsuite/qt5-launchpresentation/ExamplesSlide.qml b/basicsuite/qt5-launchpresentation/ExamplesSlide.qml deleted file mode 100644 index 4540532..0000000 --- a/basicsuite/qt5-launchpresentation/ExamplesSlide.qml +++ /dev/null @@ -1,89 +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 Qt 5 launch demo. -** -** $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 "presentation" - -Slide -{ - id: slide - - title: "Qt Quick 2" - - Row { - anchors.fill: parent - - spacing: (width - 320 * 3) / 2 - - Item { - width: 320 - height: 480 - clip: true - Loader { - id: load1 - } - } - - Item { - width: 320 - height: 480 - clip: true; - Loader { - id: load2 - } - } - - Loader { - id: load3 - } - } - - onVisibleChanged: { - if (visible) { - load1.source = "maroon/Maroon.qml" - load2.source = "samegame/Samegame.qml" - load3.source = "calqlatr/Calqlatr.qml" - } else { - load1.source = "" - load2.source = "" - load3.source = "" - } - } -} diff --git a/basicsuite/qt5-launchpresentation/FontSlide.qml b/basicsuite/qt5-launchpresentation/FontSlide.qml deleted file mode 100644 index ce98779..0000000 --- a/basicsuite/qt5-launchpresentation/FontSlide.qml +++ /dev/null @@ -1,98 +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 Qt 5 launch demo. -** -** $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 "presentation" - -Slide { - id: fontSlide; - title: "Qt Quick - Fonts" - writeInText: "The default font rendering in Qt Quick 2.0 uses distance fields, making\nit possible to do fully transformable text with subpixel positioning and\nsubpixel antialiasing. - -Native font rendering is also an option for applications that want to look native." - - Rectangle { - id: textRoot - anchors.centerIn: parent - anchors.horizontalCenterOffset: parent.width * 0.2 - anchors.verticalCenterOffset: parent.width * 0.1 - - width: 120 - height: 40 - - color: "transparent" - border.color: "white" - border.width: 1 - - Text { - anchors.centerIn: parent - - text: "Awesome!" - color: "white" - - font.pixelSize: 20; - - SequentialAnimation on scale { - NumberAnimation { to: 4; duration: 2508; easing.type: Easing.OutElastic } - NumberAnimation { to: 1; duration: 2508; easing.type: Easing.OutElastic } - PauseAnimation { duration: 1000 } - loops: Animation.Infinite - running: fontSlide.visible - } - - NumberAnimation on rotation { from: 0; to: 360; duration: 10000; loops: Animation.Infinite; easing.type: Easing.InOutCubic; running: fontSlide.visible } - } - } - - ShaderEffectSource { - width: textRoot.width - height: textRoot.height - sourceItem: textRoot - anchors.bottom: parent.bottom; - anchors.left: parent.left; - smooth: false - transformOrigin: Item.BottomLeft; - - visible: true - - scale: 4; - } - -} diff --git a/basicsuite/qt5-launchpresentation/NoisyGradient.qml b/basicsuite/qt5-launchpresentation/NoisyGradient.qml deleted file mode 100644 index 904f14e..0000000 --- a/basicsuite/qt5-launchpresentation/NoisyGradient.qml +++ /dev/null @@ -1,92 +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 Qt 5 launch demo. -** -** $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 - -ShaderEffect { - - id: effectRoot; - - width: 1280 - height: 720 - - property Gradient gradient: Gradient { - GradientStop { position: 0; color: "white" } - GradientStop { position: 0.4; color: "blue" } - GradientStop { position: 1.0; color: "black" } - } - - Rectangle { - id: colorTable - width: 1 - height: 128; - - gradient: effectRoot.gradient; - - layer.enabled: true - layer.smooth: true - - visible: false; - } - - property variant source: colorTable; - - blending: false; - - fragmentShader:" - #ifdef GL_ES - precision lowp float; - #endif - - uniform lowp sampler2D source; - uniform lowp float qt_Opacity; - varying highp vec2 qt_TexCoord0; - - // Noise function from: http://stackoverflow.com/questions/4200224/random-noise-functions-for-glsl - float rand(vec2 n) { - return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233))) * 43758.5453); - } - - void main() { - lowp float len = clamp(length(vec2(0.5, 0.0) - qt_TexCoord0), 0.0, 1.0); - gl_FragColor = texture2D(source, vec2(0, len)) * qt_Opacity + rand(qt_TexCoord0) * 0.05; - } -" -} diff --git a/basicsuite/qt5-launchpresentation/NormalMapGenerator.qml b/basicsuite/qt5-launchpresentation/NormalMapGenerator.qml deleted file mode 100644 index c6f55c7..0000000 --- a/basicsuite/qt5-launchpresentation/NormalMapGenerator.qml +++ /dev/null @@ -1,92 +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 Qt 5 launch demo. -** -** $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 QtGraphicalEffects 1.0 - -ShaderEffect { - id: effectRoot; - - property alias source: blurShader.source; - - GaussianBlur - { - id: blurShader; - width: source != undefined ? source.width : 0 - height: source != undefined ? source.height : 0 - samples: 8 - radius: 8 - - layer.enabled: true; - layer.smooth: true; - - visible: false; - } - - width: 256 - height: 128 - - property variant tex: blurShader; - property size pixelSize: Qt.size(1 / blurShader.width, 1 / blurShader.height); - - fragmentShader: " - #ifdef GL_ES - precision lowp float; - #endif - - uniform lowp float qt_Opacity; - uniform lowp sampler2D tex; - uniform highp vec2 pixelSize; - varying highp vec2 qt_TexCoord0; - void main() { - - lowp vec2 xps = vec2(pixelSize.x, 0.0); - vec3 vx = vec3(1, 0, texture2D(tex, qt_TexCoord0 + xps).x - texture2D(tex, qt_TexCoord0 - xps).x); - - lowp vec2 yps = vec2(0.0, pixelSize.y); - vec3 vy = vec3(0, 1, texture2D(tex, qt_TexCoord0 + yps).x - texture2D(tex, qt_TexCoord0 - yps).x); - - vec3 n = normalize(cross(vx, vy)) * 0.5 + 0.5; - - gl_FragColor = vec4(n, 1); - } - " - -} diff --git a/basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml b/basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml deleted file mode 100644 index 542ec6f..0000000 --- a/basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml +++ /dev/null @@ -1,104 +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 Qt 5 launch demo. -** -** $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 "presentation" - -Presentation { - - id: deck - - width: 1280 - height: 720 - - property bool inTransition: false; - - property variant fromSlide: Item { } - property variant toSlide: Item { } - - property int transitionTime: 500; - - SequentialAnimation { - id: forwardTransition - PropertyAction { target: deck; property: "inTransition"; value: true } - PropertyAction { target: toSlide; property: "visible"; value: true } - ParallelAnimation { - NumberAnimation { target: fromSlide; property: "opacity"; from: 1; to: 0; duration: deck.transitionTime; easing.type: Easing.OutQuart } - NumberAnimation { target: fromSlide; property: "scale"; from: 1; to: 1.1; duration: deck.transitionTime; easing.type: Easing.InOutQuart } - NumberAnimation { target: toSlide; property: "opacity"; from: 0; to: 1; duration: deck.transitionTime; easing.type: Easing.InQuart } - NumberAnimation { target: toSlide; property: "scale"; from: 0.7; to: 1; duration: deck.transitionTime; easing.type: Easing.InOutQuart } - } - PropertyAction { target: fromSlide; property: "visible"; value: false } - PropertyAction { target: fromSlide; property: "scale"; value: 1 } - PropertyAction { target: deck; property: "inTransition"; value: false } - } - SequentialAnimation { - id: backwardTransition - running: false - PropertyAction { target: deck; property: "inTransition"; value: true } - PropertyAction { target: toSlide; property: "visible"; value: true } - ParallelAnimation { - NumberAnimation { target: fromSlide; property: "opacity"; from: 1; to: 0; duration: deck.transitionTime; easing.type: Easing.OutQuart } - NumberAnimation { target: fromSlide; property: "scale"; from: 1; to: 0.7; duration: deck.transitionTime; easing.type: Easing.InOutQuart } - NumberAnimation { target: toSlide; property: "opacity"; from: 0; to: 1; duration: deck.transitionTime; easing.type: Easing.InQuart } - NumberAnimation { target: toSlide; property: "scale"; from: 1.1; to: 1; duration: deck.transitionTime; easing.type: Easing.InOutQuart } - } - PropertyAction { target: fromSlide; property: "visible"; value: false } - PropertyAction { target: fromSlide; property: "scale"; value: 1 } - PropertyAction { target: deck; property: "inTransition"; value: false } - } - - function switchSlides(from, to, forward) - { - if (deck.inTransition) - return false - - deck.fromSlide = from - deck.toSlide = to - - if (forward) - forwardTransition.running = true - else - backwardTransition.running = true - - return true - } -} diff --git a/basicsuite/qt5-launchpresentation/ParticleSlide.qml b/basicsuite/qt5-launchpresentation/ParticleSlide.qml deleted file mode 100644 index 2569a17..0000000 --- a/basicsuite/qt5-launchpresentation/ParticleSlide.qml +++ /dev/null @@ -1,86 +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 Qt 5 launch demo. -** -** $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 "presentation" - -Slide -{ - id: slide - - title: "Qt Quick - Particle System" - - Row { - anchors.fill: parent - - SequentialAnimation on opacity { - running: slide.visible; - PropertyAction { value: 0 } - PauseAnimation { duration: 2000; } - NumberAnimation { to: 1; duration: 1000 } - } - - spacing: (width - 320 * 3) / 2 - - Loader { - id: load1 - } - - Loader { - id: load2 - } - - Loader { - id: load3 - } - } - - onVisibleChanged: { - if (visible) { - load1.source = "particles/velocityfrommotion.qml" - load2.source = "particles/customemitter.qml" - load3.source = "particles/emitmask.qml" - } else { - load1.source = "" - load2.source = "" - load3.source = "" - } - } -} diff --git a/basicsuite/qt5-launchpresentation/README b/basicsuite/qt5-launchpresentation/README deleted file mode 100644 index 6b3f927..0000000 --- a/basicsuite/qt5-launchpresentation/README +++ /dev/null @@ -1,51 +0,0 @@ -This project contains quick tour of Qt 5.0, primarily focusing on its -graphical capabilities. - - - ------------------------------------------------------------------------- - Requirements: - - - Qt 5, including QtDeclarative, QtGraphicalEffects and QtMultimedia. - Commercial URL: http://qt.digia.com - Open Source URL: http://qt-project.org - - - The QML Presentation System: - URL: https://qt.gitorious.org/qt-labs/qml-presentation-system - git: git clone https://git.gitorious.org/qt-labs/qml-presentation-system.git - - - A movie file called 'bunny.mov' in the same directory as the - main.qml file. The demo will run without, but the Video slide will - not show anything. - - - ------------------------------------------------------------------------- - Running: - -To run the demo, start it using the Qt Quick 2.0 'qmlscene' tool. - -> qmlscene main.qml - -The demo includes a slightly fancy fullscreen gradient and a rather -computationally intensive drop shadow which can be too much for -low-end GPUs. On these systems, one could try to use the 'lofi' -launcher instead. - -> qmlscene main_lofi.qml - -It is possible to tweak the parameters of the main file also. - - - ------------------------------------------------------------------------- - Troubleshooting: - -For a -developer-build of Qt, the webkit plugin and QtWebProcess will -be located inside the qtwebkit module, rather than inside QtBase, the plugin -must be added to the QML import path and the path to QtWebProcess must be -added to PATH for the demo to run. - -The slides have been written for the resolution 1280x720. When resized -some of the spacing and content will look a bit odd. Any patches to -fix this will be welcomed :) \ No newline at end of file diff --git a/basicsuite/qt5-launchpresentation/ShaderSlide.qml b/basicsuite/qt5-launchpresentation/ShaderSlide.qml deleted file mode 100644 index 206cd9e..0000000 --- a/basicsuite/qt5-launchpresentation/ShaderSlide.qml +++ /dev/null @@ -1,197 +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 Qt 5 launch demo. -** -** $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 "presentation" - - -Slide { - id: slide - - title: "Qt Quick - ShaderEffect" - - writeInText: "Harness the raw power of the graphics processor. The ShaderEffect\nelement lets you write GLSL inline in your QML files." - - Image { - id: sourceItem - source: "images/ally.png" - visible: false - } - - SequentialAnimation { - id: kickoffAnimation - - // setup - PropertyAction { target: rotationAnimation; property: "running"; value: false } - PropertyAction { target: timeAnimation; property: "running"; value: false } - PropertyAction { target: shader; property: "amp"; value: 0 } - PropertyAction { target: shader; property: "xrot"; value: 0 } - PropertyAction { target: shader; property: "zrot"; value: 0 } - PropertyAction { target: shader; property: "time"; value: 0 } - PropertyAction { target: shader; property: "scale"; value: 1; } - PropertyAction { target: rotationAnimation; property: "running"; value: false } - PropertyAction { target: timeAnimation; property: "running"; value: false } - // short pause - PauseAnimation { duration: 2000 } - // get started... - ParallelAnimation { - NumberAnimation { target: shader; property: "xrot"; to: 2 * Math.PI / 8; duration: 1000; easing.type: Easing.InOutCubic } - NumberAnimation { target: shader; property: "amp"; to: 0.1; duration: 1000; easing.type: Easing.InOutCubic } -// NumberAnimation { target: shader; property: "scale"; to: 1.5; duration: 1000; easing.type: Easing.InOutCubic } - PropertyAction { target: rotationAnimation; property: "running"; value: true } - PropertyAction { target: timeAnimation; property: "running"; value: true } - } - - running: slide.visible; - } - - - ShaderEffect { - id: shader - width: height - height: parent.height - anchors.centerIn: parent; - anchors.verticalCenterOffset: slide.height * 0.1 - - blending: true - - mesh: "50x50" - - property variant size: Qt.size(width, height); - - property variant source: sourceItem; - - property real amp: 0 - - property real xrot: 0; // 2 * Math.PI / 8; -// NumberAnimation on xrot { from: 0; to: Math.PI * 2; duration: 3000; loops: Animation.Infinite } - - property real zrot: 0 - NumberAnimation on zrot { - id: rotationAnimation - from: 0; - to: Math.PI * 2; - duration: 20000; - loops: Animation.Infinite - easing.type: Easing.InOutCubic - running: false; - } - - property real time: 0 - NumberAnimation on time { - id: timeAnimation - from: 0; - to: Math.PI * 2; - duration: 3457; - loops: Animation.Infinite - running: false; - } - - vertexShader: " - attribute highp vec4 qt_Vertex; - attribute highp vec2 qt_MultiTexCoord0; - uniform highp mat4 qt_Matrix; - uniform highp float xrot; - uniform highp float zrot; - uniform highp vec2 size; - uniform highp float time; - uniform highp float amp; - varying lowp vec2 v_TexCoord; - varying lowp float v_light; - void main() { - highp float xcosa = cos(xrot); - highp float xsina = sin(xrot); - - highp mat4 xrot = mat4(1, 0, 0, 0, - 0, xcosa, xsina, 0, - 0, -xsina, xcosa, 0, - 0, 0, 0, 1); - - highp float zcosa = cos(zrot); - highp float zsina = sin(zrot); - - highp mat4 zrot = mat4(zcosa, zsina, 0, 0, - -zsina, zcosa, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1); - - highp float near = 2.; - highp float far = 6.; - highp float fmn = far - near; - - highp mat4 proj = mat4(near, 0, 0, 0, - 0, near, 0, 0, - 0, 0, -(far + near) / fmn, -1., - 0, 0, -2. * far * near / fmn, 1); - - highp mat4 model = mat4(2, 0, 0, 0, - 0, 2, 0, 0, - 0, 0, 2, 0, - 0, -.5, -4, 1); - - vec4 nLocPos = vec4(qt_Vertex.xy * 2.0 / size - 1.0, 0, 1); - nLocPos.z = cos(nLocPos.x * 5. + time) * amp; - - vec4 pos = proj * model * xrot * zrot * nLocPos; - pos = vec4(pos.xyx/pos.w, 1); - - gl_Position = qt_Matrix * vec4((pos.xy + 1.0) / 2.0 * size , 0, 1); - - v_TexCoord = qt_MultiTexCoord0; - - - v_light = dot(normalize(vec3(-sin(nLocPos.x * 5.0 + time) * 5.0 * amp, 0, -1)), vec3(0, 0, -1)); - } - " - - fragmentShader: " - uniform lowp sampler2D source; - uniform lowp float qt_Opacity; - varying highp vec2 v_TexCoord; - varying lowp float v_light; - void main() { - highp vec4 c = texture2D(source, v_TexCoord); - gl_FragColor = (vec4(pow(v_light, 16.0)) * 0.3 + c) * qt_Opacity; - } - " - - } - -} diff --git a/basicsuite/qt5-launchpresentation/SlideDeck.qml b/basicsuite/qt5-launchpresentation/SlideDeck.qml deleted file mode 100644 index d9b76ce..0000000 --- a/basicsuite/qt5-launchpresentation/SlideDeck.qml +++ /dev/null @@ -1,232 +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 Qt 5 launch demo. -** -** $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 QtGraphicalEffects 1.0 - -import "presentation" - -OpacityTransitionPresentation { - id: presentation - - width: 1280 - height: 720 - - transitionTime: 2000 - - - /******************************************************************************** - * - * Introduction - * - */ - -/* - Rectangle { - id: openingSlideBlackout - color: "black" - anchors.fill: parent; - Behavior on opacity { NumberAnimation { duration: 1000 } } - } - - onCurrentSlideChanged: { - if (currentSlide < 2) - openingSlideBlackout.opacity = 1; - else - openingSlideBlackout.opacity = 0; - } - - - Slide { - - } -*/ - - Slide { - id: introSlide - - writeInText: "The following is a quick tour of what is new in Qt 5. - -It is an application written with Qt Quick, based on Qt 5. The source code is available from: -https://qt.gitorious.org/qt-labs/qt5-launch-demo - -We hope you will enjoy Qt 5 as much as we have enjoyed creating it. - -[tap to advance]" - -// Image { -// source: "images/qt-logo.png" -// opacity: 0.4 -// z: -1 -// anchors.centerIn: parent -// } - } - - Slide { - centeredText: "Introducing" - fontScale: 2 - } - - Slide { - centeredText: "Qt 5" - fontScale: 4; - } - - - Slide { - writeInText: "OpenGL-based scene graph for Qt Quick 2.0 - providing velvet animations, particles and impressive graphical effects - -Multimedia - Audio, Video and Camera support on all major platforms - -WebKit - Full HTML 5 support from the world's most popular web engine" - - } - - Slide { - writeInText: "C++ language features - template-based connect(), C++11 support - -Connectivity and Networking - DNS lookup, improved IPv6 support - -JSON Support - Fast parser and writer, binary format support" - } - - Slide { - writeInText: "Modularization of the Qt libraries - sanitizing our codebase and simplifying deployment - -Qt Platform Abstraction - Unifying the Qt codebase across platforms, minimizing the porting effort for new platforms - -Wayland support - Wayland-compatible Qt backend and compositor framework" - } - - - WidgetsSlide { } - - - - - /******************************************************************************** - * - * Qt Quick Graphics Stack - * - */ - ExamplesSlide { } - - FontSlide { } - CanvasSlide { } - ParticleSlide { } - ShaderSlide { } - - - - /******************************************************************************** - * - * Qt Graphical Effects - * - */ - - EffectsSlide {} - -// /******************************************************************************** -// * -// * Multimedia -// * -// */ - -// Slide { -// title: "Qt Multimedia" -// writeInText: "The Qt Multmedia module is implemented on all our major platforms, including Windows, Mac OS X and Linux. - -//It contains both a C++ API for use with existing Qt Widgets based applications and a QML API for use with Qt Quick 2.0. - -//The features include recording and playback of video and audio and also use of camera. - -//It also integrates nicely with the Qt Graphical Effects module." -// } - -// VideoSlide { } -// CameraSlide { } - - - - - /******************************************************************************** - * - * WebKit - * - */ - -// WebkitSlide { } - - - - /******************************************************************************** - * - * The End - * - */ - - Slide { - title: "Links" - content: [ - "Qt Project: qt-project.org", - "Qt by Digia: qt.digia.com", - "Follow us on Twitter", - " @QtProject", - " @QtCommercial", - "Find us on Facebook:", - " Qt Project", - " Qt by Digia", - "This demo: https://qt.gitorious.org/qt-labs/qt5-launch-demo" - ]; - - Image { - z: -1 - opacity: 0.7 - source: "images/qt-logo.png" - anchors.top: parent.top - anchors.right: parent.right - anchors.rightMargin: parent.width * 0.15 - fillMode: Image.PreserveAspectFit - } - - } - -} diff --git a/basicsuite/qt5-launchpresentation/Swirl.qml b/basicsuite/qt5-launchpresentation/Swirl.qml deleted file mode 100644 index 710f04b..0000000 --- a/basicsuite/qt5-launchpresentation/Swirl.qml +++ /dev/null @@ -1,116 +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 Qt 5 launch demo. -** -** $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 - -ShaderEffect { - id: shader - - width: 400 - height: 300 - - property real speed: 1 - - property color d: Qt.rgba(Math.random() * 0.7, - Math.random() * 0.5, - Math.random() * 0.7, - Math.random() * 0.5) - property real tx - NumberAnimation on tx { from: 0; to: Math.PI * 2; duration: (Math.random() * 30 + 30) * 1000 / speed; loops: Animation.Infinite } - property real ty - NumberAnimation on ty { from: 0; to: Math.PI * 2; duration: (Math.random() * 30 + 30) * 1000 / speed; loops: Animation.Infinite } - property real tz - NumberAnimation on tz { from: 0; to: Math.PI * 2; duration: (Math.random() * 30 + 30) * 1000 / speed; loops: Animation.Infinite } - property real tw - NumberAnimation on tw { from: 0; to: Math.PI * 2; duration: (Math.random() * 30 + 30) * 1000 / speed; loops: Animation.Infinite } - - property real amplitude: height / 2 - - property variant colorTable: ShaderEffectSource { sourceItem: Rectangle { width: 4; height: 4; color: "green" } } - - fragmentShader: " - uniform lowp float qt_Opacity; - uniform lowp sampler2D colorTable; - varying highp vec2 qt_TexCoord0; - varying lowp float xx; - - void main() { - gl_FragColor = texture2D(colorTable, qt_TexCoord0); - gl_FragColor.xyz += xx * 0.1; - gl_FragColor *= qt_Opacity; - } - " - - vertexShader: " - uniform lowp vec4 d; - uniform highp float tx; - uniform highp float ty; - uniform highp float tz; - uniform highp float tw; - uniform highp float amplitude; - uniform highp mat4 qt_Matrix; - attribute highp vec4 qt_Vertex; - attribute highp vec2 qt_MultiTexCoord0; - varying highp vec2 qt_TexCoord0; - varying lowp float xx; - void main() { - highp vec4 pos = qt_Vertex; - - highp float y = sin(-tx + d.x * qt_MultiTexCoord0.x * 57. + 12. * d.y) - + sin(ty * 2.0 + d.z * qt_MultiTexCoord0.x * 21. + 5. * d.w) - + sin(tz * 4.0 + d.y * qt_MultiTexCoord0.x * 13. + 7.0 * d.x) - + sin(-ty * 8.0 + d.w * qt_MultiTexCoord0.x * 29. + 15. * d.z); - highp float x = sin(-tx + d.x * qt_MultiTexCoord0.x * 213. + 15. * d.y) - + sin(ty * 2.0 + d.z * qt_MultiTexCoord0.x * 107. + 12. * d.w) - + sin(tz * 4.0 + d.y * qt_MultiTexCoord0.x * 13. + 5. * d.x) - + sin(-ty * 8.0 + d.w * qt_MultiTexCoord0.x * 15. + 7. * d.z); - xx = x; - - pos.xy += vec2(x * sin(qt_MultiTexCoord0.x * 3.14152) * 0.3, - y * (1.0 - qt_MultiTexCoord0.y)) * amplitude; - - gl_Position = qt_Matrix * pos; - qt_TexCoord0 = qt_MultiTexCoord0; - } - " - - mesh: GridMesh { resolution: Qt.size(width / 10, 4) } - -} diff --git a/basicsuite/qt5-launchpresentation/VideoSlide.qml b/basicsuite/qt5-launchpresentation/VideoSlide.qml deleted file mode 100644 index a7aac8a..0000000 --- a/basicsuite/qt5-launchpresentation/VideoSlide.qml +++ /dev/null @@ -1,116 +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 Qt 5 launch demo. -** -** $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 QtMultimedia 5.0 -import "presentation" - -import QtGraphicalEffects 1.0 - -Slide { - - id: slide - - title: "Qt Multimedia - Video" - - Video { - id: video - - anchors.fill: parent - source: "bunny.mov" - autoLoad: true; - - layer.enabled: true; - layer.smooth: true; - layer.effect: Displace { - displacementSource: normalMap - displacement: button.pressed ? 1.0 : 0.0 - Behavior on displacement { - NumberAnimation { duration: 1000 } - } - } - } - - Rectangle { - id: theItem; - width: 256 - height: 128 - color: "transparent" - Text { - id: label - color: "white" - text: "Qt 5" -// font.family: "Times New Roman" - font.bold: true; - font.pixelSize: 80 - anchors.centerIn: parent - } - visible: false; - } - - NormalMapGenerator { - anchors.left: theItem.right - width: 256 - height: 128 - id: normalMap - source: theItem; - visible: false - } - - centeredText: video.hasVideo ? "" : "'bunny.mov' is not found or cannot be played: " + video.errorString - - onVisibleChanged: { - if (slide.visible) - video.play(); - else - video.pause(); - } - - Button { - id: button - anchors.bottom: video.bottom - anchors.horizontalCenter: video.horizontalCenter - anchors.bottomMargin: height / 2; - label: pressed ? "Remove Effect" : "Displacement Effect"; - width: height * 4; - height: parent.height * 0.1 - } - -} diff --git a/basicsuite/qt5-launchpresentation/WebKitSlideContent.qml b/basicsuite/qt5-launchpresentation/WebKitSlideContent.qml deleted file mode 100644 index ceb103f..0000000 --- a/basicsuite/qt5-launchpresentation/WebKitSlideContent.qml +++ /dev/null @@ -1,124 +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://qt.digia.com/ -** -** 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 QtQuick.Particles 2.0 -import QtWebKit 3.0 - -Item { - id: slide - - anchors.fill: parent; - - WebView { - id: browser - anchors.fill: parent - url: editor.text - - // This works around rendering bugs in webkit. CSS animations - // and webGL content gets a bad offset, but this hack - // clips it so it is not visible. Not ideal, but it kinda works - // for now. - layer.enabled: true - layer.smooth: true - } - - Rectangle { - border.width: 2 - border.color: "black" - opacity: 0.5 - color: "black" - anchors.fill: editor - anchors.margins: -editor.height * 0.2; - - radius: -anchors.margins - antialiasing: true - } - - TextInput { - id: editor - anchors.top: browser.bottom; - anchors.horizontalCenter: browser.horizontalCenter - font.pixelSize: slide.height * 0.05; - text: "http://qt.digia.com" - onAccepted: browser.reload(); - color: "white" - - onCursorPositionChanged: { - var rect = positionToRectangle(cursorPosition); - emitter.x = rect.x; - emitter.y = rect.y; - emitter.width = rect.width; - emitter.height = rect.height; - emitter.burst(10); - } - - ParticleSystem { - id: sys1 - running: slide.visible - } - - ImageParticle { - system: sys1 - source: "images/particle.png" - color: "white" - colorVariation: 0.2 - alpha: 0 - } - - Emitter { - id: emitter - system: sys1 - - enabled: false - - lifeSpan: 2000 - - velocity: PointDirection { xVariation: 30; yVariation: 30; } - acceleration: PointDirection {xVariation: 30; yVariation: 30; y: 100 } - - endSize: 0 - - size: 8 - sizeVariation: 2 - } - } - -} diff --git a/basicsuite/qt5-launchpresentation/WebkitSlide.qml b/basicsuite/qt5-launchpresentation/WebkitSlide.qml deleted file mode 100644 index 9febcdf..0000000 --- a/basicsuite/qt5-launchpresentation/WebkitSlide.qml +++ /dev/null @@ -1,59 +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://qt.digia.com/ -** -** 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 "presentation" - -Slide { - id: slide - - title: "Qt WebKit - WebView" - - Loader { - id: webkitLoader - - anchors.fill: parent - - source: "WebKitSlideContent.qml" - } - - centeredText: webkitLoader.status == Loader.Error ? "Qt WebKit not installed or otherwise failed to load" : "" -} - diff --git a/basicsuite/qt5-launchpresentation/WidgetsSlide.qml b/basicsuite/qt5-launchpresentation/WidgetsSlide.qml deleted file mode 100644 index 20f0770..0000000 --- a/basicsuite/qt5-launchpresentation/WidgetsSlide.qml +++ /dev/null @@ -1,152 +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 Qt 5 launch demo. -** -** $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 "presentation" - -Slide { - id: slide - - writeInText: "The Qt Widgets are working better than ever with accessibility\nimprovements and retina display support." - - property int slamTime: 800; - property int waitTime: 500; - - y: parent.height * 0.1 - - SequentialAnimation { - id: widgetAnimation - ScriptAction { script: { - boxesImage.opacity = 0; - mainwindowsImage.opacity = 0; - chipsWindow.opacity = 0; - stylesWindow.opacity = 0; - } - } - PauseAnimation { duration: 3000 } - ParallelAnimation { - NumberAnimation { target: boxesImage; property: "opacity"; from: 0; to: 1; duration: slide.slamTime; easing.type: Easing.OutBack } - NumberAnimation { target: boxesImage; property: "rotation"; from: 20; to: 10; duration: slide.slamTime; easing.type: Easing.OutBack } - NumberAnimation { target: boxesImage; property: "scale"; from: 2; to: 1.5; duration: slide.slamTime; easing.type: Easing.OutBack } - } - PauseAnimation { duration: slide.waitTime } - ParallelAnimation { - NumberAnimation { target: mainwindowsImage; property: "opacity"; from: 0; to: 1; duration: slide.slamTime; easing.type: Easing.OutBack } - NumberAnimation { target: mainwindowsImage; property: "rotation"; from: -35; to: -20; duration: slide.slamTime; easing.type: Easing.OutBack} - NumberAnimation { target: mainwindowsImage; property: "scale"; from: 2; to: 1.5; duration: slide.slamTime; easing.type: Easing.OutBack } - } - PauseAnimation { duration: slide.waitTime } - ParallelAnimation { - NumberAnimation { target: chipsWindow; property: "opacity"; from: 0; to: 1; duration: slide.slamTime; easing.type: Easing.InOutCubic } - NumberAnimation { target: chipsWindow; property: "rotation"; from: 10; to: 25; duration: slide.slamTime; easing.type: Easing.OutBack} - NumberAnimation { target: chipsWindow; property: "scale"; from: 2.5; to: 1.6; duration: slide.slamTime; easing.type: Easing.OutBack } - } - PauseAnimation { duration: slide.waitTime } - ParallelAnimation { - NumberAnimation { target: stylesWindow; property: "opacity"; from: 0; to: 1; duration: slide.slamTime; easing.type: Easing.InOutCubic } - NumberAnimation { target: stylesWindow; property: "rotation"; from: 30; to: -15; duration: slide.slamTime; easing.type: Easing.OutBack} - NumberAnimation { target: stylesWindow; property: "scale"; from: 1.8; to: 1.4; duration: slide.slamTime; easing.type: Easing.OutBack } - } - running: false - } - - onVisibleChanged: { - widgetAnimation.running = slide.visible; - } - - Row { - x: slide.width * 0.05 - y: slide.height * 0.65; - width: parent.width - Image { - id: boxesImage; - source: "images/widgets_boxes.png" - fillMode: Image.PreserveAspectFit - width: slide.width * .2 - antialiasing: true - opacity: 0; - y: -slide.height * 0.2 - rotation: 10 - scale: 1.5; - } - Image { - id: mainwindowsImage - source: "images/widgets_mainwindows.png" - fillMode: Image.PreserveAspectFit - width: slide.width * .2 - antialiasing: true - opacity: 0 - } - Image { - id: chipsWindow - source: "images/widgets_chips.png" - fillMode: Image.PreserveAspectFit - width: slide.width * .2 - x: slide.width * -0.05 - y: -slide.height * 0.2 - antialiasing: true - opacity: 0 - } - - Image { - id: stylesWindow - source: "images/widgets_styles_fusion.png" - fillMode: Image.PreserveAspectFit - width: slide.width * .2 - - x: slide.width * 1 - y: -slide.height * 0.1 - antialiasing: true - opacity: 0 - - Image { - source: "images/widgets_styles_macstyle.png" - fillMode: Image.PreserveAspectFit - width: slide.width * .2 - - x: parent.width * 0.3 - y: parent.width * 0.1 - rotation: -20 - antialiasing: true - } - } - } -} - diff --git a/basicsuite/qt5-launchpresentation/calqlatr/.DS_Store b/basicsuite/qt5-launchpresentation/calqlatr/.DS_Store deleted file mode 100644 index fe95b02..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/.DS_Store and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/Calqlatr.qml b/basicsuite/qt5-launchpresentation/calqlatr/Calqlatr.qml deleted file mode 100644 index 7640fbd..0000000 --- a/basicsuite/qt5-launchpresentation/calqlatr/Calqlatr.qml +++ /dev/null @@ -1,110 +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 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 "content" -import "content/calculator.js" as CalcEngine - - -Rectangle { - id: window - width: 320 - height: 480 - focus: true - color: "#272822" - - onWidthChanged: controller.reload() - - function operatorPressed(operator) { CalcEngine.operatorPressed(operator) } - function digitPressed(digit) { CalcEngine.digitPressed(digit) } - - Item { - id: pad - width: window.width * 0.58 - NumberPad { y: 10; anchors.horizontalCenter: parent.horizontalCenter } - } - - AnimationController { - id: controller - animation: ParallelAnimation { - id: anim - NumberAnimation { target: display; property: "x"; duration: 400; from: -16; to: window.width - display.width; easing.type: Easing.InOutQuad } - NumberAnimation { target: pad; property: "x"; duration: 400; from: window.width - pad.width; to: 0; easing.type: Easing.InOutQuad } - SequentialAnimation { - NumberAnimation { target: pad; property: "scale"; duration: 200; from: 1; to: 0.97; easing.type: Easing.InOutQuad } - NumberAnimation { target: pad; property: "scale"; duration: 200; from: 0.97; to: 1; easing.type: Easing.InOutQuad } - } - } - } - - Display { - id: display - x: -16 - width: window.width * 0.42 - height: parent.height - - MouseArea { - property real startX: 0 - property real oldP: 0 - property bool rewind: false - - anchors.fill: parent - onPositionChanged: { - var reverse = startX > window.width / 2 - var mx = mapToItem(window, mouse.x).x - var p = Math.abs((mx - startX) / (window.width - display.width)) - if (p < oldP) - rewind = reverse ? false : true - else - rewind = reverse ? true : false - controller.progress = reverse ? 1 - p : p - oldP = p - } - onPressed: startX = mapToItem(window, mouse.x).x - onReleased: { - if (rewind) - controller.completeToBeginning() - else - controller.completeToEnd() - } - } - } - -} diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/Button.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/Button.qml deleted file mode 100644 index c355c2d..0000000 --- a/basicsuite/qt5-launchpresentation/calqlatr/content/Button.qml +++ /dev/null @@ -1,80 +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 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 { - property alias text: textItem.text - property alias color: textItem.color - - property bool operator: false - - signal clicked - - width: 30 - height: 50 - - Text { - id: textItem - font.pixelSize: 48 - wrapMode: Text.WordWrap - lineHeight: 0.75 - color: "white" - } - -// Rectangle { -// color: "red" -// opacity: 0.2 -// anchors.fill: mouse -// } - - MouseArea { - id: mouse - anchors.fill: parent - anchors.margins: -5 - onClicked: { - //parent.clicked() - if (operator) - window.operatorPressed(parent.text) - else - window.digitPressed(parent.text) - } - } -} diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/Display.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/Display.qml deleted file mode 100644 index 3c1d9c0..0000000 --- a/basicsuite/qt5-launchpresentation/calqlatr/content/Display.qml +++ /dev/null @@ -1,124 +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 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: display - - function displayOperator(operator) - { - listView.model.append({ "operator": operator, "operand": "" }) - } - - function newLine(operator, operand) - { - listView.model.append({ "operator": operator, "operand": operand }) - } - - function appendDigit(digit) - { - if (!listView.model.count) - listView.model.append({ "operator": "", "operand": "" }) - var i = listView.model.count - 1; - listView.model.get(i).operand = listView.model.get(i).operand + digit; - } - - Item { - id: theItem - width: parent.width + 32 - height: parent.height - - Rectangle { - id: rect - x: 16 - color: "white" - height: parent.height - width: display.width - 16 - } - Image { - anchors.right: rect.left - source: "images/paper-edge-left.png" - height: parent.height - fillMode: Image.TileVertically - } - Image { - anchors.left: rect.right - source: "images/paper-edge-right.png" - height: parent.height - fillMode: Image.TileVertically - } - - Image { - source: "images/paper-grip.png" - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: parent.bottom - anchors.bottomMargin: 20 - } - - ListView { - id: listView - x: 16; y: 30 - width: display.width - height: display.height - delegate: Item { - height: 20 - width: parent.width - Text { - id: operator - x: 8 - font.pixelSize: 18 - color: "#6da43d" - text: model.operator - } - Text { - id: operand - font.pixelSize: 18 - anchors.right: parent.right - anchors.rightMargin: 26 - text: model.operand - } - } - model: ListModel { } - } - - } - -} diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/NumberPad.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/NumberPad.qml deleted file mode 100644 index 853c763..0000000 --- a/basicsuite/qt5-launchpresentation/calqlatr/content/NumberPad.qml +++ /dev/null @@ -1,69 +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 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 - -Grid { - columns: 3 - columnSpacing: 32 - rowSpacing: 16 - - Button { text: "7" } - Button { text: "8" } - Button { text: "9" } - Button { text: "4" } - Button { text: "5" } - Button { text: "6" } - Button { text: "1" } - Button { text: "2" } - Button { text: "3" } - Button { text: "0" } - Button { text: "." } - Button { text: " " } - Button { text: "±"; color: "#6da43d"; operator: true } - Button { text: "−"; color: "#6da43d"; operator: true } - Button { text: "+"; color: "#6da43d"; operator: true } - Button { text: " "; color: "#6da43d"; operator: true } - Button { text: "÷"; color: "#6da43d"; operator: true } - Button { text: "×"; color: "#6da43d"; operator: true } - Button { text: "C"; color: "#6da43d"; operator: true } - Button { text: " "; color: "#6da43d"; operator: true } - Button { text: "="; color: "#6da43d"; operator: true } -} diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/StyleLabel.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/StyleLabel.qml deleted file mode 100644 index 3bdea86..0000000 --- a/basicsuite/qt5-launchpresentation/calqlatr/content/StyleLabel.qml +++ /dev/null @@ -1,50 +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 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 - -Text { - width: 64 - font.pixelSize: 14 - font.bold: false - wrapMode: Text.WordWrap - lineHeight: 0.75 - color: "#676764" -} diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/audio/touch.wav b/basicsuite/qt5-launchpresentation/calqlatr/content/audio/touch.wav deleted file mode 100644 index 94cccb7..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/audio/touch.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/calculator.js b/basicsuite/qt5-launchpresentation/calqlatr/content/calculator.js deleted file mode 100644 index 843ef39..0000000 --- a/basicsuite/qt5-launchpresentation/calqlatr/content/calculator.js +++ /dev/null @@ -1,143 +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 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$ -** -****************************************************************************/ - - -var curVal = 0 -var memory = 0 -var lastOp = "" -var previousOperator = "" -var digits = "" - -function disabled(op) { - if (op == "." && digits.toString().search(/\./) != -1) { - return true - } else if (op == window.squareRoot && digits.toString().search(/-/) != -1) { - return true - } else { - return false - } -} - -function digitPressed(op) -{ - if (disabled(op)) - return - if (digits.toString().length >= 14) - return - if (lastOp.toString().length == 1 && ((lastOp >= "0" && lastOp <= "9") || lastOp == ".") ) { - digits = digits + op.toString() - display.appendDigit(op.toString()) - } else { - digits = op - display.appendDigit(op.toString()) - } - lastOp = op -} - -function operatorPressed(op) -{ - if (disabled(op)) - return - lastOp = op - - if (previousOperator == "+") { - digits = Number(digits.valueOf()) + Number(curVal.valueOf()) - } else if (previousOperator == "−") { - digits = Number(curVal) - Number(digits.valueOf()) - } else if (previousOperator == "×") { - digits = Number(curVal) * Number(digits.valueOf()) - } else if (previousOperator == "÷") { - digits = Number(Number(curVal) / Number(digits.valueOf())).toString() - } else if (previousOperator == "=") { - } - - if (op == "+" || op == "−" || op == "×" || op == "÷") { - previousOperator = op - curVal = digits.valueOf() - display.displayOperator(previousOperator) - return - } - - if (op == "=") { - display.newLine("=", digits.toString()) - } - - curVal = 0 - previousOperator = "" - - if (op == "1/x") { - digits = (1 / digits.valueOf()).toString() - } else if (op == "x^2") { - digits = (digits.valueOf() * digits.valueOf()).toString() - } else if (op == "Abs") { - digits = (Math.abs(digits.valueOf())).toString() - } else if (op == "Int") { - digits = (Math.floor(digits.valueOf())).toString() - } else if (op == window.plusminus) { - digits = (digits.valueOf() * -1).toString() - } else if (op == window.squareRoot) { - digits = (Math.sqrt(digits.valueOf())).toString() - } else if (op == "mc") { - memory = 0; - } else if (op == "m+") { - memory += digits.valueOf() - } else if (op == "mr") { - digits = memory.toString() - } else if (op == "m-") { - memory = digits.valueOf() - } else if (op == window.leftArrow) { - digits = digits.toString().slice(0, -1) - if (digits.length == 0) { - digits = "0" - } - } else if (op == "Off") { - Qt.quit(); - } else if (op == "C") { - digits = "0" - } else if (op == "AC") { - curVal = 0 - memory = 0 - lastOp = "" - digits ="0" - } - - -} - diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-back.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-back.png deleted file mode 100644 index 2989ee2..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-back.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-close.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-close.png deleted file mode 100644 index 3e21248..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-close.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-settings.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-settings.png deleted file mode 100644 index 98e662f..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-settings.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/logo.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/logo.png deleted file mode 100644 index 6bc6561..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/logo.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-left.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-left.png deleted file mode 100644 index ca29a3a..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-left.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-right.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-right.png deleted file mode 100644 index 7c2da7b..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-right.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-grip.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-grip.png deleted file mode 100644 index 953c408..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-grip.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-a.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-a.png deleted file mode 100644 index e08ddfa..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-a.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-b.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-b.png deleted file mode 100644 index d9aa7e3..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-b.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-green.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-green.png deleted file mode 100644 index 64dbde6..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-green.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-white.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-white.png deleted file mode 100644 index bb02b00..0000000 Binary files a/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-white.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/demo.qmlproject b/basicsuite/qt5-launchpresentation/demo.qmlproject deleted file mode 100644 index eed1c97..0000000 --- a/basicsuite/qt5-launchpresentation/demo.qmlproject +++ /dev/null @@ -1,18 +0,0 @@ -/* File generated by Qt Creator, version 2.6.1 */ - -import QmlProject 1.1 - -Project { - mainFile: "main.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "images" - } -} diff --git a/basicsuite/qt5-launchpresentation/description.txt b/basicsuite/qt5-launchpresentation/description.txt deleted file mode 100644 index 6ad8936..0000000 --- a/basicsuite/qt5-launchpresentation/description.txt +++ /dev/null @@ -1,5 +0,0 @@ -The following is a quick tour of what is new in Qt 5. It is an application written with Qt Quick, based on Qt 5, the source code is available from [1]. The demo makes use of the QML Presentation System, available from [2]. Qt5 launch demo has been modified slightly to run in this launcher. - -[1] https://qt.gitorious.org/qt-labs/qt5-launch-demo -[2] ssh://codereview.qt-project.org/qt-labs/qml-presentation-system.git - diff --git a/basicsuite/qt5-launchpresentation/images/ally.png b/basicsuite/qt5-launchpresentation/images/ally.png deleted file mode 100644 index 05b405b..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/ally.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/butterfly.png b/basicsuite/qt5-launchpresentation/images/butterfly.png deleted file mode 100644 index b8cc35c..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/butterfly.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/displace.png b/basicsuite/qt5-launchpresentation/images/displace.png deleted file mode 100644 index 440e8cb..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/displace.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/fog.png b/basicsuite/qt5-launchpresentation/images/fog.png deleted file mode 100644 index f462222..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/fog.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/particle.png b/basicsuite/qt5-launchpresentation/images/particle.png deleted file mode 100644 index 5c83896..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/particle.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/qt-logo.png b/basicsuite/qt5-launchpresentation/images/qt-logo.png deleted file mode 100644 index 7f2c662..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/qt-logo.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/widgets_boxes.png b/basicsuite/qt5-launchpresentation/images/widgets_boxes.png deleted file mode 100644 index 3115255..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/widgets_boxes.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/widgets_chips.png b/basicsuite/qt5-launchpresentation/images/widgets_chips.png deleted file mode 100644 index 4ef1664..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/widgets_chips.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/widgets_mainwindows.png b/basicsuite/qt5-launchpresentation/images/widgets_mainwindows.png deleted file mode 100644 index 5ce5416..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/widgets_mainwindows.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/widgets_styles_fusion.png b/basicsuite/qt5-launchpresentation/images/widgets_styles_fusion.png deleted file mode 100644 index d94f859..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/widgets_styles_fusion.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/images/widgets_styles_macstyle.png b/basicsuite/qt5-launchpresentation/images/widgets_styles_macstyle.png deleted file mode 100644 index 033f43b..0000000 Binary files a/basicsuite/qt5-launchpresentation/images/widgets_styles_macstyle.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/main.qml b/basicsuite/qt5-launchpresentation/main.qml deleted file mode 100644 index 627ec48..0000000 --- a/basicsuite/qt5-launchpresentation/main.qml +++ /dev/null @@ -1,63 +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 Qt 5 launch demo. -** -** $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: root - - width: 1280 - height: 720 - - property real widthFactor: root.width / root.height; - - DemoMain { - width: 720 * root.widthFactor - height: 720 - - anchors.centerIn: parent - - scale: root.height / height - - useDropShadow: false; - useSimpleGradient: true; - } - -} diff --git a/basicsuite/qt5-launchpresentation/main_hifi.qml b/basicsuite/qt5-launchpresentation/main_hifi.qml deleted file mode 100644 index 19e006b..0000000 --- a/basicsuite/qt5-launchpresentation/main_hifi.qml +++ /dev/null @@ -1,43 +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 Qt 5 launch demo. -** -** $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$ -** -****************************************************************************/ - -DemoMain { - autorun: true -} diff --git a/basicsuite/qt5-launchpresentation/maroon/.DS_Store b/basicsuite/qt5-launchpresentation/maroon/.DS_Store deleted file mode 100644 index b5c859b..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/.DS_Store and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/Maroon.qml b/basicsuite/qt5-launchpresentation/maroon/Maroon.qml deleted file mode 100644 index d7bfcb6..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/Maroon.qml +++ /dev/null @@ -1,233 +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 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 -import "content" -import "content/logic.js" as Logic - -Item { - id: root - width: 320 - height: 480 - property var gameState: Logic.newGameState(canvas); - property bool passedSplash: false - - Image { - source:"content/gfx/background.png" - anchors.bottom: view.bottom - - ParticleSystem { - id: particles - anchors.fill: parent - - ImageParticle { - id: bubble - anchors.fill: parent - source: "content/gfx/catch.png" - opacity: 0.25 - } - - Wander { - xVariance: 25; - pace: 25; - } - - Emitter { - width: parent.width - height: 150 - anchors.bottom: parent.bottom - anchors.bottomMargin: 3 - startTime: 15000 - - emitRate: 2 - lifeSpan: 15000 - - acceleration: PointDirection{ y: -6; xVariation: 2; yVariation: 2 } - - size: 24 - sizeVariation: 16 - } - } - } - - Column { - id: view - y: -(height - 480) - width: 320 - - GameOverScreen { gameCanvas: canvas } - - Item { - id: canvasArea - width: 320 - height: 480 - - Row { - height: childrenRect.height - Image { - id: wave - y: 30 - source:"content/gfx/wave.png" - } - Image { - y: 30 - source:"content/gfx/wave.png" - } - NumberAnimation on x { from: 0; to: -(wave.width); duration: 16000; loops: Animation.Infinite } - SequentialAnimation on y { - loops: Animation.Infinite - NumberAnimation { from: y - 2; to: y + 2; duration: 1600; easing.type: Easing.InOutQuad } - NumberAnimation { from: y + 2; to: y - 2; duration: 1600; easing.type: Easing.InOutQuad } - } - } - - Row { - opacity: 0.5 - Image { - id: wave2 - y: 25 - source: "content/gfx/wave.png" - } - Image { - y: 25 - source: "content/gfx/wave.png" - } - NumberAnimation on x { from: -(wave2.width); to: 0; duration: 32000; loops: Animation.Infinite } - SequentialAnimation on y { - loops: Animation.Infinite - NumberAnimation { from: y + 2; to: y - 2; duration: 1600; easing.type: Easing.InOutQuad } - NumberAnimation { from: y - 2; to: y + 2; duration: 1600; easing.type: Easing.InOutQuad } - } - } - - Image { - source: "content/gfx/sunlight.png" - opacity: 0.02 - y: 0 - anchors.horizontalCenter: parent.horizontalCenter - transformOrigin: Item.Top - SequentialAnimation on rotation { - loops: Animation.Infinite - NumberAnimation { from: -10; to: 10; duration: 8000; easing.type: Easing.InOutSine } - NumberAnimation { from: 10; to: -10; duration: 8000; easing.type: Easing.InOutSine } - } - } - - Image { - source: "content/gfx/sunlight.png" - opacity: 0.04 - y: 20 - anchors.horizontalCenter: parent.horizontalCenter - transformOrigin: Item.Top - SequentialAnimation on rotation { - loops: Animation.Infinite - NumberAnimation { from: 10; to: -10; duration: 8000; easing.type: Easing.InOutSine } - NumberAnimation { from: -10; to: 10; duration: 8000; easing.type: Easing.InOutSine } - } - } - - Image { - source: "content/gfx/grid.png" - opacity: 0.5 - } - - GameCanvas { - id: canvas - anchors.bottom: parent.bottom - anchors.bottomMargin: 20 - x: 32 - focus: true - } - - InfoBar { anchors.bottom: canvas.top; anchors.bottomMargin: 6; width: parent.width } - - //3..2..1..go - Timer { - id: countdownTimer - interval: 1000 - running: root.countdown < 5 - repeat: true - onTriggered: root.countdown++ - } - Repeater { - model: ["content/gfx/text-blank.png", "content/gfx/text-3.png", "content/gfx/text-2.png", "content/gfx/text-1.png", "content/gfx/text-go.png"] - delegate: Image { - visible: root.countdown <= index - opacity: root.countdown == index ? 0.5 : 0.1 - scale: root.countdown >= index ? 1.0 : 0.0 - source: modelData - Behavior on opacity { NumberAnimation {} } - Behavior on scale { NumberAnimation {} } - } - } - } - - NewGameScreen { - onStartButtonClicked: root.passedSplash = true - } - } - - property int countdown: 10 - Timer { - id: gameStarter - interval: 4000 - running: false - repeat: false - onTriggered: Logic.startGame(canvas); - } - - states: [ - State { - name: "gameOn"; when: gameState.gameOver == false && passedSplash - PropertyChanges { target: view; y: -(height - 960) } - StateChangeScript { script: root.countdown = 0; } - PropertyChanges { target: gameStarter; running: true } - }, - State { - name: "gameOver"; when: gameState.gameOver == true - PropertyChanges { target: view; y: 0 } - } - ] - - transitions: Transition { - NumberAnimation { properties: "x,y"; duration: 1200; easing.type: Easing.OutQuad } - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/BuildButton.qml b/basicsuite/qt5-launchpresentation/maroon/content/BuildButton.qml deleted file mode 100644 index 49641fc..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/BuildButton.qml +++ /dev/null @@ -1,90 +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 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 "logic.js" as Logic - -Item { - id: container - width: 64 - height: 64 - property alias source: img.source - property int index - property int row: 0 - property int col: 0 - property int towerType - property bool canBuild: true - property Item gameCanvas: parent.parent.parent - signal clicked() - - Image { - id: img - opacity: (canBuild && gameCanvas.coins >= Logic.towerData[towerType-1].cost) ? 1.0 : 0.4 - } - Text { - anchors.right: parent.right - font.pointSize: 14 - font.bold: true - color: "#ffffff" - text: Logic.towerData[towerType - 1].cost - } - MouseArea { - anchors.fill: parent - onClicked: { - Logic.buildTower(towerType, col, row) - container.clicked() - } - } - Image { - visible: col == index && row != 0 - source: "gfx/dialog-pointer.png" - anchors.top: parent.bottom - anchors.topMargin: 4 - anchors.horizontalCenter: parent.horizontalCenter - } - Image { - visible: col == index && row == 0 - source: "gfx/dialog-pointer.png" - rotation: 180 - anchors.bottom: parent.top - anchors.bottomMargin: 6 - anchors.horizontalCenter: parent.horizontalCenter - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/GameCanvas.qml b/basicsuite/qt5-launchpresentation/maroon/content/GameCanvas.qml deleted file mode 100644 index 5e6e963..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/GameCanvas.qml +++ /dev/null @@ -1,240 +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 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 "logic.js" as Logic -import "towers" as Towers - -Item { - id: grid - - property int squareSize: 64 - property int rows: 6 - property int cols: 4 - property Item canvas: grid - property int score: 0 - property int coins: 100 - property int lives: 3 - property int waveNumber: 0 - property int waveProgress: 0 - property var towers - property var mobs - property bool gameRunning: false - property bool gameOver: false - property bool errored: false - property string errorString: "" - - width: cols * squareSize - height: rows * squareSize - - function freshState() { - lives = 3 - coins = 100 - score = 0 - waveNumber = 0 - waveProgress = 0 - gameOver = false - gameRunning = false - towerMenu.shown = false - helpButton.comeBack(); - } - - Text { - id: errorText // Mostly for debug purposes - text: errorString - visible: errored - color: "red" - font.pixelSize: 18 - wrapMode: Text.WordWrap - width: parent.width / 1.2 - height: parent.height / 1.2 - anchors.centerIn: parent - z: 1000 - } - - Timer { - interval: 16 - running: true - repeat: true - onTriggered: Logic.tick() - } - - MouseArea { - id: ma - anchors.fill: parent - onClicked: { - if (towerMenu.visible) - towerMenu.finish() - else - towerMenu.open(mouse.x, mouse.y) - } - } - - Image { - id: towerMenu - visible: false - z: 1500 - scale: 0.9 - opacity: 0.7 - property int dragDistance: 16 - property int targetRow: 0 - property int targetCol: 0 - property bool shown: false - property bool towerExists: false - - function finish() { - shown = false - } - - function open(xp,yp) { - if (!grid.gameRunning) - return - targetRow = Logic.row(yp) - targetCol = Logic.col(xp) - if (targetRow == 0) - towerMenu.y = (targetRow + 1) * grid.squareSize - else - towerMenu.y = (targetRow - 1) * grid.squareSize - towerExists = (grid.towers[Logic.towerIdx(targetCol, targetRow)] != null) - shown = true - helpButton.goAway(); - } - - states: State { - name: "shown"; when: towerMenu.shown && !grid.gameOver - PropertyChanges { target: towerMenu; visible: true; scale: 1; opacity: 1 } - } - - transitions: Transition { - PropertyAction { property: "visible" } - NumberAnimation { properties: "opacity,scale"; duration: 500; easing.type: Easing.OutElastic } - } - - x: -32 - source: "gfx/dialog.png" - Row { - id: buttonRow - height: 100 - anchors.centerIn: parent - spacing: 8 - BuildButton { - row: towerMenu.targetRow; col: towerMenu.targetCol - anchors.verticalCenter: parent.verticalCenter - towerType: 1; index: 0 - canBuild: !towerMenu.towerExists - source: "gfx/dialog-melee.png" - onClicked: towerMenu.finish() - } - BuildButton { - row: towerMenu.targetRow; col: towerMenu.targetCol - anchors.verticalCenter: parent.verticalCenter - towerType: 2; index: 1 - canBuild: !towerMenu.towerExists - source: "gfx/dialog-shooter.png" - onClicked: towerMenu.finish() - } - BuildButton { - row: towerMenu.targetRow; col: towerMenu.targetCol - anchors.verticalCenter: parent.verticalCenter - towerType: 3; index: 2 - canBuild: !towerMenu.towerExists - source: "gfx/dialog-bomb.png" - onClicked: towerMenu.finish() - } - BuildButton { - row: towerMenu.targetRow; col: towerMenu.targetCol - anchors.verticalCenter: parent.verticalCenter - towerType: 4; index: 3 - canBuild: !towerMenu.towerExists - source: "gfx/dialog-factory.png" - onClicked: towerMenu.finish() - } - } - } - - - Keys.onPressed: { // Cheat Codes while Testing - if (event.key == Qt.Key_Up && (event.modifiers & Qt.ShiftModifier)) - grid.coins += 10; - if (event.key == Qt.Key_Left && (event.modifiers & Qt.ShiftModifier)) - grid.lives += 1; - if (event.key == Qt.Key_Down && (event.modifiers & Qt.ShiftModifier)) - Logic.gameState.waveProgress += 1000; - if (event.key == Qt.Key_Right && (event.modifiers & Qt.ShiftModifier)) - Logic.endGame(); - } - - Image { - id: helpButton - z: 1010 - source: "gfx/button-help.png" - function goAway() { - helpMA.enabled = false; - helpButton.opacity = 0; - } - function comeBack() { - helpMA.enabled = true; - helpButton.opacity = 1; - } - Behavior on opacity { NumberAnimation {} } - MouseArea { - id: helpMA - anchors.fill: parent - onClicked: {helpImage.visible = true; helpButton.visible = false;} - } - - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: parent.bottom - anchors.bottomMargin: 0 - } - - Image { - id: helpImage - z: 1010 - source: "gfx/help.png" - anchors.fill: parent - visible: false - MouseArea { - anchors.fill: parent - onClicked: helpImage.visible = false; - } - } - -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/GameOverScreen.qml b/basicsuite/qt5-launchpresentation/maroon/content/GameOverScreen.qml deleted file mode 100644 index dfb439f..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/GameOverScreen.qml +++ /dev/null @@ -1,115 +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 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 -import "logic.js" as Logic - -Item { - id: gameOverScreen - width: 320 - height: 400 - property GameCanvas gameCanvas - - Image { - id: img - source: "gfx/text-gameover.png" - anchors.centerIn: parent - } - - ParticleSystem { - anchors.fill: parent - ImageParticle { - id: cloud - source: "gfx/cloud.png" - alphaVariation: 0.25 - opacity: 0.25 - } - - Wander { - xVariance: 100; - pace: 1; - } - - Emitter { - id: cloudLeft - width: 160 - height: 160 - anchors.right: parent.left - emitRate: 0.5 - lifeSpan: 12000 - velocity: PointDirection{ x: 64; xVariation: 2; yVariation: 2 } - size: 160 - } - - Emitter { - id: cloudRight - width: 160 - height: 160 - anchors.left: parent.right - emitRate: 0.5 - lifeSpan: 12000 - velocity: PointDirection{ x: -64; xVariation: 2; yVariation: 2 } - size: 160 - } - } - - - Text { - visible: gameCanvas != undefined - text: "You saved " + gameCanvas.score + " fishes!" - anchors.top: img.bottom - anchors.topMargin: 12 - anchors.horizontalCenter: parent.horizontalCenter - font.bold: true - color: "#000000" - opacity: 0.5 - } - - Image { - source: "gfx/button-play.png" - anchors.bottom: parent.bottom - anchors.bottomMargin: 0 - MouseArea { - anchors.fill: parent - onClicked: gameCanvas.gameOver = false//This will actually trigger the state change in main.qml - } - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/InfoBar.qml b/basicsuite/qt5-launchpresentation/maroon/content/InfoBar.qml deleted file mode 100644 index 36303fc..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/InfoBar.qml +++ /dev/null @@ -1,84 +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 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 { - height: childrenRect.height - - // Display the number of lives - Row { - anchors.left: parent.left - anchors.leftMargin: 10 - spacing: 5 - Repeater { - id: rep - model: Math.min(10, canvas.lives) - delegate: Image { source: "gfx/lifes.png" } - } - } - - // Display the number of fishes saved - Row { - anchors.right: points.left - anchors.rightMargin: 20 - spacing: 5 - Image { source: "gfx/scores.png" } - Text { - text: canvas.score - font.bold: true - } - } - - // Display the number of coins - Row { - id: points - anchors.right: parent.right - anchors.rightMargin: 10 - spacing: 5 - Image { source: "gfx/points.png" } - Text { - id: pointsLabel - text: canvas.coins - font.bold: true - } - } -} - diff --git a/basicsuite/qt5-launchpresentation/maroon/content/NewGameScreen.qml b/basicsuite/qt5-launchpresentation/maroon/content/NewGameScreen.qml deleted file mode 100644 index 495e3aa..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/NewGameScreen.qml +++ /dev/null @@ -1,111 +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 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 - -// This is the first screen. -// It shows the logo and emit a startButtonClicked signal -// when the user press the "PLAY" button. - -Item { - id: newGameScreen - width: 320 - height: 480 - - signal startButtonClicked - - Image { - source: "gfx/logo.png" - anchors.top: parent.top - anchors.topMargin: 60 - } - - Image { - source: "gfx/logo-fish.png" - anchors.top: parent.top - - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { from: x + 148; to: x + 25; duration: 2000; easing.type: Easing.InOutQuad } - NumberAnimation { from: x + 25; to: x + 148; duration: 1600; easing.type: Easing.InOutQuad } - } - SequentialAnimation on anchors.topMargin { - loops: Animation.Infinite - NumberAnimation { from: 100; to: 60; duration: 1600; easing.type: Easing.InOutQuad } - NumberAnimation { from: 60; to: 100; duration: 2000; easing.type: Easing.InOutQuad } - } - } - - Image { - source: "gfx/logo-bubble.png" - anchors.top: parent.top - - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { from: x + 140; to: x + 40; duration: 2000; easing.type: Easing.InOutQuad } - NumberAnimation { from: x + 40; to: x + 140; duration: 1600; easing.type: Easing.InOutQuad } - } - SequentialAnimation on anchors.topMargin { - loops: Animation.Infinite - NumberAnimation { from: 100; to: 60; duration: 1600; easing.type: Easing.InOutQuad } - NumberAnimation { from: 60; to: 100; duration: 2000; easing.type: Easing.InOutQuad } - } - SequentialAnimation on width { - loops: Animation.Infinite - NumberAnimation { from: 140; to: 160; duration: 1000; easing.type: Easing.InOutQuad } - NumberAnimation { from: 160; to: 140; duration: 800; easing.type: Easing.InOutQuad } - } - SequentialAnimation on height { - loops: Animation.Infinite - NumberAnimation { from: 150; to: 140; duration: 800; easing.type: Easing.InOutQuad } - NumberAnimation { from: 140; to: 150; duration: 1000; easing.type: Easing.InOutQuad } - } - } - - Image { - source: "gfx/button-play.png" - anchors.bottom: parent.bottom - anchors.bottomMargin: 60 - MouseArea { - anchors.fill: parent - onClicked: newGameScreen.startButtonClicked() - } - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/SoundEffect.qml b/basicsuite/qt5-launchpresentation/maroon/content/SoundEffect.qml deleted file mode 100644 index d286a39..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/SoundEffect.qml +++ /dev/null @@ -1,53 +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 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 -//Proxies a SoundEffect if QtMultimedia is installed -Item { - id: container - property QtObject effect: Qt.createQmlObject("import QtMultimedia 5.0; SoundEffect{ source: '" + container.source + "' }", container); - property url source: "" - onSourceChanged: if (effect != null) effect.source = source; - function play() { - if (effect != null) - effect.play(); - } - -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/bomb-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/bomb-action.wav deleted file mode 100644 index b334dc1..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/bomb-action.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/catch-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/catch-action.wav deleted file mode 100644 index 3e22124..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/catch-action.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/catch.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/catch.wav deleted file mode 100644 index d3eade8..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/catch.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/currency.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/currency.wav deleted file mode 100644 index 0d9ef2c..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/currency.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/factory-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/factory-action.wav deleted file mode 100644 index a2ace6c..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/factory-action.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/melee-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/melee-action.wav deleted file mode 100644 index d325af4..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/melee-action.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/projectile-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/projectile-action.wav deleted file mode 100644 index 4e2284f..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/projectile-action.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/audio/shooter-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/shooter-action.wav deleted file mode 100644 index 3e12b94..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/audio/shooter-action.wav and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/background.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/background.png deleted file mode 100644 index d548b93..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/background.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-action.png deleted file mode 100644 index 42da5d7..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-action.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-idle.png deleted file mode 100644 index 3bd62e2..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-idle.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb.png deleted file mode 100644 index 380da7d..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-help.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-help.png deleted file mode 100644 index aecebc1..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-help.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-play.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-play.png deleted file mode 100644 index 6cdad6c..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-play.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch-action.png deleted file mode 100644 index 78ca9fe..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch-action.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch.png deleted file mode 100644 index b7620fe..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/cloud.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/cloud.png deleted file mode 100644 index d7c35f8..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/cloud.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/currency.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/currency.png deleted file mode 100644 index 1571341..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/currency.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-bomb.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-bomb.png deleted file mode 100644 index 708d916..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-bomb.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-factory.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-factory.png deleted file mode 100644 index d2e2a48..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-factory.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-melee.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-melee.png deleted file mode 100644 index 069d18d..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-melee.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-pointer.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-pointer.png deleted file mode 100644 index 9b51a09..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-pointer.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-shooter.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-shooter.png deleted file mode 100644 index af980ca..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-shooter.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog.png deleted file mode 100644 index d528ba7..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-action.png deleted file mode 100644 index 8981678..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-action.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-idle.png deleted file mode 100644 index a145582..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-idle.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory.png deleted file mode 100644 index bfb9f3f..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/grid.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/grid.png deleted file mode 100644 index b595552..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/grid.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/help.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/help.png deleted file mode 100644 index 4654e4c..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/help.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/lifes.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/lifes.png deleted file mode 100644 index 135310b..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/lifes.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-bubble.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-bubble.png deleted file mode 100644 index 136151c..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-bubble.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-fish.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-fish.png deleted file mode 100644 index c41833a..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-fish.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo.png deleted file mode 100644 index 787ac99..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-action.png deleted file mode 100644 index c53873b..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-action.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-idle.png deleted file mode 100644 index 621d9df..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-idle.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee.png deleted file mode 100644 index ab24015..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob-idle.png deleted file mode 100644 index dedacc7..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob-idle.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob.png deleted file mode 100644 index 7569c35..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/points.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/points.png deleted file mode 100644 index 1d2386d..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/points.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile-action.png deleted file mode 100644 index aa2e650..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile-action.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile.png deleted file mode 100644 index c25a0c3..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/scores.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/scores.png deleted file mode 100644 index af757fe..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/scores.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-action.png deleted file mode 100644 index 08e7e30..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-action.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-idle.png deleted file mode 100644 index 663098d..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-idle.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter.png deleted file mode 100644 index d44401e..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/sunlight.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/sunlight.png deleted file mode 100644 index d1c7042..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/sunlight.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-1.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-1.png deleted file mode 100644 index 3ea399c..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-1.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-2.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-2.png deleted file mode 100644 index 934a481..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-2.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-3.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-3.png deleted file mode 100644 index 47523f5..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-3.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-blank.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-blank.png deleted file mode 100644 index 4a687b2..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-blank.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-gameover.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-gameover.png deleted file mode 100644 index 4f53ef0..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-gameover.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-go.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-go.png deleted file mode 100644 index bfc26f7..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-go.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/gfx/wave.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/wave.png deleted file mode 100644 index f97426c..0000000 Binary files a/basicsuite/qt5-launchpresentation/maroon/content/gfx/wave.png and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/maroon/content/logic.js b/basicsuite/qt5-launchpresentation/maroon/content/logic.js deleted file mode 100644 index dd76b7e..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/logic.js +++ /dev/null @@ -1,264 +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 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$ -** -****************************************************************************/ - -.pragma library // Shared game state -.import QtQuick 2.0 as QQ - -// Game Stuff -var gameState // Local reference -function getGameState() { return gameState; } - -var towerData = [ // Name and cost, stats are in the delegate per instance - { "name": "Melee", "cost": 20 }, - { "name": "Ranged", "cost": 50 }, - { "name": "Bomb", "cost": 75 }, - { "name": "Factory", "cost": 25 } -] - -var waveBaseData = [300, 290, 280, 270, 220, 180, 160, 80, 80, 80, 30, 30, 30, 30]; -var waveData = []; - -var towerComponents = new Array(towerData.length); -var mobComponent = Qt.createComponent("mobs/MobBase.qml"); - -function endGame() -{ - gameState.gameRunning = false; - gameState.gameOver = true; - for (var i = 0; i < gameState.cols; i++) { - for (var j = 0; j < gameState.rows; j++) { - if (gameState.towers[towerIdx(i, j)]) { - gameState.towers[towerIdx(i, j)].destroy(); - gameState.towers[towerIdx(i, j)] = null; - } - } - for (var j in gameState.mobs[i]) - gameState.mobs[i][j].destroy(); - gameState.mobs[i].splice(0,gameState.mobs[i].length); //Leaves queue reusable - } -} - -function startGame(gameCanvas) -{ - waveData = new Array(); - for (var i in waveBaseData) - waveData[i] = waveBaseData[i]; - gameState.freshState(); - for (var i = 0; i < gameCanvas.cols; i++) { - for (var j = 0; j < gameCanvas.rows; j++) - gameState.towers[towerIdx(i, j)] = null; - gameState.mobs[i] = new Array(); - } - gameState.towers[towerIdx(0, 0)] = newTower(3, 0, 0);//Start with a starfish in the corner - gameState.gameRunning = true; - gameState.gameOver = false; -} - -function newGameState(gameCanvas) -{ - for (var i = 0; i < towerComponents.length; i++) { - towerComponents[i] = Qt.createComponent("towers/" + towerData[i].name + ".qml"); - if (towerComponents[i].status == QQ.Component.Error) { - gameCanvas.errored = true; - gameCanvas.errorString += "Loading Tower " + towerData[i].name + "\n" + (towerComponents[i].errorString()); - console.log(towerComponents[i].errorString()); - } - } - gameState = gameCanvas; - gameState.freshState(); - gameState.towers = new Array(gameCanvas.rows * gameCanvas.cols); - gameState.mobs = new Array(gameCanvas.cols); - return gameState; -} - -function row(y) -{ - return Math.floor(y / gameState.squareSize); -} - -function col(x) -{ - return Math.floor(x / gameState.squareSize); -} - -function towerIdx(x, y) -{ - return y + (x * gameState.rows); -} - -function newMob(col) -{ - var ret = mobComponent.createObject(gameState.canvas, - { "col" : col, - "speed" : (Math.min(2.0, 0.10 * (gameState.waveNumber + 1))), - "y" : gameState.canvas.height }); - gameState.mobs[col].push(ret); - return ret; -} - -function newTower(type, row, col) -{ - var ret = towerComponents[type].createObject(gameState.canvas); - ret.row = row; - ret.col = col; - ret.fireCounter = ret.rof; - ret.spawn(); - return ret; -} - -function buildTower(type, x, y) -{ - if (gameState.towers[towerIdx(x,y)] != null) { - if (type <= 0) { - gameState.towers[towerIdx(x,y)].sell(); - gameState.towers[towerIdx(x,y)] = null; - } - } else { - if (gameState.coins < towerData[type - 1].cost) - return; - gameState.towers[towerIdx(x, y)] = newTower(type - 1, y, x); - gameState.coins -= towerData[type - 1].cost; - } -} - -function killMob(col, mob) -{ - if (!mob) - return; - var idx = gameState.mobs[col].indexOf(mob); - if (idx == -1 || !mob.hp) - return; - mob.hp = 0; - mob.die(); - gameState.mobs[col].splice(idx,1); -} - -function killTower(row, col) -{ - var tower = gameState.towers[towerIdx(col, row)]; - if (!tower) - return; - tower.hp = 0; - tower.die(); - gameState.towers[towerIdx(col, row)] = null; -} - -function tick() -{ - if (!gameState.gameRunning) - return; - - // Spawn - gameState.waveProgress += 1; - var i = gameState.waveProgress; - var j = 0; - while (i > 0 && j < waveData.length) - i -= waveData[j++]; - if ( i == 0 ) // Spawn a mob - newMob(Math.floor(Math.random() * gameState.cols)); - if ( j == waveData.length ) { // Next Wave - gameState.waveNumber += 1; - gameState.waveProgress = 0; - var waveModifier = 10; // Constant governing how much faster the next wave is to spawn (not fish speed) - for (var k in waveData ) // Slightly faster - if (waveData[k] > waveModifier) - waveData[k] -= waveModifier; - } - - // Towers Attack - for (var j in gameState.towers) { - var tower = gameState.towers[j]; - if (tower == null) - continue; - if (tower.fireCounter > 0) { - tower.fireCounter -= 1; - continue; - } - var column = tower.col; - for (var k in gameState.mobs[column]) { - var conflict = gameState.mobs[column][k]; - if (conflict.y <= gameState.canvas.height && conflict.y + conflict.height > tower.y - && conflict.y - ((tower.row + 1) * gameState.squareSize) < gameState.squareSize * tower.range) { // In Range - tower.fire(); - tower.fireCounter = tower.rof; - conflict.hit(tower.damage); - } - } - - // Income - if (tower.income) { - gameState.coins += tower.income; - tower.fire(); - tower.fireCounter = tower.rof; - } - } - - // Mobs move - for (var i = 0; i < gameState.cols; i++) { - for (var j = 0; j < gameState.mobs[i].length; j++) { - var mob = gameState.mobs[i][j]; - var newPos = gameState.mobs[i][j].y - gameState.mobs[i][j].speed; - if (newPos < 0) { - gameState.lives -= 1; - killMob(i, mob); - if (gameState.lives <= 0) - endGame(); - continue; - } - var conflict = gameState.towers[towerIdx(i, row(newPos))]; - if (conflict != null) { - if (mob.y < conflict.y + gameState.squareSize) - gameState.mobs[i][j].y += gameState.mobs[i][j].speed * 10; // Moved inside tower, now hurry back out - if (mob.fireCounter > 0) { - mob.fireCounter--; - } else { - gameState.mobs[i][j].fire(); - conflict.hp -= mob.damage; - if (conflict.hp <= 0) - killTower(conflict.row, conflict.col); - mob.fireCounter = mob.rof; - } - } else { - gameState.mobs[i][j].y = newPos; - } - } - } - -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/mobs/MobBase.qml b/basicsuite/qt5-launchpresentation/maroon/content/mobs/MobBase.qml deleted file mode 100644 index d4ece66..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/mobs/MobBase.qml +++ /dev/null @@ -1,262 +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 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 "../logic.js" as Logic -import ".." - -Item { - id: container - property string name: "Fish" - property int col: 0 - property real hp: 3 - property real damage: 1 - property real speed: 0.25 - property int rof: 30 //In ticks - property int fireCounter: 0 - property bool dying: false - width: parent ? parent.squareSize : 0 - height: parent ? parent.squareSize : 0 - x: col * width - z: 1001 - function fire() { } - - function die() { - if (dying) - return; - dying = true; - bubble.jumpTo("burst"); - if (fishSprite.currentSprite == "front") - fishSprite.jumpTo(Math.random() > 0.5 ? "left" : "right" ); - fishSwim.start(); - Logic.gameState.score += 1; - killedSound.play(); - bubble.scale = 0.9 - destroy(350); - } - - function inked() { - if (hp > 0) - ink.jumpTo("dirty"); - } - - function hit(dmg) { - hp -= dmg; - - if (hp <= 0) - Logic.killMob(col, container); - } - - Component.onCompleted: spawnSound.play() - - SoundEffect { - id: spawnSound - source: "../audio/catch.wav" - } - SoundEffect { - id: killedSound - source: "../audio/catch-action.wav" - } - - SpriteSequence { - id: fishSprite - width: 64 - height: 64 - interpolate: false - goalSprite: "" - - Sprite { - name: "left" - source: "../gfx/mob-idle.png" - frameWidth: 64 - frameHeight: 64 - frameCount: 1 - frameDuration: 800 - frameDurationVariation: 400 - to: { "front" : 1 } - } - - Sprite { - name: "front" - source: "../gfx/mob-idle.png" - frameCount: 1 - frameX: 64 - frameWidth: 64 - frameHeight: 64 - frameDuration: 800 - frameDurationVariation: 400 - to: { "left" : 1, "right" : 1 } - } - - Sprite { - name: "right" - source: "../gfx/mob-idle.png" - frameCount: 1 - frameX: 128 - frameWidth: 64 - frameHeight: 64 - frameDuration: 800 - frameDurationVariation: 400 - to: { "front" : 1 } - } - - - Sprite { //WORKAROUND: This prevents the triggering of a rendering error which is currently under investigation. - name: "dummy" - source: "../gfx/melee-idle.png" - frameCount: 8 - frameWidth: 64 - frameHeight: 64 - frameX: 0 - frameDuration: 200 - } - - NumberAnimation on x { - id: fishSwim - running: false - property bool goingLeft: fishSprite.currentSprite == "right" - to: goingLeft ? -360 : 360 - duration: 300 - } - } - - SpriteSequence { - id: bubble - width: 64 - height: 64 - scale: 0.4 + (0.2 * hp) - interpolate: false - goalSprite: "" - - Behavior on scale { - NumberAnimation { duration: 150; easing.type: Easing.OutBack } - } - - Sprite { - name: "big" - source: "../gfx/catch.png" - frameCount: 1 - to: { "burst" : 0 } - } - - Sprite { - name: "burst" - source: "../gfx/catch-action.png" - frameCount: 3 - frameX: 64 - frameDuration: 200 - } - - Sprite { //WORKAROUND: This prevents the triggering of a rendering error which is currently under investigation. - name: "dummy" - source: "../gfx/melee-idle.png" - frameCount: 8 - frameWidth: 64 - frameHeight: 64 - frameX: 0 - frameDuration: 200 - } - SequentialAnimation on width { - loops: Animation.Infinite - NumberAnimation { from: width * 1; to: width * 1.1; duration: 800; easing.type: Easing.InOutQuad } - NumberAnimation { from: width * 1.1; to: width * 1; duration: 1000; easing.type: Easing.InOutQuad } - } - SequentialAnimation on height { - loops: Animation.Infinite - NumberAnimation { from: height * 1; to: height * 1.15; duration: 1200; easing.type: Easing.InOutQuad } - NumberAnimation { from: height * 1.15; to: height * 1; duration: 1000; easing.type: Easing.InOutQuad } - } - } - - SpriteSequence { - id: ink - width: 64 - height: 64 - scale: bubble.scale - goalSprite: "" - - Sprite { - name: "clean" - source: "../gfx/projectile-action.png" - frameCount: 1 - frameX: 0 - frameWidth: 64 - frameHeight: 64 - } - Sprite { - name: "dirty" - source: "../gfx/projectile-action.png" - frameCount: 3 - frameX: 64 - frameWidth: 64 - frameHeight: 64 - frameDuration: 150 - to: {"clean":1} - } - - Sprite { //WORKAROUND: This prevents the triggering of a rendering error which is currently under investigation. - name: "dummy" - source: "../gfx/melee-idle.png" - frameCount: 8 - frameWidth: 64 - frameHeight: 64 - frameX: 0 - frameDuration: 200 - } - SequentialAnimation on width { - loops: Animation.Infinite - NumberAnimation { from: width * 1; to: width * 1.1; duration: 800; easing.type: Easing.InOutQuad } - NumberAnimation { from: width * 1.1; to: width * 1; duration: 1000; easing.type: Easing.InOutQuad } - } - SequentialAnimation on height { - loops: Animation.Infinite - NumberAnimation { from: height * 1; to: height * 1.15; duration: 1200; easing.type: Easing.InOutQuad } - NumberAnimation { from: height * 1.15; to: height * 1; duration: 1000; easing.type: Easing.InOutQuad } - } - - } - - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { from: x; to: x - 5; duration: 900; easing.type: Easing.InOutQuad } - NumberAnimation { from: x - 5; to: x; duration: 900; easing.type: Easing.InOutQuad } - } -} - diff --git a/basicsuite/qt5-launchpresentation/maroon/content/towers/Bomb.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Bomb.qml deleted file mode 100644 index 00437f4..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/towers/Bomb.qml +++ /dev/null @@ -1,133 +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 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 "../logic.js" as Logic -import ".." - -TowerBase { - id: container - hp: 10 - range: 0.4 - rof: 10 - property real detonationRange: 2.5 - - function fire() { - sound.play() - sprite.jumpTo("shoot") - animDelay.start() - } - - function finishFire() { - var sCol = Math.max(0, col - 1) - var eCol = Math.min(Logic.gameState.cols - 1, col + 1) - var killList = new Array() - for (var i = sCol; i <= eCol; i++) { - for (var j = 0; j < Logic.gameState.mobs[i].length; j++) - if (Math.abs(Logic.gameState.mobs[i][j].y - container.y) < Logic.gameState.squareSize * detonationRange) - killList.push(Logic.gameState.mobs[i][j]) - while (killList.length > 0) - Logic.killMob(i, killList.pop()) - } - Logic.killTower(row, col); - } - - Timer { - id: animDelay - running: false - interval: shootState.frameCount * shootState.frameDuration - onTriggered: finishFire() - } - - function die() - { - destroy() // No blink, because we usually meant to die - } - - SoundEffect { - id: sound - source: "../audio/bomb-action.wav" - } - - SpriteSequence { - id: sprite - width: 64 - height: 64 - interpolate: false - goalSprite: "" - - Sprite { - name: "idle" - source: "../gfx/bomb-idle.png" - frameCount: 4 - frameDuration: 800 - } - - Sprite { - id: shootState - name: "shoot" - source: "../gfx/bomb-action.png" - frameCount: 6 - frameDuration: 155 - to: { "dying" : 1 } // So that if it takes a frame to clean up, it is on the last frame of the explosion - } - - Sprite { - name: "dying" - source: "../gfx/bomb-action.png" - frameCount: 1 - frameX: 64 * 5 - frameWidth: 64 - frameHeight: 64 - frameDuration: 155 - } - - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { from: x; to: x + 4; duration: 900; easing.type: Easing.InOutQuad } - NumberAnimation { from: x + 4; to: x; duration: 900; easing.type: Easing.InOutQuad } - } - SequentialAnimation on y { - loops: Animation.Infinite - NumberAnimation { from: y; to: y - 4; duration: 900; easing.type: Easing.InOutQuad } - NumberAnimation { from: y - 4; to: y; duration: 900; easing.type: Easing.InOutQuad } - } - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/towers/Factory.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Factory.qml deleted file mode 100644 index b34a184..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/towers/Factory.qml +++ /dev/null @@ -1,114 +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 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 "../logic.js" as Logic -import ".." - -TowerBase { - id: container - rof: 160 - income: 5 - SpriteSequence { - id: sprite - width: 64 - height: 64 - interpolate: false - goalSprite: "" - - Sprite { - name: "idle" - source: "../gfx/factory-idle.png" - frameCount: 4 - frameDuration: 200 - } - - Sprite { - name: "action" - source: "../gfx/factory-action.png" - frameCount: 4 - frameDuration: 90 - to: { "idle" : 1 } - } - - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { from: x; to: x + 4; duration: 900; easing.type: Easing.InOutQuad } - NumberAnimation { from: x + 4; to: x; duration: 900; easing.type: Easing.InOutQuad } - } - SequentialAnimation on y { - loops: Animation.Infinite - NumberAnimation { from: y; to: y - 4; duration: 900; easing.type: Easing.InOutQuad } - NumberAnimation { from: y - 4; to: y; duration: 900; easing.type: Easing.InOutQuad } - } - } - - SoundEffect { - id: actionSound - source: "../audio/factory-action.wav" - } - - function fire() { - actionSound.play() - sprite.jumpTo("action") - coinLaunch.start() - } - - function spawn() { - coin.target = Logic.gameState.mapToItem(container, 240, -32) - } - - Image { - id: coin - property var target: { "x" : 0, "y" : 0 } - source: "../gfx/currency.png" - visible: false - } - - SequentialAnimation { - id: coinLaunch - PropertyAction { target: coin; property: "visible"; value: true } - ParallelAnimation { - NumberAnimation { target: coin; property: "x"; from: 16; to: coin.target.x } - NumberAnimation { target: coin; property: "y"; from: 16; to: coin.target.y } - } - PropertyAction { target: coin; property: "visible"; value: false } - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/towers/Melee.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Melee.qml deleted file mode 100644 index 1b49a45..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/towers/Melee.qml +++ /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 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 ".." - -TowerBase { - hp: 4 - range: 0.1 - damage: 1 - rof: 40 - income: 0 - - SpriteSequence { - id: sprite - width: 64 - height: 64 - interpolate: false - goalSprite: "" - - Sprite { - name: "idle" - source: "../gfx/melee-idle.png" - frameCount: 8 - frameDuration: 250 - } - - Sprite { - name: "shoot" - source: "../gfx/melee-action.png" - frameCount: 2 - frameDuration: 200 - to: { "idle" : 1 } - } - } - - function fire() { - shootSound.play() - sprite.jumpTo("shoot") - } - - SoundEffect { - id: shootSound - source: "../audio/melee-action.wav" - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/towers/Ranged.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Ranged.qml deleted file mode 100644 index 33f3354..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/towers/Ranged.qml +++ /dev/null @@ -1,128 +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 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 "../logic.js" as Logic -import ".." - -TowerBase { - id: container - hp: 2 - range: 6 - damage: 0 // By projectile - rof: 40 - income: 0 - property var targetMob - property real realDamage: 1 - function fire() { - proj.x = 32 - proj.width / 2 - proj.y = 0 - targetMob = Logic.gameState.mobs[col][0] - projAnim.to = targetMob.y - container.y -10 - projAnim.start() - shootSound.play() - sprite.jumpTo("shoot") - } - - Image { - id: proj - y: 1000 - SequentialAnimation on y { - id: projAnim - running: false - property real to: 1000 - SmoothedAnimation { - to: projAnim.to - velocity: 400 - } - ScriptAction { - script: { - if (targetMob && targetMob.hit) { - targetMob.hit(realDamage) - targetMob.inked() - projSound.play() - } - } - } - PropertyAction { - value: 1000; - } - } - source: "../gfx/projectile.png" - } - - SoundEffect { - id: shootSound - source: "../audio/shooter-action.wav" - } - SoundEffect { - id: projSound - source: "../audio/projectile-action.wav" - } - - SpriteSequence { - id: sprite - width: 64 - height: 64 - interpolate: false - goalSprite: "" - - Sprite { - name: "idle" - source: "../gfx/shooter-idle.png" - frameCount: 4 - frameDuration: 250 - } - - Sprite { - name: "shoot" - source: "../gfx/shooter-action.png" - frameCount: 5 - frameDuration: 90 - to: { "idle" : 1 } - } - - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { from: x; to: x - 4; duration: 900; easing.type: Easing.InOutQuad } - NumberAnimation { from: x - 4; to: x; duration: 900; easing.type: Easing.InOutQuad } - } - } -} diff --git a/basicsuite/qt5-launchpresentation/maroon/content/towers/TowerBase.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/TowerBase.qml deleted file mode 100644 index 5c71cb0..0000000 --- a/basicsuite/qt5-launchpresentation/maroon/content/towers/TowerBase.qml +++ /dev/null @@ -1,72 +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 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 { - property real hp: 1 - property real range: 0 - property real damage: 0 - property int rof: 100 - property int fireCounter: 0 - property int income: 0 - property int row: 0 - property int col: 0 - - width: parent ? parent.squareSize : 0 - height: parent ? parent.squareSize : 0 - //This is how it is placed on the gameboard, do not modify/animate the X/Y/Z of a TowerBase please - x: col * width - y: row * height - z: 1000 - - function fire() { } - function spawn() { } //After all game properties are set - function die() { stdDeath.start(); destroy(1000); } - function sell() { destroy(); } - - SequentialAnimation on opacity { - id: stdDeath - running: false - loops: 2 - NumberAnimation { from: 1; to: 0; } - NumberAnimation { from: 0; to: 1; } - } -} diff --git a/basicsuite/qt5-launchpresentation/particles/customemitter.qml b/basicsuite/qt5-launchpresentation/particles/customemitter.qml deleted file mode 100644 index 270935d..0000000 --- a/basicsuite/qt5-launchpresentation/particles/customemitter.qml +++ /dev/null @@ -1,91 +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 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: 320 - height: 480 - running: true - - 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 0) { - root.currentSlide = 0; - root.slides[root.currentSlide].visible = true; - } - } - - function switchSlides(from, to, forward) { - from.visible = false - to.visible = true - return true - } - - function goToNextSlide() { - root._userNum = 0 - if (_faded) - return - if (root.currentSlide + 1 < root.slides.length) { - var from = slides[currentSlide] - var to = slides[currentSlide + 1] - if (switchSlides(from, to, true)) { - currentSlide = currentSlide + 1; - root.focus = true; - } - } - } - - function goToPreviousSlide() { - root._userNum = 0 - if (root._faded) - return - if (root.currentSlide - 1 >= 0) { - var from = slides[currentSlide] - var to = slides[currentSlide - 1] - if (switchSlides(from, to, false)) { - currentSlide = currentSlide - 1; - root.focus = true; - } - } - } - - function goToUserSlide() { - --_userNum; - if (root._faded || _userNum >= root.slides.length) - return - if (_userNum < 0) - goToNextSlide() - else if (root.currentSlide != _userNum) { - var from = slides[currentSlide] - var to = slides[_userNum] - if (switchSlides(from, to, _userNum > currentSlide)) { - currentSlide = _userNum; - root.focus = true; - } - } - } - - focus: true - - Keys.onSpacePressed: goToNextSlide() - Keys.onRightPressed: goToNextSlide() - Keys.onDownPressed: goToNextSlide() - Keys.onLeftPressed: goToPreviousSlide() - Keys.onUpPressed: goToPreviousSlide() - Keys.onEscapePressed: Qt.quit() - Keys.onPressed: { - if (event.key >= Qt.Key_0 && event.key <= Qt.Key_9) - _userNum = 10 * _userNum + (event.key - Qt.Key_0) - else { - if (event.key == Qt.Key_Return || event.key == Qt.Key_Enter) - goToUserSlide(); - else if (event.key == Qt.Key_Backspace) - goToPreviousSlide(); - else if (event.key == Qt.Key_C) - root._faded = !root._faded; - _userNum = 0; - } - } - - Rectangle { - z: 1000 - color: "black" - anchors.fill: parent - opacity: root._faded ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 250 } } - } - - MouseArea { - id: mouseArea - anchors.fill: parent - acceptedButtons: Qt.LeftButton | Qt.RightButton - onClicked: { - if (mouse.button == Qt.RightButton) - goToPreviousSlide() - else - goToNextSlide() - } - onPressAndHold: goToPreviousSlide(); //A back mechanism for touch only devices - } - - Window { - id: notesWindow; - width: 400 - height: 300 - - title: "QML Presentation: Notes" - visible: root.showNotes - - Text { - anchors.fill: parent - anchors.margins: parent.height * 0.1; - - font.pixelSize: 16 - wrapMode: Text.WordWrap - - property string notes: root.slides[root.currentSlide].notes; - text: notes == "" ? "Slide has no notes..." : notes; - font.italic: notes == ""; - } - } -} diff --git a/basicsuite/qt5-launchpresentation/presentation/Slide.qml b/basicsuite/qt5-launchpresentation/presentation/Slide.qml deleted file mode 100644 index 339298d..0000000 --- a/basicsuite/qt5-launchpresentation/presentation/Slide.qml +++ /dev/null @@ -1,186 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QML Presentation System. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Digia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -import QtQuick 2.0 - -Item { - /* - Slides can only be instantiated as a direct child of a Presentation {} as they rely on - several properties there. - */ - - id: slide - - property bool isSlide: true; - - property string title; - property variant content: [] - property string centeredText - property string writeInText; - property string notes; - - property real fontSize: parent.height * 0.05 - property real fontScale: 1 - - property real baseFontSize: fontSize * fontScale - property real titleFontSize: fontSize * 1.2 * fontScale - property real bulletSpacing: 1 - - property real contentWidth: width - - // Define the slide to be the "content area" - x: parent.width * 0.05 - y: parent.height * 0.2 - width: parent.width * 0.9 - height: parent.height * 0.7 - - property real masterWidth: parent.width - property real masterHeight: parent.height - - property color titleColor: parent.titleColor; - property color textColor: parent.textColor; - property string fontFamily: parent.fontFamily; - - visible: false - - Text { - id: titleText - font.pixelSize: titleFontSize - text: title; - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: parent.top - anchors.bottomMargin: parent.fontSize * 1.5 - font.bold: true; - font.family: slide.fontFamily - color: slide.titleColor - horizontalAlignment: Text.Center - z: 1 - } - - Text { - id: centeredId - width: parent.width - anchors.centerIn: parent - anchors.verticalCenterOffset: - parent.y / 3 - text: centeredText - horizontalAlignment: Text.Center - font.pixelSize: baseFontSize - font.family: slide.fontFamily - color: slide.textColor - wrapMode: Text.Wrap - } - - Text { - id: writeInTextId - property int length; - font.family: slide.fontFamily - font.pixelSize: baseFontSize - color: slide.textColor - - anchors.fill: parent; - wrapMode: Text.Wrap - - text: slide.writeInText.substring(0, length); - - NumberAnimation on length { - from: 0; - to: slide.writeInText.length; - duration: slide.writeInText.length * 30; - running: slide.visible && parent.visible && slide.writeInText.length > 0 - } - - visible: slide.writeInText != undefined; - } - - - Column { - id: contentId - anchors.fill: parent - - Repeater { - model: content.length - - Row { - id: row - - function decideIndentLevel(s) { return s.charAt(0) == " " ? 1 + decideIndentLevel(s.substring(1)) : 0 } - property int indentLevel: decideIndentLevel(content[index]) - property int nextIndentLevel: index < content.length - 1 ? decideIndentLevel(content[index+1]) : 0 - property real indentFactor: (10 - row.indentLevel * 2) / 10; - - height: text.height + (nextIndentLevel == 0 ? 1 : 0.3) * slide.baseFontSize * slide.bulletSpacing - x: slide.baseFontSize * indentLevel - - Rectangle { - id: dot - y: baseFontSize * row.indentFactor / 2 - width: baseFontSize / 4 - height: baseFontSize / 4 - color: slide.textColor - radius: width / 2 - smooth: true - opacity: text.text.length == 0 ? 0 : 1 - } - - Rectangle { - id: space - width: dot.width * 2 - height: 1 - color: "#00ffffff" - } - - Text { - id: text - width: slide.contentWidth - parent.x - dot.width - space.width - font.pixelSize: baseFontSize * row.indentFactor - text: content[index] - textFormat: Text.PlainText - wrapMode: Text.WordWrap - color: slide.textColor - horizontalAlignment: Text.AlignLeft - font.family: slide.fontFamily - } - } - } - } - -} diff --git a/basicsuite/qt5-launchpresentation/presentation/SlideCounter.qml b/basicsuite/qt5-launchpresentation/presentation/SlideCounter.qml deleted file mode 100644 index 06e7542..0000000 --- a/basicsuite/qt5-launchpresentation/presentation/SlideCounter.qml +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QML Presentation System. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Digia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -import QtQuick 2.0 - -Text { - id: counter; - - property real fontSize: parent.height * 0.05 - property real fontScale: 0.5; - property color textColor: parent.textColor != undefined ? parent.textColor : "black" - property string fontFamily: parent.fontFamily != undefined ? parent.fontFamily : "Helvetica" - - text: "# " + (parent.currentSlide + 1) + " / " + parent.slides.length; - color: counter.textColor; - font.family: counter.fontFamily; - font.pixelSize: fontSize * fontScale; - - anchors.right: parent.right; - anchors.bottom: parent.bottom; - anchors.margins: font.pixelSize; -} diff --git a/basicsuite/qt5-launchpresentation/preview_l.jpg b/basicsuite/qt5-launchpresentation/preview_l.jpg deleted file mode 100644 index 8decd76..0000000 Binary files a/basicsuite/qt5-launchpresentation/preview_l.jpg and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro b/basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro deleted file mode 100644 index c3aba46..0000000 --- a/basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro +++ /dev/null @@ -1,18 +0,0 @@ -TARGET = qt5-launchpresentation - -include(../shared/shared.pri) -b2qtdemo_deploy_defaults() - -content.files = \ - *.qml \ - calqlatr \ - maroon \ - particles \ - presentation \ - samegame \ - images -content.path = $$DESTPATH - -OTHER_FILES += $${content.files} - -INSTALLS += target content \ No newline at end of file diff --git a/basicsuite/qt5-launchpresentation/samegame/.DS_Store b/basicsuite/qt5-launchpresentation/samegame/.DS_Store deleted file mode 100644 index 9805454..0000000 Binary files a/basicsuite/qt5-launchpresentation/samegame/.DS_Store and /dev/null differ diff --git a/basicsuite/qt5-launchpresentation/samegame/Samegame.qml b/basicsuite/qt5-launchpresentation/samegame/Samegame.qml deleted file mode 100644 index 2b0b82a..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/Samegame.qml +++ /dev/null @@ -1,371 +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 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 -import "content/samegame.js" as Logic -import "settings.js" as Settings -import "content" - -Rectangle { - id: root - width: 320; height: 480 - property int acc: 0 - - - function loadPuzzle() { - if (gameCanvas.mode != "") - Logic.cleanUp(); - Logic.startNewGame(gameCanvas,"puzzle","levels/level"+acc+".qml") - } - function nextPuzzle() { - acc = (acc + 1) % 10; - loadPuzzle(); - } - Timer { - id: gameOverTimer - interval: 1500 - running : gameCanvas.gameOver && gameCanvas.mode == "puzzle" //mode will be reset by cleanUp(); - repeat : false - onTriggered: { - Logic.cleanUp(); - nextPuzzle(); - } - } - - Image { - source: "content/gfx/background.png" - anchors.fill: parent - } - - GameArea { - id: gameCanvas - z: 1 - y: Settings.headerHeight - - width: parent.width - height: parent.height - Settings.headerHeight - Settings.footerHeight - - backgroundVisible: root.state == "in-game" - onModeChanged: if (gameCanvas.mode != "puzzle") puzzleWon = false; //UI has stricter constraints on this variable than the game does - Age { - groups: ["redspots", "greenspots", "bluespots", "yellowspots"] - enabled: root.state == "" - system: gameCanvas.ps - } - - onPuzzleLost: acc--;//So that nextPuzzle() reloads the current one - - } - - Item { - id: menu - z: 2 - width: parent.width; - anchors.top: parent.top - anchors.bottom: bottomBar.top - - LogoAnimation { - x: 64 - y: Settings.headerHeight - particleSystem: gameCanvas.ps - running: root.state == "" - } - Row { - x: 112 - y: 20 - Image { source: "content/gfx/logo-a.png" } - Image { source: "content/gfx/logo-m.png" } - Image { source: "content/gfx/logo-e.png" } - } - - Column { - y: 100 + 40 - spacing: Settings.menuButtonSpacing - - Button { - width: root.width - rotatedButton: true - imgSrc: "content/gfx/but-game-1.png" - onClicked: { - if (root.state == "in-game") - return //Prevent double clicking - root.state = "in-game" - gameCanvas.blockFile = "Block.qml" - gameCanvas.background = "gfx/background.png" - arcadeTimer.start(); - } - //Emitted particles don't fade out, because ImageParticle is on the GameArea - system: gameCanvas.ps - group: "green" - Timer { - id: arcadeTimer - interval: Settings.menuDelay - running : false - repeat : false - onTriggered: Logic.startNewGame(gameCanvas) - } - } - - Button { - width: root.width - rotatedButton: true - imgSrc: "content/gfx/but-game-2.png" - onClicked: { - if (root.state == "in-game") - return - root.state = "in-game" - gameCanvas.blockFile = "Block.qml" - gameCanvas.background = "gfx/background.png" - twopTimer.start(); - } - system: gameCanvas.ps - group: "green" - Timer { - id: twopTimer - interval: Settings.menuDelay - running : false - repeat : false - onTriggered: Logic.startNewGame(gameCanvas, "multiplayer") - } - } - - Button { - width: root.width - rotatedButton: true - imgSrc: "content/gfx/but-game-3.png" - onClicked: { - if (root.state == "in-game") - return - root.state = "in-game" - gameCanvas.blockFile = "SimpleBlock.qml" - gameCanvas.background = "gfx/background.png" - endlessTimer.start(); - } - system: gameCanvas.ps - group: "blue" - Timer { - id: endlessTimer - interval: Settings.menuDelay - running : false - repeat : false - onTriggered: Logic.startNewGame(gameCanvas, "endless") - } - } - - Button { - width: root.width - rotatedButton: true - imgSrc: "content/gfx/but-game-4.png" - group: "yellow" - onClicked: { - if (root.state == "in-game") - return - root.state = "in-game" - gameCanvas.blockFile = "PuzzleBlock.qml" - gameCanvas.background = "gfx/background.png" - puzzleTimer.start(); - } - Timer { - id: puzzleTimer - interval: Settings.menuDelay - running : false - repeat : false - onTriggered: loadPuzzle(); - } - system: gameCanvas.ps - } - } - } - - Image { - id: scoreBar - source: "content/gfx/bar.png" - width: parent.width - z: 6 - y: -Settings.headerHeight - height: Settings.headerHeight - Behavior on opacity { NumberAnimation {} } - SamegameText { - id: arcadeScore - anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top} - text: 'P1: ' + gameCanvas.score - font.pixelSize: Settings.fontPixelSize - textFormat: Text.StyledText - color: "white" - opacity: gameCanvas.mode == "arcade" ? 1 : 0 - Behavior on opacity { NumberAnimation {} } - } - SamegameText { - id: arcadeHighScore - anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top} - text: 'Highscore: ' + gameCanvas.highScore - opacity: gameCanvas.mode == "arcade" ? 1 : 0 - } - SamegameText { - id: p1Score - anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top} - text: 'P1: ' + gameCanvas.score - opacity: gameCanvas.mode == "multiplayer" ? 1 : 0 - } - SamegameText { - id: p2Score - anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top} - text: 'P2: ' + gameCanvas.score2 - opacity: gameCanvas.mode == "multiplayer" ? 1 : 0 - rotation: 180 - } - SamegameText { - id: puzzleMoves - anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top} - text: 'Moves: ' + gameCanvas.moves - opacity: gameCanvas.mode == "puzzle" ? 1 : 0 - } - SamegameText { - Image { - source: "content/gfx/icon-time.png" - x: -20 - } - id: puzzleTime - anchors { topMargin: 3; top: parent.top; horizontalCenter: parent.horizontalCenter; horizontalCenterOffset: 20} - text: "00:00" - opacity: gameCanvas.mode == "puzzle" ? 1 : 0 - Timer { - interval: 1000 - repeat: true - running: gameCanvas.mode == "puzzle" && !gameCanvas.gameOver - onTriggered: { - var elapsed = Math.floor((new Date() - Logic.gameDuration)/ 1000.0); - var mins = Math.floor(elapsed/60.0); - var secs = (elapsed % 60); - puzzleTime.text = (mins < 10 ? "0" : "") + mins + ":" + (secs < 10 ? "0" : "") + secs; - } - } - } - SamegameText { - id: puzzleScore - anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top} - text: 'Score: ' + gameCanvas.score - opacity: gameCanvas.mode == "puzzle" ? 1 : 0 - } - } - - Image { - id: bottomBar - width: parent.width - height: Settings.footerHeight - source: "content/gfx/bar.png" - y: parent.height - Settings.footerHeight; - z: 2 - Button { - id: quitButton - height: Settings.toolButtonHeight - imgSrc: "content/gfx/but-quit.png" - onClicked: {Qt.quit(); } - anchors { left: parent.left; verticalCenter: parent.verticalCenter; leftMargin: 11 } - } - Button { - id: menuButton - height: Settings.toolButtonHeight - imgSrc: "content/gfx/but-menu.png" - visible: (root.state == "in-game"); - onClicked: {root.state = ""; Logic.cleanUp(); gameCanvas.mode = ""} - anchors { left: quitButton.right; verticalCenter: parent.verticalCenter; leftMargin: 0 } - } - Button { - id: againButton - height: Settings.toolButtonHeight - imgSrc: "content/gfx/but-game-new.png" - visible: (root.state == "in-game"); - opacity: gameCanvas.gameOver && (gameCanvas.mode == "arcade" || gameCanvas.mode == "multiplayer") - Behavior on opacity{ NumberAnimation {} } - onClicked: {if (gameCanvas.gameOver) { Logic.startNewGame(gameCanvas, gameCanvas.mode);}} - anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 11 } - } - Button { - id: nextButton - height: Settings.toolButtonHeight - imgSrc: "content/gfx/but-puzzle-next.png" - visible: (root.state == "in-game") && gameCanvas.mode == "puzzle" && gameCanvas.puzzleWon - opacity: gameCanvas.puzzleWon ? 1 : 0 - Behavior on opacity{ NumberAnimation {} } - onClicked: {if (gameCanvas.puzzleWon) nextPuzzle();} - anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 11 } - } - } - - Connections { - target: root - onStateChanged: stateChangeAnim.running = true - } - SequentialAnimation { - id: stateChangeAnim - ParallelAnimation { - NumberAnimation { target: bottomBar; property: "y"; to: root.height; duration: Settings.menuDelay/2; easing.type: Easing.OutQuad } - NumberAnimation { target: scoreBar; property: "y"; to: -Settings.headerHeight; duration: Settings.menuDelay/2; easing.type: Easing.OutQuad } - } - ParallelAnimation { - NumberAnimation { target: bottomBar; property: "y"; to: root.height - Settings.footerHeight; duration: Settings.menuDelay/2; easing.type: Easing.OutBounce} - NumberAnimation { target: scoreBar; property: "y"; to: root.state == "" ? -Settings.headerHeight : 0; duration: Settings.menuDelay/2; easing.type: Easing.OutBounce} - } - } - - states: [ - State { - name: "in-game" - PropertyChanges { - target: menu - opacity: 0 - visible: false - } - } - ] - - transitions: [ - Transition { - NumberAnimation {properties: "x,y,opacity"} - } - ] - - //"Debug mode" - focus: true - Keys.onAsteriskPressed: Logic.nuke(); - Keys.onSpacePressed: gameCanvas.puzzleWon = true; -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/Block.qml b/basicsuite/qt5-launchpresentation/samegame/content/Block.qml deleted file mode 100644 index 85f2e27..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/Block.qml +++ /dev/null @@ -1,114 +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 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 - -Item { - id: block - property bool dying: false - property bool spawned: false - property int type: 0 - property ParticleSystem particleSystem - - Behavior on x { - enabled: spawned; - SpringAnimation{ spring: 2; damping: 0.2 } - } - Behavior on y { - SpringAnimation{ spring: 2; damping: 0.2 } - } - - Image { - id: img - source: { - if (type == 0){ - "gfx/red.png"; - } else if (type == 1) { - "gfx/blue.png"; - } else if (type == 2) { - "gfx/green.png"; - } else { - "gfx/yellow.png"; - } - } - opacity: 0 - Behavior on opacity { NumberAnimation { duration: 200 } } - anchors.fill: parent - } - - //Foreground particles - BlockEmitter { - id: particles - system: particleSystem - group: { - if (type == 0){ - "red"; - } else if (type == 1) { - "blue"; - } else if (type == 2) { - "green"; - } else { - "yellow"; - } - } - anchors.fill: parent - } - - //Paint particles on the background - PaintEmitter { - id: particles2 - system: particleSystem - } - - states: [ - State { - name: "AliveState"; when: spawned == true && dying == false - PropertyChanges { target: img; opacity: 1 } - }, - - State { - name: "DeathState"; when: dying == true - StateChangeScript { script: {particleSystem.paused = false; particles.pulse(100); particles2.pulse(100);} } - PropertyChanges { target: img; opacity: 0 } - StateChangeScript { script: block.destroy(1000); } - } - ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/BlockEmitter.qml b/basicsuite/qt5-launchpresentation/samegame/content/BlockEmitter.qml deleted file mode 100644 index 7dad509..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/BlockEmitter.qml +++ /dev/null @@ -1,57 +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 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 - -import "../settings.js" as Settings - -Emitter { - property Item block: parent - velocity: TargetDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -40; magnitudeVariation: 40} - acceleration: TargetDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -100;} - shape: EllipseShape{fill:true} - enabled: false; - lifeSpan: 700; lifeSpanVariation: 100 - emitRate: 1000 - maximumEmitted: 100 //only fires 0.1s bursts (still 2x old number) - size: Settings.blockSize * 0.85 - endSize: Settings.blockSize * 0.85 /2 -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/Button.qml b/basicsuite/qt5-launchpresentation/samegame/content/Button.qml deleted file mode 100644 index aab21ec..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/Button.qml +++ /dev/null @@ -1,70 +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 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 - -Item { - property alias imgSrc: image.source - property alias system: emitter.system - property alias group: emitter.group - signal clicked - property bool rotatedButton: false - - width: image.width - height: image.sourceSize.height - Image { - id: image - height: parent.height - width: height/sourceSize.height * sourceSize.width - - anchors.horizontalCenter: parent.horizontalCenter - rotation: rotatedButton ? ((Math.random() * 3 + 2) * (Math.random() <= 0.5 ? -1 : 1)) : 0 - MenuEmitter { - id: emitter - anchors.fill: parent - //shape: MaskShape {source: image.source} - } - } - MouseArea { - anchors.fill: parent - onClicked: {parent.clicked(); emitter.burst(400);} - } -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/GameArea.qml b/basicsuite/qt5-launchpresentation/samegame/content/GameArea.qml deleted file mode 100644 index f3ca98d..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/GameArea.qml +++ /dev/null @@ -1,226 +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 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 -import "samegame.js" as Logic - -Item { - id: gameCanvas - property bool gameOver: true - property int score: 0 - property int highScore: 0 - property int moves: 0 - property string mode: "" - property ParticleSystem ps: particleSystem - //For easy theming - property alias backgroundVisible: bg.visible - property string background: "gfx/background.png" - property string blockFile: "Block.qml" - onBlockFileChanged: Logic.changeBlock(blockFile); - property alias particlePack: auxLoader.source - //For multiplayer - property int score2: 0 - property int curTurn: 1 - property bool autoTurnChange: false - signal swapPlayers - property bool swapping: false - //onSwapPlayers: if (autoTurnChange) Logic.turnChange();//Now implemented below - //For puzzle - property url level - property bool puzzleWon: false - signal puzzleLost //Since root is tracking the puzzle progress - function showPuzzleEnd (won) { - if (won) { - smokeParticle.color = Qt.rgba(0,1,0,0); - puzzleWin.play(); - } else { - smokeParticle.color = Qt.rgba(1,0,0,0); - puzzleFail.play(); - puzzleLost(); - } - } - function showPuzzleGoal (str) { - puzzleTextBubble.opacity = 1; - puzzleTextLabel.text = str; - } - Image { - id: bg - z: -1 - anchors.fill: parent - source: background; - fillMode: Image.PreserveAspectCrop - } - - MouseArea { - anchors.fill: parent; onClicked: { - if (puzzleTextBubble.opacity == 1) { - puzzleTextBubble.opacity = 0; - Logic.finishLoadingMap(); - } else if (!swapping) { - Logic.handleClick(mouse.x,mouse.y); - } - } - } - - Image { - id: highScoreTextBubble - opacity: mode == "arcade" && gameOver && gameCanvas.score == gameCanvas.highScore ? 1 : 0 - Behavior on opacity { NumberAnimation {} } - anchors.centerIn: parent - z: 10 - source: "gfx/bubble-highscore.png" - Image { - anchors.centerIn: parent - source: "gfx/text-highscore-new.png" - rotation: -10 - } - } - - Image { - id: puzzleTextBubble - anchors.centerIn: parent - opacity: 0 - Behavior on opacity { NumberAnimation {} } - z: 10 - source: "gfx/bubble-puzzle.png" - Connections { - target: gameCanvas - onModeChanged: if (mode != "puzzle" && puzzleTextBubble.opacity > 0) puzzleTextBubble.opacity = 0; - } - Text { - id: puzzleTextLabel - width: parent.width - 24 - anchors.centerIn: parent - horizontalAlignment: Text.AlignHCenter - color: "white" - font.pixelSize: 24 - font.bold: true - wrapMode: Text.WordWrap - } - } - onModeChanged: { - p1WonImg.opacity = 0; - p2WonImg.opacity = 0; - } - SmokeText { id: puzzleWin; source: "gfx/icon-ok.png"; system: particleSystem } - SmokeText { id: puzzleFail; source: "gfx/icon-fail.png"; system: particleSystem } - - onSwapPlayers: { - smokeParticle.color = "yellow" - Logic.turnChange(); - if (curTurn == 1) { - p1Text.play(); - } else { - p2Text.play(); - } - clickDelay.running = true; - } - SequentialAnimation { - id: clickDelay - ScriptAction { script: gameCanvas.swapping = true; } - PauseAnimation { duration: 750 } - ScriptAction { script: gameCanvas.swapping = false; } - } - - SmokeText { - id: p1Text; source: "gfx/text-p1-go.png"; - system: particleSystem; playerNum: 1 - opacity: p1WonImg.opacity + p2WonImg.opacity > 0 ? 0 : 1 - } - - SmokeText { - id: p2Text; source: "gfx/text-p2-go.png"; - system: particleSystem; playerNum: 2 - opacity: p1WonImg.opacity + p2WonImg.opacity > 0 ? 0 : 1 - } - - onGameOverChanged: { - if (gameCanvas.mode == "multiplayer") { - if (gameCanvas.score >= gameCanvas.score2) { - p1WonImg.opacity = 1; - } else { - p2WonImg.opacity = 1; - } - } - } - Image { - id: p1WonImg - source: "gfx/text-p1-won.png" - anchors.centerIn: parent - opacity: 0 - Behavior on opacity { NumberAnimation {} } - z: 10 - } - Image { - id: p2WonImg - source: "gfx/text-p2-won.png" - anchors.centerIn: parent - opacity: 0 - Behavior on opacity { NumberAnimation {} } - z: 10 - } - - ParticleSystem{ - id: particleSystem; - anchors.fill: parent - z: 5 - ImageParticle { - id: smokeParticle - groups: ["smoke"] - source: "gfx/particle-smoke.png" - alpha: 0.1 - alphaVariation: 0.1 - color: "yellow" - } - Loader { - id: auxLoader - anchors.fill: parent - source: "PrimaryPack.qml" - onItemChanged: { - if (item && "particleSystem" in item) - item.particleSystem = particleSystem - if (item && "gameArea" in item) - item.gameArea = gameCanvas - } - } - } -} - diff --git a/basicsuite/qt5-launchpresentation/samegame/content/LogoAnimation.qml b/basicsuite/qt5-launchpresentation/samegame/content/LogoAnimation.qml deleted file mode 100644 index c879893..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/LogoAnimation.qml +++ /dev/null @@ -1,102 +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 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 - -Item { - id: container //Positioned where the 48x48 S/G should be - property alias running: mainAnim.running - property ParticleSystem particleSystem - property int dur: 500 - signal boomTime - Image { - id: s1 - source: "gfx/logo-s.png" - y: 0 - } - Image { - id: g1 - source: "gfx/logo-g.png" - y: -128 - } - Column { - Repeater { - model: 2 - Item { - width: 48 - height: 48 - BlockEmitter { - id: emitter - anchors.fill: parent - group: "red" - system: particleSystem - Connections { - target: container - onBoomTime: emitter.pulse(100); - } - } - } - } - } - SequentialAnimation { - id: mainAnim - running: true - loops: -1 - PropertyAction { target: g1; property: "y"; value: -128} - PropertyAction { target: g1; property: "opacity"; value: 1} - PropertyAction { target: s1; property: "y"; value: 0} - PropertyAction { target: s1; property: "opacity"; value: 1} - NumberAnimation { target: g1; property: "y"; from: -96; to: -48; duration: dur} - ParallelAnimation { - NumberAnimation { target: g1; property: "y"; from: -48; to: 0; duration: dur} - NumberAnimation { target: s1; property: "y"; from: 0; to: 48; duration: dur } - } - PauseAnimation { duration: dur } - ScriptAction { script: container.boomTime(); } - ParallelAnimation { - NumberAnimation { target: g1; property: "opacity"; to: 0; duration: dur } - NumberAnimation { target: s1; property: "opacity"; to: 0; duration: dur } - } - PropertyAction { target: s1; property: "y"; value: -128} - PropertyAction { target: s1; property: "opacity"; value: 1} - NumberAnimation { target: s1; property: "y"; from: -96; to: 0; duration: dur * 2} - } -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/MenuEmitter.qml b/basicsuite/qt5-launchpresentation/samegame/content/MenuEmitter.qml deleted file mode 100644 index 16c7660..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/MenuEmitter.qml +++ /dev/null @@ -1,53 +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 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 - -Emitter { - anchors.fill: parent - velocity: AngleDirection{angleVariation: 360; magnitude: 140; magnitudeVariation: 40} - enabled: false; - lifeSpan: 500; - emitRate: 1 - size: 28 - endSize: 14 - group: "yellow" -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/PaintEmitter.qml b/basicsuite/qt5-launchpresentation/samegame/content/PaintEmitter.qml deleted file mode 100644 index 4a67c4a..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/PaintEmitter.qml +++ /dev/null @@ -1,98 +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 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 -import "../settings.js" as Settings - -Emitter { - property Item block: parent - anchors.fill: parent - shape: EllipseShape { fill: true } - group: { - if (block.type == 0){ - "redspots"; - } else if (block.type == 1) { - "bluespots"; - } else if (block.type == 2) { - "greenspots"; - } else { - "yellowspots"; - } - } - size: Settings.blockSize * 2 - endSize: Settings.blockSize/2 - lifeSpan: 30000 - enabled: false - emitRate: 60 - maximumEmitted: 60 - velocity: PointDirection{ y: 4; yVariation: 4 } - /* Possibly better, but dependent on gerrit change,28212 - property real mainIntensity: 0.8 - property real subIntensity: 0.1 - property real colorVariation: 0.005 - onEmitParticles: {//One group, many colors, for better stacking - for (var i=0; i
Clear in three moves..." - startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , - 0 , 0 , 0 , 0 , 0 , 1 , 1 , 2 , 1 , 1 , - 0 , 0 , 0 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , - 0 , 1 , 1 , 3 , 3 , 3 , 1 , 3 , 1 , 1 , - 1 , 2 , 3 , 3 , 1 , 1 , 3 , 3 , 3 , 3 , - 1 , 3 , 3 , 2 , 3 , 3 , 3 , 3 , 1 , 1 , - 1 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level1.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level1.qml deleted file mode 100644 index 4bb15cb..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level1.qml +++ /dev/null @@ -1,59 +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 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 - -TemplateBase{ - timeTarget: 10 - goalText: "2 of 10

Clear in 10 seconds..." - startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 1 , 3 , 3 , 3 , 1 , 1 , 1 , 1 , 2 , 2 , - 1 , 2 , 3 , 3 , 3 , 1 , 1 , 1 , 1 , 2 , - 2 , 2 , 1 , 3 , 3 , 3 , 1 , 1 , 1 , 2 , - 2 , 1 , 1 , 1 , 3 , 3 , 3 , 1 , 2 , 2 , - 1 , 1 , 1 , 1 , 1 , 3 , 3 , 3 , 2 , 1 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level2.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level2.qml deleted file mode 100644 index a319479..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level2.qml +++ /dev/null @@ -1,61 +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 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 - -TemplateBase{ - scoreTarget: 1200 - timeTarget: 60 - goalText: "3 of 10

Score over 1200 points in one minute..." - mustClear: false - startingGrid: [ 3 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 3 , 3 , - 1 , 3 , 3 , 2 , 3 , 3 , 1 , 1 , 3 , 1 , - 3 , 1 , 3 , 3 , 2 , 3 , 3 , 3 , 1 , 2 , - 3 , 2 , 2 , 1 , 3 , 3 , 2 , 1 , 1 , 2 , - 3 , 1 , 2 , 2 , 2 , 2 , 2 , 1 , 3 , 1 , - 2 , 3 , 1 , 2 , 2 , 3 , 3 , 1 , 3 , 2 , - 3 , 2 , 1 , 1 , 3 , 3 , 3 , 2 , 2 , 1 , - 1 , 2 , 2 , 3 , 2 , 3 , 3 , 3 , 1 , 1 , - 1 , 3 , 3 , 3 , 1 , 2 , 2 , 3 , 3 , 1 , - 3 , 3 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , - 2 , 1 , 3 , 2 , 3 , 2 , 3 , 2 , 2 , 1 , - 1 , 3 , 1 , 2 , 1 , 2 , 3 , 1 , 2 , 2 , - 1 , 2 , 2 , 2 , 1 , 1 , 2 , 3 , 1 , 2 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level3.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level3.qml deleted file mode 100644 index 43e82d7..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level3.qml +++ /dev/null @@ -1,60 +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 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 - -TemplateBase{ - scoreTarget: 3000 - timeTarget: 60 - goalText: "4 of 10
Clear the board with over 3000 points in under a minute..." - startingGrid: [ 3 , 3 , 1 , 1 , 1 , 2 , 2 , 4 , 3 , 3 , - 4 , 3 , 1 , 4 , 2 , 2 , 2 , 4 , 3 , 4 , - 4 , 3 , 3 , 4 , 1 , 1 , 3 , 3 , 4 , 4 , - 3 , 3 , 3 , 3 , 3 , 1 , 3 , 2 , 2 , 4 , - 4 , 4 , 3 , 4 , 3 , 1 , 4 , 4 , 4 , 4 , - 4 , 4 , 3 , 4 , 1 , 1 , 4 , 4 , 3 , 3 , - 4 , 2 , 2 , 2 , 2 , 2 , 4 , 4 , 4 , 1 , - 4 , 4 , 2 , 4 , 2 , 2 , 1 , 1 , 1 , 1 , - 4 , 4 , 2 , 4 , 2 , 2 , 1 , 4 , 4 , 1 , - 4 , 1 , 1 , 4 , 3 , 3 , 4 , 2 , 4 , 1 , - 4 , 1 , 1 , 2 , 3 , 3 , 4 , 2 , 2 , 1 , - 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 2 , 1 , - 4 , 1 , 1 , 2 , 2 , 3 , 4 , 3 , 4 , 4 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level4.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level4.qml deleted file mode 100644 index 46ad42f..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level4.qml +++ /dev/null @@ -1,58 +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 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 - -TemplateBase{ - goalText: "5 of 10

Clear the level..." - startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 1 , 3 , 2 , 1 , 1 , 1 , 1 , 3 , 2 , 3 , - 1 , 2 , 3 , 1 , 3 , 2 , 2 , 1 , 1 , 2 , - 3 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 3 , 3 , - 2 , 1 , 1 , 3 , 2 , 1 , 1 , 2 , 1 , 3 , - 1 , 3 , 3 , 1 , 2 , 1 , 2 , 1 , 3 , 3 , - 1 , 3 , 2 , 2 , 2 , 1 , 1 , 3 , 2 , 3 , - 1 , 1 , 3 , 2 , 3 , 3 , 2 , 1 , 1 , 1 , - 1 , 2 , 2 , 3 , 2 , 2 , 1 , 3 , 1 , 3 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level5.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level5.qml deleted file mode 100644 index 3716264..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level5.qml +++ /dev/null @@ -1,59 +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 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 - -TemplateBase{ - moveTarget: 4 - goalText: "6 of 10

Clear in four or less moves..." - startingGrid: [ 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 2 , 2 , 2 , 4 , 3 , 3 , 3 , 4 , 4 , - 4 , 2 , 4 , 4 , 4 , 3 , 2 , 3 , 4 , 4 , - 4 , 2 , 2 , 2 , 4 , 3 , 3 , 3 , 4 , 4 , - 4 , 4 , 4 , 2 , 4 , 3 , 4 , 3 , 4 , 4 , - 4 , 2 , 2 , 2 , 4 , 3 , 4 , 3 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 3 , 4 , 3 , 4 , 2 , 2 , 2 , 4 , 3 , - 4 , 3 , 3 , 3 , 4 , 2 , 4 , 4 , 4 , 3 , - 4 , 3 , 3 , 3 , 4 , 2 , 2 , 2 , 4 , 3 , - 4 , 3 , 4 , 3 , 4 , 2 , 4 , 4 , 4 , 4 , - 4 , 3 , 4 , 3 , 4 , 2 , 2 , 2 , 4 , 3 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level6.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level6.qml deleted file mode 100644 index 4547b75..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level6.qml +++ /dev/null @@ -1,60 +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 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 - -TemplateBase{ - moveTarget: 20 - timeTarget: 40 - goalText: "7 of 10

Clear with 20 moves in 40 seconds (or better)." - startingGrid: [ 1 , 3 , 1 , 1 , 1 , 1 , 2 , 1 , 2 , 2 , - 2 , 1 , 2 , 3 , 3 , 1 , 3 , 1 , 1 , 3 , - 3 , 1 , 1 , 1 , 2 , 2 , 3 , 2 , 3 , 1 , - 1 , 3 , 1 , 1 , 3 , 1 , 1 , 1 , 2 , 3 , - 2 , 1 , 1 , 1 , 3 , 2 , 3 , 3 , 2 , 3 , - 3 , 3 , 3 , 3 , 2 , 2 , 3 , 1 , 3 , 2 , - 2 , 2 , 3 , 2 , 2 , 3 , 2 , 2 , 2 , 2 , - 1 , 2 , 1 , 2 , 1 , 3 , 2 , 3 , 2 , 3 , - 1 , 1 , 2 , 3 , 3 , 3 , 3 , 1 , 1 , 2 , - 3 , 3 , 2 , 2 , 2 , 2 , 3 , 1 , 3 , 1 , - 1 , 2 , 3 , 3 , 3 , 1 , 3 , 2 , 1 , 2 , - 1 , 2 , 1 , 1 , 2 , 3 , 1 , 2 , 1 , 3 , - 3 , 1 , 2 , 2 , 1 , 3 , 3 , 1 , 3 , 2 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level7.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level7.qml deleted file mode 100644 index 5d71d7c..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level7.qml +++ /dev/null @@ -1,58 +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 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 - -TemplateBase{ - goalText: "8 of 10

Clear the grid." - startingGrid: [ 2 , 4 , 3 , 2 , 3 , 2 , 3 , 3 , 4 , 3 , - 2 , 2 , 3 , 3 , 1 , 4 , 3 , 3 , 3 , 2 , - 1 , 4 , 2 , 3 , 4 , 3 , 3 , 1 , 1 , 1 , - 2 , 1 , 2 , 4 , 4 , 2 , 2 , 3 , 2 , 1 , - 3 , 4 , 4 , 1 , 3 , 2 , 4 , 2 , 1 , 1 , - 2 , 2 , 3 , 1 , 2 , 4 , 1 , 2 , 1 , 2 , - 1 , 2 , 3 , 2 , 4 , 4 , 3 , 1 , 1 , 2 , - 4 , 4 , 2 , 1 , 2 , 4 , 2 , 2 , 4 , 3 , - 4 , 2 , 4 , 1 , 3 , 4 , 1 , 4 , 2 , 4 , - 4 , 3 , 4 , 1 , 4 , 3 , 1 , 3 , 1 , 1 , - 3 , 3 , 2 , 3 , 2 , 4 , 1 , 2 , 4 , 4 , - 3 , 4 , 2 , 2 , 4 , 3 , 4 , 1 , 3 , 2 , - 4 , 3 , 3 , 4 , 2 , 4 , 1 , 2 , 3 , 2 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level8.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level8.qml deleted file mode 100644 index 9dbb8c2..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level8.qml +++ /dev/null @@ -1,59 +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 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 - -TemplateBase{ - scoreTarget: 1000 - goalText: "9 of 10

Score over 1000 points" - startingGrid: [ 1 , 4 , 4 , 3 , 2 , 1 , 4 , 2 , 4 , 2 , - 2 , 3 , 4 , 4 , 1 , 1 , 1 , 4 , 4 , 4 , - 1 , 3 , 1 , 2 , 2 , 1 , 2 , 1 , 4 , 2 , - 4 , 3 , 4 , 2 , 1 , 4 , 1 , 2 , 2 , 3 , - 3 , 4 , 2 , 4 , 4 , 3 , 2 , 2 , 2 , 1 , - 4 , 4 , 3 , 2 , 4 , 4 , 2 , 1 , 1 , 1 , - 1 , 2 , 1 , 3 , 4 , 1 , 1 , 3 , 2 , 3 , - 3 , 4 , 2 , 2 , 1 , 3 , 2 , 2 , 4 , 2 , - 2 , 4 , 1 , 2 , 2 , 4 , 3 , 3 , 3 , 1 , - 1 , 2 , 2 , 4 , 1 , 2 , 2 , 3 , 3 , 3 , - 4 , 4 , 1 , 4 , 3 , 1 , 3 , 3 , 3 , 4 , - 1 , 2 , 4 , 1 , 2 , 1 , 1 , 4 , 2 , 1 , - 1 , 2 , 3 , 4 , 2 , 4 , 4 , 2 , 1 , 3 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/levels/level9.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level9.qml deleted file mode 100644 index 4e8bf19..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/levels/level9.qml +++ /dev/null @@ -1,62 +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 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 - -TemplateBase{ - scoreTarget: 2000 - timeTarget: 60 - moveTarget: 20 - mustClear: false - goalText: "10 of 10

Score 2000 in one minute with less than 20 moves!" - startingGrid: [ 3 , 2 , 3 , 1 , 3 , 3 , 4 , 1 , 3 , 3 , - 2 , 3 , 2 , 1 , 1 , 2 , 2 , 2 , 4 , 1 , - 2 , 4 , 4 , 4 , 3 , 1 , 4 , 4 , 4 , 1 , - 3 , 1 , 3 , 4 , 4 , 2 , 2 , 2 , 2 , 3 , - 2 , 1 , 4 , 4 , 3 , 3 , 1 , 1 , 3 , 2 , - 3 , 2 , 1 , 4 , 3 , 4 , 1 , 3 , 4 , 2 , - 3 , 3 , 1 , 4 , 4 , 4 , 2 , 1 , 2 , 3 , - 2 , 3 , 4 , 3 , 4 , 1 , 1 , 3 , 2 , 4 , - 4 , 4 , 1 , 2 , 4 , 3 , 2 , 2 , 2 , 4 , - 1 , 4 , 2 , 2 , 1 , 1 , 2 , 1 , 1 , 4 , - 1 , 4 , 3 , 3 , 3 , 1 , 3 , 4 , 4 , 2 , - 3 , 4 , 1 , 1 , 2 , 2 , 2 , 3 , 2 , 1 , - 3 , 3 , 4 , 3 , 1 , 1 , 1 , 4 , 4 , 3 ] -} diff --git a/basicsuite/qt5-launchpresentation/samegame/content/samegame.js b/basicsuite/qt5-launchpresentation/samegame/content/samegame.js deleted file mode 100755 index 7b226cb..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/content/samegame.js +++ /dev/null @@ -1,581 +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 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$ -** -****************************************************************************/ - -/* This script file handles the game logic */ -.pragma library -.import QtQuick.LocalStorage 2.0 as Sql -.import "../settings.js" as Settings - -var maxColumn = 10; -var maxRow = 13; -var types = 3; -var maxIndex = maxColumn*maxRow; -var board = new Array(maxIndex); -var blockSrc = "Block.qml"; -var gameDuration; -var component = Qt.createComponent(blockSrc); -var gameCanvas; -var betweenTurns = false; - -var puzzleLevel = null; -var puzzlePath = ""; - -var gameMode = "arcade"; //Set in new game, then tweaks behaviour of other functions -var gameOver = false; - -function changeBlock(src) -{ - blockSrc = src; - component = Qt.createComponent(blockSrc); -} - -// Index function used instead of a 2D array -function index(column, row) -{ - return column + row * maxColumn; -} - -function timeStr(msecs) -{ - var secs = Math.floor(msecs/1000); - var m = Math.floor(secs/60); - var ret = "" + m + "m " + (secs%60) + "s"; - return ret; -} - -function cleanUp() -{ - if (gameCanvas == undefined) - return; - // Delete blocks from previous game - for (var i = 0; i < maxIndex; i++) { - if (board[i] != null) - board[i].destroy(); - board[i] = null; - } - if (puzzleLevel != null){ - puzzleLevel.destroy(); - puzzleLevel = null; - } - gameCanvas.mode = "" -} - -function startNewGame(gc, mode, map) -{ - gameCanvas = gc; - if (mode == undefined) - gameMode = "arcade"; - else - gameMode = mode; - gameOver = false; - - cleanUp(); - - gc.gameOver = false; - gc.mode = gameMode; - // Calculate board size - maxColumn = Math.floor(gameCanvas.width/Settings.blockSize); - maxRow = Math.floor(gameCanvas.height/Settings.blockSize); - maxIndex = maxRow * maxColumn; - if (gameMode == "arcade") //Needs to be after board sizing - getHighScore(); - - - // Initialize Board - board = new Array(maxIndex); - gameCanvas.score = 0; - gameCanvas.score2 = 0; - gameCanvas.moves = 0; - gameCanvas.curTurn = 1; - if (gameMode == "puzzle") - loadMap(map); - else//Note that we load them in reverse order for correct visual stacking - for (var column = maxColumn - 1; column >= 0; column--) - for (var row = maxRow - 1; row >= 0; row--) - createBlock(column, row); - if (gameMode == "puzzle") - getLevelHistory();//Needs to be after map load - gameDuration = new Date(); -} - -var fillFound; // Set after a floodFill call to the number of blocks found -var floodBoard; // Set to 1 if the floodFill reaches off that node - -// NOTE: Be careful with vars named x,y, as the calling object's x,y are still in scope -function handleClick(x,y) -{ - if (betweenTurns || gameOver || gameCanvas == undefined) - return; - var column = Math.floor(x/Settings.blockSize); - var row = Math.floor(y/Settings.blockSize); - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return; - if (board[index(column, row)] == null) - return; - // If it's a valid block, remove it and all connected (does nothing if it's not connected) - floodFill(column,row, -1); - if (fillFound <= 0) - return; - if (gameMode == "multiplayer" && gameCanvas.curTurn == 2) - gameCanvas.score2 += (fillFound - 1) * (fillFound - 1); - else - gameCanvas.score += (fillFound - 1) * (fillFound - 1); - if (gameMode == "multiplayer" && gameCanvas.curTurn == 2) - shuffleUp(); - else - shuffleDown(); - gameCanvas.moves += 1; - if (gameMode == "endless") - refill(); - else if (gameMode != "multiplayer") - victoryCheck(); - if (gameMode == "multiplayer" && !gc.gameOver){ - betweenTurns = true; - gameCanvas.swapPlayers();//signal, animate and call turnChange() when ready - } -} - -function floodFill(column,row,type) -{ - if (board[index(column, row)] == null) - return; - var first = false; - if (type == -1) { - first = true; - type = board[index(column,row)].type; - - // Flood fill initialization - fillFound = 0; - floodBoard = new Array(maxIndex); - } - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return; - if (floodBoard[index(column, row)] == 1 || (!first && type != board[index(column, row)].type)) - return; - floodBoard[index(column, row)] = 1; - floodFill(column + 1, row, type); - floodFill(column - 1, row, type); - floodFill(column, row + 1, type); - floodFill(column, row - 1, type); - if (first == true && fillFound == 0) - return; // Can't remove single blocks - board[index(column, row)].dying = true; - board[index(column, row)] = null; - fillFound += 1; -} - -function shuffleDown() -{ - // Fall down - for (var column = 0; column < maxColumn; column++) { - var fallDist = 0; - for (var row = maxRow - 1; row >= 0; row--) { - if (board[index(column,row)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - var obj = board[index(column, row)]; - obj.y = (row + fallDist) * Settings.blockSize; - board[index(column, row + fallDist)] = obj; - board[index(column, row)] = null; - } - } - } - } - // Fall to the left - fallDist = 0; - for (column = 0; column < maxColumn; column++) { - if (board[index(column, maxRow - 1)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - for (row = 0; row < maxRow; row++) { - obj = board[index(column, row)]; - if (obj == null) - continue; - obj.x = (column - fallDist) * Settings.blockSize; - board[index(column - fallDist,row)] = obj; - board[index(column, row)] = null; - } - } - } - } -} - - -function shuffleUp() -{ - // Fall up - for (var column = 0; column < maxColumn; column++) { - var fallDist = 0; - for (var row = 0; row < maxRow; row++) { - if (board[index(column,row)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - var obj = board[index(column, row)]; - obj.y = (row - fallDist) * Settings.blockSize; - board[index(column, row - fallDist)] = obj; - board[index(column, row)] = null; - } - } - } - } - // Fall to the left (or should it be right, so as to be left for P2?) - fallDist = 0; - for (column = 0; column < maxColumn; column++) { - if (board[index(column, 0)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - for (row = 0; row < maxRow; row++) { - obj = board[index(column, row)]; - if (obj == null) - continue; - obj.x = (column - fallDist) * Settings.blockSize; - board[index(column - fallDist,row)] = obj; - board[index(column, row)] = null; - } - } - } - } -} - -function turnChange()//called by ui outside -{ - betweenTurns = false; - if (gameCanvas.curTurn == 1){ - shuffleUp(); - gameCanvas.curTurn = 2; - victoryCheck(); - }else{ - shuffleDown(); - gameCanvas.curTurn = 1; - victoryCheck(); - } -} - -function refill() -{ - for (var column = 0; column < maxColumn; column++) { - for (var row = 0; row < maxRow; row++) { - if (board[index(column, row)] == null) - createBlock(column, row); - } - } -} - -function victoryCheck() -{ - // Awards bonuses for no blocks left - var deservesBonus = true; - if (board[index(0,maxRow - 1)] != null || board[index(0,0)] != null) - deservesBonus = false; - // Checks for game over - if (deservesBonus){ - if (gameCanvas.curTurn = 1) - gameCanvas.score += 1000; - else - gameCanvas.score2 += 1000; - } - gameOver = deservesBonus; - if (gameCanvas.curTurn == 1){ - if (!(floodMoveCheck(0, maxRow - 1, -1))) - gameOver = true; - }else{ - if (!(floodMoveCheck(0, 0, -1, true))) - gameOver = true; - } - if (gameMode == "puzzle"){ - puzzleVictoryCheck(deservesBonus);//Takes it from here - return; - } - if (gameOver) { - var winnerScore = Math.max(gameCanvas.score, gameCanvas.score2); - if (gameMode == "multiplayer"){ - gameCanvas.score = winnerScore; - saveHighScore(gameCanvas.score2); - } - saveHighScore(gameCanvas.score); - gameDuration = new Date() - gameDuration; - gameCanvas.gameOver = true; - } -} - -// Only floods up and right, to see if it can find adjacent same-typed blocks -function floodMoveCheck(column, row, type, goDownInstead) -{ - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return false; - if (board[index(column, row)] == null) - return false; - var myType = board[index(column, row)].type; - if (type == myType) - return true; - if (goDownInstead) - return floodMoveCheck(column + 1, row, myType, goDownInstead) || - floodMoveCheck(column, row + 1, myType, goDownInstead); - else - return floodMoveCheck(column + 1, row, myType) || - floodMoveCheck(column, row - 1, myType); -} - -function createBlock(column,row,type) -{ - // Note that we don't wait for the component to become ready. This will - // only work if the block QML is a local file. Otherwise the component will - // not be ready immediately. There is a statusChanged signal on the - // component you could use if you want to wait to load remote files. - if (component.status == 1){ - if (type == undefined) - type = Math.floor(Math.random() * types); - if (type < 0 || type > 4) { - console.log("Invalid type requested");//TODO: Is this triggered by custom levels much? - return; - } - var dynamicObject = component.createObject(gameCanvas, - {"type": type, - "x": column*Settings.blockSize, - "y": -1*Settings.blockSize, - "width": Settings.blockSize, - "height": Settings.blockSize, - "particleSystem": gameCanvas.ps}); - if (dynamicObject == null){ - console.log("error creating block"); - console.log(component.errorString()); - return false; - } - dynamicObject.y = row*Settings.blockSize; - dynamicObject.spawned = true; - - board[index(column,row)] = dynamicObject; - }else{ - console.log("error loading block component"); - console.log(component.errorString()); - return false; - } - return true; -} - -function showPuzzleError(str) -{ - //TODO: Nice user visible UI? - console.log(str); -} - -function loadMap(map) -{ - puzzlePath = map; - var levelComp = Qt.createComponent(puzzlePath); - if (levelComp.status != 1){ - console.log("Error loading level"); - showPuzzleError(levelComp.errorString()); - return; - } - puzzleLevel = levelComp.createObject(); - if (puzzleLevel == null || !puzzleLevel.startingGrid instanceof Array) { - showPuzzleError("Bugger!"); - return; - } - gameCanvas.showPuzzleGoal(puzzleLevel.goalText); - //showPuzzleGoal should call finishLoadingMap as the next thing it does, before handling more events -} - -function finishLoadingMap() -{ - for (var i in puzzleLevel.startingGrid) - if (! (puzzleLevel.startingGrid[i] >= 0 && puzzleLevel.startingGrid[i] <= 9) ) - puzzleLevel.startingGrid[i] = 0; - //TODO: Don't allow loading larger levels, leads to cheating - while (puzzleLevel.startingGrid.length > maxIndex) puzzleLevel.startingGrid.shift(); - while (puzzleLevel.startingGrid.length < maxIndex) puzzleLevel.startingGrid.unshift(0); - for (var i in puzzleLevel.startingGrid) - if (puzzleLevel.startingGrid[i] > 0) - createBlock(i % maxColumn, Math.floor(i / maxColumn), puzzleLevel.startingGrid[i] - 1); - - //### Experimental feature - allow levels to contain arbitrary QML scenes as well! - //while (puzzleLevel.children.length) - // puzzleLevel.children[0].parent = gameCanvas; - gameDuration = new Date(); //Don't start until we finish loading -} - -function puzzleVictoryCheck(clearedAll)//gameOver has also been set if no more moves -{ - var won = true; - var soFar = new Date() - gameDuration; - if (puzzleLevel.scoreTarget != -1 && gameCanvas.score < puzzleLevel.scoreTarget){ - won = false; - } if (puzzleLevel.scoreTarget != -1 && gameCanvas.score >= puzzleLevel.scoreTarget && !puzzleLevel.mustClear){ - gameOver = true; - } if (puzzleLevel.timeTarget != -1 && soFar/1000.0 > puzzleLevel.timeTarget){ - gameOver = true; - } if (puzzleLevel.moveTarget != -1 && gameCanvas.moves >= puzzleLevel.moveTarget){ - gameOver = true; - } if (puzzleLevel.mustClear && gameOver && !clearedAll) { - won = false; - } - - if (gameOver) { - gameCanvas.gameOver = true; - gameCanvas.showPuzzleEnd(won); - - if (won) { - // Store progress - saveLevelHistory(); - } - } -} - -function getHighScore() -{ - var db = Sql.LocalStorage.openDatabaseSync( - "SameGame", - "2.0", - "SameGame Local Data", - 100 - ); - db.transaction( - function(tx) { - tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(game TEXT, score NUMBER, gridSize TEXT, time NUMBER)'); - // Only show results for the current grid size - var rs = tx.executeSql('SELECT * FROM Scores WHERE gridSize = "' - + maxColumn + "x" + maxRow + '" AND game = "' + gameMode + '" ORDER BY score desc'); - if (rs.rows.length > 0) - gameCanvas.highScore = rs.rows.item(0).score; - else - gameCanvas.highScore = 0; - } - ); -} - -function saveHighScore(score) -{ - // Offline storage - var db = Sql.LocalStorage.openDatabaseSync( - "SameGame", - "2.0", - "SameGame Local Data", - 100 - ); - var dataStr = "INSERT INTO Scores VALUES(?, ?, ?, ?)"; - var data = [ - gameMode, - score, - maxColumn + "x" + maxRow, - Math.floor(gameDuration / 1000) - ]; - if (score >= gameCanvas.highScore)//Update UI field - gameCanvas.highScore = score; - - db.transaction( - function(tx) { - tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(game TEXT, score NUMBER, gridSize TEXT, time NUMBER)'); - tx.executeSql(dataStr, data); - } - ); -} - -function getLevelHistory() -{ - var db = Sql.LocalStorage.openDatabaseSync( - "SameGame", - "2.0", - "SameGame Local Data", - 100 - ); - db.transaction( - function(tx) { - tx.executeSql('CREATE TABLE IF NOT EXISTS Puzzle(level TEXT, score NUMBER, moves NUMBER, time NUMBER)'); - var rs = tx.executeSql('SELECT * FROM Puzzle WHERE level = "' + puzzlePath + '" ORDER BY score desc'); - if (rs.rows.length > 0) { - gameCanvas.puzzleWon = true; - gameCanvas.highScore = rs.rows.item(0).score; - } else { - gameCanvas.puzzleWon = false; - gameCanvas.highScore = 0; - } - } - ); -} - -function saveLevelHistory() -{ - var db = Sql.LocalStorage.openDatabaseSync( - "SameGame", - "2.0", - "SameGame Local Data", - 100 - ); - var dataStr = "INSERT INTO Puzzle VALUES(?, ?, ?, ?)"; - var data = [ - puzzlePath, - gameCanvas.score, - gameCanvas.moves, - Math.floor(gameDuration / 1000) - ]; - gameCanvas.puzzleWon = true; - - db.transaction( - function(tx) { - tx.executeSql('CREATE TABLE IF NOT EXISTS Puzzle(level TEXT, score NUMBER, moves NUMBER, time NUMBER)'); - tx.executeSql(dataStr, data); - } - ); -} - -function nuke() //For "Debug mode" -{ - for (var row = 1; row <= 5; row++) { - for (var col = 0; col < 5; col++) { - if (board[index(col, maxRow - row)] != null) { - board[index(col, maxRow - row)].dying = true; - board[index(col, maxRow - row)] = null; - } - } - } - if (gameMode == "multiplayer" && gameCanvas.curTurn == 2) - shuffleUp(); - else - shuffleDown(); - if (gameMode == "endless") - refill(); - else - victoryCheck(); -} diff --git a/basicsuite/qt5-launchpresentation/samegame/settings.js b/basicsuite/qt5-launchpresentation/samegame/settings.js deleted file mode 100644 index e09dee9..0000000 --- a/basicsuite/qt5-launchpresentation/samegame/settings.js +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Research In Motion -** 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$ -** -****************************************************************************/ - -.pragma library - -//This should be switched over once a proper QML settings API exists - -var menuDelay = 500 - -var headerHeight = 20 // 70 on BB10 -var footerHeight = 44 // 100 on BB10 - -var fontPixelSize = 14 // 55 on BB10 - -var blockSize = 32 // 64 on BB10 - -var toolButtonHeight = 32 // 64 on BB10 - -var menuButtonSpacing = 0 // 15 on BB10 diff --git a/basicsuite/qt5-launchpresentation/title.txt b/basicsuite/qt5-launchpresentation/title.txt deleted file mode 100644 index 19f15b6..0000000 --- a/basicsuite/qt5-launchpresentation/title.txt +++ /dev/null @@ -1 +0,0 @@ -040. Qt5 Launch Presentation -- cgit v1.2.3 From bc13e03aa85951136d66048a033972b9b8b47ae6 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Tue, 24 Jun 2014 13:12:46 +0200 Subject: webengine: enable the browser example on android-nexus7v2 Change-Id: Ib43f9f2fa0ac3cd9f5d535c2548bf510d5b86772 Reviewed-by: Eirik Aavitsland --- basicsuite/webengine/exclude.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/basicsuite/webengine/exclude.txt b/basicsuite/webengine/exclude.txt index 4ae58fb..4efe135 100644 --- a/basicsuite/webengine/exclude.txt +++ b/basicsuite/webengine/exclude.txt @@ -3,4 +3,3 @@ linux-emulator linux-raspberrypi linux-beaglebone android-beaglebone -android-nexus7v2 -- cgit v1.2.3 From e029852de438d1509ea067f05e9a026b41375f89 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Tue, 24 Jun 2014 13:59:28 +0300 Subject: disable camera and sensor demo from Toradex Apalis iMX6 Change-Id: I12d72339a1071500a92b87e7c62fe3d7de6b9b25 Reviewed-by: Eirik Aavitsland --- basicsuite/camera/exclude.txt | 1 + basicsuite/sensors/exclude.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/basicsuite/camera/exclude.txt b/basicsuite/camera/exclude.txt index 0d5537c..bd99fda 100644 --- a/basicsuite/camera/exclude.txt +++ b/basicsuite/camera/exclude.txt @@ -8,3 +8,4 @@ linux-iMX6 linux-raspberrypi linux-emulator linux-imx6qsabresd +linux-apalis-imx6 diff --git a/basicsuite/sensors/exclude.txt b/basicsuite/sensors/exclude.txt index 7ced997..4d1d7ec 100644 --- a/basicsuite/sensors/exclude.txt +++ b/basicsuite/sensors/exclude.txt @@ -5,3 +5,4 @@ linux-raspberrypi linux-beagleboard linux-beaglebone linux-imx6qsabresd +linux-apalis-imx6 -- cgit v1.2.3 From 9f3510eed3b040a39a79a6c21d5c00d4306e1693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Mon, 23 Jun 2014 13:54:29 +0300 Subject: Add Meet Qt Enterprise Embedded video to mediaplayer demo * Add Qt Enterprise Embedded video to /data/videos folder * Set Qt Enterprise Embedded video as default one and start it when mediaplayer is started. Task-number: QTEE-663 Change-Id: I97dbf8741f5a63ea7e0017c7736298881b0a56bc Reviewed-by: Kalle Viironen --- basicsuite/mediaplayer/main.qml | 1 + videos/Qt_EnterpriseEmbedded_1080p.mp4 | Bin 0 -> 20613355 bytes 2 files changed, 1 insertion(+) create mode 100644 videos/Qt_EnterpriseEmbedded_1080p.mp4 diff --git a/basicsuite/mediaplayer/main.qml b/basicsuite/mediaplayer/main.qml index d8075c8..dfda2db 100755 --- a/basicsuite/mediaplayer/main.qml +++ b/basicsuite/mediaplayer/main.qml @@ -257,6 +257,7 @@ FocusScope { function init() { content.init() + content.openVideo("file://data/videos/Qt_EnterpriseEmbedded_1080p.mp4"); } function openVideo() { diff --git a/videos/Qt_EnterpriseEmbedded_1080p.mp4 b/videos/Qt_EnterpriseEmbedded_1080p.mp4 new file mode 100644 index 0000000..d3d7e62 Binary files /dev/null and b/videos/Qt_EnterpriseEmbedded_1080p.mp4 differ -- cgit v1.2.3 From 46bc25ee43316930eb595504c0d2f817862b2516 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Tue, 24 Jun 2014 16:02:06 +0300 Subject: Remove incorrect assingment of QUrl to bool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This time in RSS reader. Change-Id: I2b9e74e1605f76d8c954f2f988506d0704d9e81d Reviewed-by: Pasi Petäjäjärvi --- basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml b/basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml index 87b25c2..e5d042f 100644 --- a/basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml +++ b/basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml @@ -86,8 +86,6 @@ Rectangle { anchors.bottom: parent.bottom color: "Black" opacity: 0.5 - visible: iconImage.source - } Text { -- cgit v1.2.3 From 6b788710cb2f1f46a3a23ea790a63919c02b1ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Thu, 19 Jun 2014 17:40:56 +0300 Subject: Update Enterprise gallery demo description Task-number: QTEE-661 Change-Id: Iaea48d6db731452c7df824c59a6f16e13e8517b3 Reviewed-by: Kalle Viironen --- basicsuite/enterprise-gallery/description.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/enterprise-gallery/description.txt b/basicsuite/enterprise-gallery/description.txt index ba0806c..93b45f6 100644 --- a/basicsuite/enterprise-gallery/description.txt +++ b/basicsuite/enterprise-gallery/description.txt @@ -1,3 +1,3 @@ -The Gallery example showcases Qt Quick Enterprise Controls. If you have any suggestions for improvements to existing controls or ideas for new controls please email them to Qt.Enterprise-Controls@digia.com. +The Gallery example showcases Qt Quick Enterprise Controls. These controls are developed based on the input and feedback coming directly from Qt Enterprise Embedded customers. Each control can be customized and styled through the API. We have included a small subset of these customization options in the gallery example, which you can explore and interact with under the "cog" or "gear" icon on the lower right corner of each control's page. -- cgit v1.2.3 From c0d19af8bec6a4ece318a1721dd7c2cc6988c759 Mon Sep 17 00:00:00 2001 From: Kalle Viironen Date: Mon, 23 Jun 2014 15:32:52 +0300 Subject: About Boot to Qt-demo update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content update for About Boot to Qt-demo Change-Id: I8217a6c6ee0ca7f642dbe4d250a329f9f27c0713 Reviewed-by: Topi Reiniö Reviewed-by: Gatis Paeglis Reviewed-by: Eirik Aavitsland --- basicsuite/about-b2qt/AboutBoot2Qt.qml | 266 ++++++++++++++++++++++++++------ basicsuite/about-b2qt/Box.qml | 3 +- basicsuite/about-b2qt/ColouredTitle.qml | 54 +++++++ basicsuite/about-b2qt/HighlightText.qml | 53 +++++++ basicsuite/about-b2qt/description.txt | 4 +- basicsuite/about-b2qt/main.qml | 9 -- basicsuite/about-b2qt/preview_l.jpg | Bin 28727 -> 34971 bytes 7 files changed, 326 insertions(+), 63 deletions(-) create mode 100644 basicsuite/about-b2qt/ColouredTitle.qml create mode 100644 basicsuite/about-b2qt/HighlightText.qml diff --git a/basicsuite/about-b2qt/AboutBoot2Qt.qml b/basicsuite/about-b2qt/AboutBoot2Qt.qml index d050a71..abb6dc8 100644 --- a/basicsuite/about-b2qt/AboutBoot2Qt.qml +++ b/basicsuite/about-b2qt/AboutBoot2Qt.qml @@ -46,11 +46,18 @@ Column { width: parent.width - spacing: engine.smallFontSize() + spacing: engine.smallFontSize() * 2 - Title { - id: title - text: "Qt Enterprise Embedded" + property color qtlightgreen: '#80c342' + property color qtmediumgreen: '#328930' + property color qtdarkgreen: '#006325' + property color qtdarkblue: '#14148c' + property color qtlightblue: '#14aaff' + property color qtpurple: '#ae32a0' + property color qtred: '#b40000' + + ColouredTitle { + text: "MEET Qt ENTERPRISE EMBEDDED" } ContentText { @@ -59,62 +66,221 @@ Column { text: '

Qt Enterprise Embedded provides a fully-integrated solution to get you started immediately with software development on your embedded device with a tailored user experience for embedded Linux and embedded Android. It - supports your key requirements for high performance, minimal footprint together + supports your key requirements for high performance and minimal footprint together with Qt’s flexible full-framework modular architecture to deliver unparalleled - scalability.' + scalability. The development cycle is as rapid as it gets with fully integrated + embedded tooling, pre-configured software stack and a collection of value-add components.

' } + // Large overview picture Column { - id: diagram - spacing: 1 - width: parent.width * 0.5 + width: parent.width anchors.horizontalCenter: parent.horizontalCenter - Box { text: "Application"; accentColor: "coral" } - Box { text: "Qt Framework"; accentColor: Qt.rgba(0.64, 0.82, 0.15) } - Box { text: "Android/Linux Baselayer"; accentColor: "steelblue" } - Box { text: "Embedded Hardware"; accentColor: "steelblue"} + spacing: 10 + + Box{ text: "Cross-Platform Qt Libraries"; width: parent.width; accentColor: qtlightgreen } + Box{ text: "Value-Add Components"; width: parent.width; accentColor: qtlightgreen } + + Row { + id: row1 + spacing: 10 + width: parent.width + + Box{ text: "Complete Development Environment\nwith Qt Creator IDE"; + width: (row1.width - row1.spacing) / 2; height: column1.height; accentColor: qtmediumgreen } + + Column { + id: column1 + width: (row1.width - row1.spacing ) / 2 + spacing: row1.spacing + + + Box{ text: "Boot to Qt\nSoftware Stack\nfor HW"; accentColor: qtdarkblue; height: b2.height * 3 } + Box{ id: b2; text: "Build-Your-Own-Stack Tooling"; accentColor: qtdarkblue; } + } + } + } // end overview picture + + ColouredTitle { + text: "POWER OF CROSS-PLATFORM Qt" + } + + ContentText { + width: parent.width + text: '

Leverage the cross-platform C++ native APIs for maximum performance on both beautiful + user interfaces as well as non-GUI operations. With C++, you have full control + over your application code and direct device access. You can also configure Qt Enterprise Embedded + directly from the source codes into a large variety of supported hardware and + operating systems. As with any Qt project, the same application can be deployed + natively to desktop and mobile OS targets as well.

' + } + + HighlightText { + text: "Velvet-Like Native UIs, HTML5 or Both!" + } + + ContentText { + width: parent.width + text: '

With Qt Quick you can create beautiful and modern touch-based UIs + with maximum performance. Just like everything you find from this demo launcher!

+

Should you want dynamic web content and HTML5, the Qt WebEngine gives you full + Chromium-based browser engine with comprehensive HTML5 feature support. Mix and match with Qt Quick to get the best + of both worlds!

' + } + + ColouredTitle { + text: "SHORTER TIME-TO-MARKET" + } + + HighlightText { + text: "Full Embedded Development Environment" + } + + ContentText { + width: parent.width + text: '

A full-blown, productivity enhancing development environment, + installed on a Linux development desktop. This self-contained environment + is installed and updated through one online installer and features the Qt + Creator Enterprise IDE, with features that facilitate the whole product + creation lifecycle: UI designer, code editor, direct device deployment + via USB or IP, emulator, on-device debugging and profiling.

' + } + + + HighlightText { + text: "Boot to Qt Software Stack -\nEmbedded Prototyping Couldn't Get Any Simpler!" + } + + Row { + width: parent.width + spacing: 30 + + ContentText { + width: (parent.width - parent.spacing ) / 2 + + text: '

The Boot to Qt software stack gets you + immediately started with software development on your embedded device + with a tailored user experience for embedded Linux and embedded Android. It + supports your key requirements for high performance, minimal footprint together + with Qt’s flexible full-framework modular architecture to deliver unparalleled + scalability.

The Boot to Qt stack can be made to run on a variety + of hardware with the provided Build-Your-Own-Stack tooling. It comes + pre-built for several reference devices with the installation of Qt Enterprise Embedded.

' + } + + Column { + spacing: 5 + width: ( parent.width - parent.spacing ) / 2 + Box { text: "Application"; accentColor: qtpurple } + Box { text: "Qt Framework"; accentColor: qtlightgreen } + Box { text: "Android/Linux Baselayer"; accentColor: qtdarkblue } + Box { text: "Embedded Hardware"; accentColor: qtdarkblue } + } + + } + HighlightText { + text: "Value-Add Components - No Need to Re-Invent the Wheel!" + } ContentText { - id: description + width: parent.width + text: '

The Qt libraries come with a lot of high-level functionality for + various parts of your application. On top of that, we\'ve extended Qt Enterprise Embedded + to contain all the important things you need to create your embedded device, such as:

' + } + + + // The "grid" layout for key add-ons + Row { + width: parent.width * 0.9 + spacing: 30 + anchors.horizontalCenter: parent.horizontalCenter + + Column { + spacing: 10 + width: parent.width * 0.4 + + HighlightText { + color: qtlightgreen + horizontalAlignment: Text.AlignHCenter + font.pixelSize: engine.smallFontSize() + text: "Virtual Keyboard" + } + HighlightText { + color: qtlightgreen + horizontalAlignment: Text.AlignHCenter + font.pixelSize: engine.smallFontSize() + text: "Dynamic and Static Charting" + } + HighlightText { + color: qtlightgreen + horizontalAlignment: Text.AlignHCenter + font.pixelSize: engine.smallFontSize() + + text: "Pre-Built UI Controls" + } + } + Column { + spacing: 10 + width: parent.width * 0.4 + HighlightText { + color: qtlightgreen + horizontalAlignment: Text.AlignHCenter + font.pixelSize: engine.smallFontSize() + text: "3D Data Visualization" + } + HighlightText { + color: qtlightgreen + horizontalAlignment: Text.AlignHCenter + font.pixelSize: engine.smallFontSize() + text: "Qt Quick Compiler" + } + HighlightText { + color: qtlightgreen + horizontalAlignment: Text.AlignHCenter + font.pixelSize: engine.smallFontSize() + text: "Additional Tooling" + } + } + } // end of "grid" layout + + ColouredTitle { + text: "TRUSTED TECHNOLOGY PARTNER" + } + ContentText { width: parent.width + text: '

Qt is powering millions of everyday embedded devices user by over 70 industries. The Qt developer + community consists of hundreds of thousands of enthusiastic developers.

' + } + ContentText { + width: parent.width + text: '

With Qt Enterprise Embedded you are never alone with your device creation. You get + full support and portfolio of Digia Qt Professional Services + to help you pass all obstacles and reach your markets faster with outstanding quality.

' + } - text: '

Qt Enterprise Embedded gives you shorter time-to-market - providing you with the productivity-enhancing tools and value-adding components. - You are up-to-speed with development and prototyping since day one. You can just - focus on writing your application with Qt.
-

Qt Enterprise Embedded provides you with the following: -

    -
  • A full-blown, productivity enhancing development environment, - installed on a Linux development desktop. This self-contained environment - is installed and updated through one online installer and features the Qt - Creator Enterprise IDE, with features that facilitate the whole product - creation lifecycle: UI designer, code editor, direct device deployment - via USB or IP, emulator, on-device debugging and profiling.

  • -
  • Shorter time-to-market with the Boot to Qt Software Stack. A - light-weight, Qt-optimized, full software stack that is installed into - the actual target device. The stack comes in two flavors, Embedded Android - and Embedded Linux. The pre-built stack gets you up-to-speed with prototyping - in no time and with our professional tooling you can customize the stack into - your exact production needs.

  • -
  • Full power and scalability of Qt on Embedded. Leverage the - cross-platform C++ native APIs for maximum performance on both beautiful - user interfaces as well as non-GUI operations. With C++, you have full control - over your application code. You can also configure Qt Enterprise Embedded - directly from the source codes into a large variety of supported hardware and - operating systems. As with any Qt project, the same application can be deployed - natively to desktop and mobile OS targets as well.

  • -
  • Value-Adding Components. No need to re-implement the wheel! Full Qt - Enterprise libraries give you a shortcut on development time providing ready-made - solutions, such as a comprehensive virtual keyboard, charts and industrial UI - controls. -
- -

Qt Enterprise Embedded includes Boot to Qt, a light-weight, - Qt-optimized, full software stack for embedded systems that is installed into the actual - target device. The Boot to Qt stack can be made to run on a variety of hardware - Qt - Enterprise Embedded comes with pre-built images for several reference devices. - ' + ColouredTitle { + text: "GETTING STARTED WITH DEVELOPMENT" } + ContentText { + width: parent.width + text: '

Play around with the demos in this launcher to see the power of Qt and get your + free evaluation version of Qt Enterprise Embedded with the Boot to Qt images + for common developer boards from

' + } + HighlightText { + text: "http://qt.digia.com/QtEnterpriseEmbedded" + color: qtpurple + font.bold: true + horizontalAlignment: Text.AlignHCenter + } + ContentText { + width: parent.width + text: '

With an online installer, you\'ll get the out-of-the-box + pre-configured development environment, Qt Creator IDE, and you can start your + embedded development immediately!

' + } + } diff --git a/basicsuite/about-b2qt/Box.qml b/basicsuite/about-b2qt/Box.qml index ab6e971..72ede4b 100644 --- a/basicsuite/about-b2qt/Box.qml +++ b/basicsuite/about-b2qt/Box.qml @@ -56,7 +56,7 @@ Rectangle { gradient: Gradient { GradientStop { position: 0; color: root.accentColor; } - GradientStop { position: 1; color: "black"; } + GradientStop { position: 1; color: Qt.darker(Qt.darker(root.accentColor)); } } Text { @@ -65,6 +65,7 @@ Rectangle { font.bold: true; color: "white" anchors.centerIn: parent + horizontalAlignment: Text.AlignHCenter } } diff --git a/basicsuite/about-b2qt/ColouredTitle.qml b/basicsuite/about-b2qt/ColouredTitle.qml new file mode 100644 index 0000000..c73192c --- /dev/null +++ b/basicsuite/about-b2qt/ColouredTitle.qml @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: For any questions to Digia, please use the contact form at +** http://qt.digia.com/ +** +** 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 + +Text { + + property color qtlightgreen: '#80c342' + + width: parent.width + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + + font.pixelSize: engine.titleFontSize() + font.bold: true + color: qtlightgreen +} diff --git a/basicsuite/about-b2qt/HighlightText.qml b/basicsuite/about-b2qt/HighlightText.qml new file mode 100644 index 0000000..e1fc68e --- /dev/null +++ b/basicsuite/about-b2qt/HighlightText.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: For any questions to Digia, please use the contact form at +** http://qt.digia.com/ +** +** 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 + +Text { + + property color qtlightblue: '#14aaff' + + width: parent.width + horizontalAlignment: Text.AlignLeft + wrapMode: Text.WordWrap + font.pixelSize: engine.fontSize() + font.bold: true + color: qtlightblue +} diff --git a/basicsuite/about-b2qt/description.txt b/basicsuite/about-b2qt/description.txt index 676a166..df6f286 100644 --- a/basicsuite/about-b2qt/description.txt +++ b/basicsuite/about-b2qt/description.txt @@ -1,3 +1 @@ -The "About Boot to Qt" provides an introduction to what Boot to Qt is all about. - -It talks briefly about how the software stack is built up, rough hardware requirements and how Boot to Qt differs from the more traditional Qt editions. +The "About Qt Enterprise Embedded" provides an introduction to what Qt Enterprise Embedded is all about. diff --git a/basicsuite/about-b2qt/main.qml b/basicsuite/about-b2qt/main.qml index 694ba50..2b21a6b 100644 --- a/basicsuite/about-b2qt/main.qml +++ b/basicsuite/about-b2qt/main.qml @@ -48,11 +48,6 @@ Item { width : Screen.height > Screen.width ? Screen.height : Screen.width height : Screen.height > Screen.width ? Screen.width : Screen.height -// Rectangle { -// anchors.fill: parent -// color: "black" -// } - Flickable { id: flick property real inertia: 0.4 @@ -70,8 +65,6 @@ Item { property real topOvershoot: Math.max(0, contentItem.y); property real bottomOvershoot: Math.max(0, root.height - (contentItem.height + contentItem.y)); -// onTopOvershootChanged: print("Top Overshoot:", topOvershoot); -// onBottomOvershootChanged: print("Bottom Overshoot:", bottomOvershoot); Item { id: shiftTrickery @@ -107,8 +100,6 @@ Item { Item { width: 1; height: engine.smallFontSize() } AboutBoot2Qt { } - QtForAndroid { } - QtFramework { } Image { id: codeLessImage source: "codeless.png" diff --git a/basicsuite/about-b2qt/preview_l.jpg b/basicsuite/about-b2qt/preview_l.jpg index f2eb2e0..5ea4310 100644 Binary files a/basicsuite/about-b2qt/preview_l.jpg and b/basicsuite/about-b2qt/preview_l.jpg differ -- cgit v1.2.3 From 9e13cff1bba56c844589a8471bffe59564629898 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 25 Jun 2014 17:47:05 +0200 Subject: Fix a typo in the new About presentation Change-Id: I7af338332b09f01fd9af9c82a5271a7faa5629d3 Reviewed-by: Gatis Paeglis --- basicsuite/about-b2qt/AboutBoot2Qt.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/about-b2qt/AboutBoot2Qt.qml b/basicsuite/about-b2qt/AboutBoot2Qt.qml index abb6dc8..1c60bc3 100644 --- a/basicsuite/about-b2qt/AboutBoot2Qt.qml +++ b/basicsuite/about-b2qt/AboutBoot2Qt.qml @@ -251,7 +251,7 @@ Column { } ContentText { width: parent.width - text: '

Qt is powering millions of everyday embedded devices user by over 70 industries. The Qt developer + text: '

Qt is powering millions of everyday embedded devices used by over 70 industries. The Qt developer community consists of hundreds of thousands of enthusiastic developers.

' } ContentText { -- cgit v1.2.3 From 2feac635797f95006ce9487a8de9c77a880c9983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Thu, 26 Jun 2014 16:40:52 +0300 Subject: Fix Meet Qt Enterprise Embedded video url on startup Change-Id: I666b943a8228b7078d42032e2bc148a42e33b28d Reviewed-by: Samuli Piippo --- basicsuite/mediaplayer/main.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/mediaplayer/main.qml b/basicsuite/mediaplayer/main.qml index dfda2db..4aa038c 100755 --- a/basicsuite/mediaplayer/main.qml +++ b/basicsuite/mediaplayer/main.qml @@ -257,7 +257,7 @@ FocusScope { function init() { content.init() - content.openVideo("file://data/videos/Qt_EnterpriseEmbedded_1080p.mp4"); + content.openVideo("file:///data/videos/Qt_EnterpriseEmbedded_1080p.mp4"); } function openVideo() { -- cgit v1.2.3 From 61cbe63fba9e03ee9b65a1ada0792579e0562815 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Thu, 26 Jun 2014 14:07:59 +0300 Subject: about: fit text properly to the box Did not look good in smaller resolution Change-Id: Id7e33d9e1b06a13282d0ca82c017ff860f0cf312 Reviewed-by: Kalle Viironen --- basicsuite/about-b2qt/AboutBoot2Qt.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/about-b2qt/AboutBoot2Qt.qml b/basicsuite/about-b2qt/AboutBoot2Qt.qml index 1c60bc3..4f3b40f 100644 --- a/basicsuite/about-b2qt/AboutBoot2Qt.qml +++ b/basicsuite/about-b2qt/AboutBoot2Qt.qml @@ -86,7 +86,7 @@ Column { spacing: 10 width: parent.width - Box{ text: "Complete Development Environment\nwith Qt Creator IDE"; + Box{ text: "Complete\nDevelopment Environment\nwith Qt Creator IDE"; width: (row1.width - row1.spacing) / 2; height: column1.height; accentColor: qtmediumgreen } Column { -- cgit v1.2.3 From dd698678584affa0bc00a6c526d04b32f43d1be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Wed, 25 Jun 2014 12:19:29 +0300 Subject: Disable GraphicalEffects demo on beagleboneblack The performance is not satisfactory on this device Task-number: QTEE-672 Change-Id: I4055f1614f96c37bd38b06987e018ba7b562c6a5 Reviewed-by: Kalle Viironen --- basicsuite/graphicaleffects/exclude.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 basicsuite/graphicaleffects/exclude.txt diff --git a/basicsuite/graphicaleffects/exclude.txt b/basicsuite/graphicaleffects/exclude.txt new file mode 100644 index 0000000..715f5c2 --- /dev/null +++ b/basicsuite/graphicaleffects/exclude.txt @@ -0,0 +1,2 @@ +linux-beaglebone +android-beaglebone -- cgit v1.2.3 From 0f9d49c641268f141ca7c3d3cba9f750e400a6ab Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Fri, 27 Jun 2014 13:19:00 +0200 Subject: Doc: Content/language improvement for About QtEE demo. Rephrase a couple of sentences. Task-number: QTEE-691 Change-Id: I92d55e8215f5ce6bf4aab2019854149f37c78ad2 Reviewed-by: Mitch Curtis Reviewed-by: Kalle Viironen --- basicsuite/about-b2qt/AboutBoot2Qt.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/basicsuite/about-b2qt/AboutBoot2Qt.qml b/basicsuite/about-b2qt/AboutBoot2Qt.qml index 4f3b40f..ada3eb1 100644 --- a/basicsuite/about-b2qt/AboutBoot2Qt.qml +++ b/basicsuite/about-b2qt/AboutBoot2Qt.qml @@ -66,8 +66,8 @@ Column { text: '

Qt Enterprise Embedded provides a fully-integrated solution to get you started immediately with software development on your embedded device with a tailored user experience for embedded Linux and embedded Android. It - supports your key requirements for high performance and minimal footprint together - with Qt’s flexible full-framework modular architecture to deliver unparalleled + supports your key requirements for high performance and minimal footprint, and together + with Qt - a full framework with modular architecture - delivers unparalleled scalability. The development cycle is as rapid as it gets with fully integrated embedded tooling, pre-configured software stack and a collection of value-add components.

' } @@ -109,9 +109,9 @@ Column { width: parent.width text: '

Leverage the cross-platform C++ native APIs for maximum performance on both beautiful user interfaces as well as non-GUI operations. With C++, you have full control - over your application code and direct device access. You can also configure Qt Enterprise Embedded - directly from the source codes into a large variety of supported hardware and - operating systems. As with any Qt project, the same application can be deployed + over your application code and direct device access. You can also create custom configurations + of Qt Enterprise Embedded, targeting a large variety of supported hardware and + operating systems with ease. As with any Qt project, the same application can be deployed natively to desktop and mobile OS targets as well.

' } @@ -123,7 +123,7 @@ Column { width: parent.width text: '

With Qt Quick you can create beautiful and modern touch-based UIs with maximum performance. Just like everything you find from this demo launcher!

-

Should you want dynamic web content and HTML5, the Qt WebEngine gives you full +

Should you want dynamic web content and HTML5, the Qt WebEngine gives you a Chromium-based browser engine with comprehensive HTML5 feature support. Mix and match with Qt Quick to get the best of both worlds!

' } -- cgit v1.2.3 From 3f64212f863b2776a125f925fb0051eba79d904b Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Fri, 27 Jun 2014 14:43:40 +0200 Subject: Doc: Bump version to 3.1.0 Change-Id: I65ec140af6a42fc8df0eeeeefe09ad36253b4c4d Reviewed-by: Kalle Viironen Reviewed-by: Samuli Piippo --- doc/b2qt-demos.qdocconf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/b2qt-demos.qdocconf b/doc/b2qt-demos.qdocconf index 24a23db..2af1183 100644 --- a/doc/b2qt-demos.qdocconf +++ b/doc/b2qt-demos.qdocconf @@ -6,7 +6,7 @@ sourceencoding = UTF-8 project = QtEnterpriseEmbeddedDemos description = Qt Enterprise Embedded Examples and Demos -version = 3.0.0 +version = 3.1.0 sourcedirs = . imagedirs += images @@ -21,7 +21,7 @@ exampledirs = ../basicsuite qhp.projects = QtEnterpriseEmbeddedDemos qhp.QtEnterpriseEmbeddedDemos.file = b2qt-demos.qhp -qhp.QtEnterpriseEmbeddedDemos.namespace = com.digia.b2qt-demos.300 +qhp.QtEnterpriseEmbeddedDemos.namespace = com.digia.b2qt-demos.310 qhp.QtEnterpriseEmbeddedDemos.virtualFolder = b2qt-demos qhp.QtEnterpriseEmbeddedDemos.indexTitle = Qt Enterprise Embedded Examples and Demos qhp.QtEnterpriseEmbeddedDemos.indexRoot = -- cgit v1.2.3 From 76217b65aa7e2af9ecb21acb509f345313a262cc Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Mon, 30 Jun 2014 09:08:02 +0300 Subject: Update all VirtualKeyboard import to version 1.1 Change-Id: Idd65fcdc0afee0f54c8532bb2c26121a0b2da2b6 Reviewed-by: Eirik Aavitsland --- basicsuite/shared/SharedMain.qml | 2 +- basicsuite/textinput/TextArea.qml | 2 +- basicsuite/textinput/TextBase.qml | 2 +- basicsuite/textinput/TextField.qml | 2 +- basicsuite/textinput/main.qml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/basicsuite/shared/SharedMain.qml b/basicsuite/shared/SharedMain.qml index 60a141b..98ca779 100644 --- a/basicsuite/shared/SharedMain.qml +++ b/basicsuite/shared/SharedMain.qml @@ -16,7 +16,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import QtQuick.Enterprise.VirtualKeyboard 1.0 +import QtQuick.Enterprise.VirtualKeyboard 1.1 Item { id: root diff --git a/basicsuite/textinput/TextArea.qml b/basicsuite/textinput/TextArea.qml index 89cdc9f..cf84689 100644 --- a/basicsuite/textinput/TextArea.qml +++ b/basicsuite/textinput/TextArea.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtQuick.Enterprise.VirtualKeyboard 1.0 +import QtQuick.Enterprise.VirtualKeyboard 1.1 TextBase { id: textArea diff --git a/basicsuite/textinput/TextBase.qml b/basicsuite/textinput/TextBase.qml index fc399a8..0fcf294 100644 --- a/basicsuite/textinput/TextBase.qml +++ b/basicsuite/textinput/TextBase.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtQuick.Enterprise.VirtualKeyboard 1.0 +import QtQuick.Enterprise.VirtualKeyboard 1.1 FocusScope { id: textBase diff --git a/basicsuite/textinput/TextField.qml b/basicsuite/textinput/TextField.qml index b3671d7..f25dc49 100644 --- a/basicsuite/textinput/TextField.qml +++ b/basicsuite/textinput/TextField.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtQuick.Enterprise.VirtualKeyboard 1.0 +import QtQuick.Enterprise.VirtualKeyboard 1.1 TextBase { id: textField diff --git a/basicsuite/textinput/main.qml b/basicsuite/textinput/main.qml index bcb48d9..db407c2 100644 --- a/basicsuite/textinput/main.qml +++ b/basicsuite/textinput/main.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtQuick.Enterprise.VirtualKeyboard 1.0 +import QtQuick.Enterprise.VirtualKeyboard 1.1 Flickable { id: flickable -- cgit v1.2.3 From 7236ab7b3015f3310860b96cf1da17d0aa2a7d6a Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Mon, 30 Jun 2014 09:58:40 +0300 Subject: Remove deleted demos also from doc Photogallery and Qt5 presentation demos were removed, so remove them also from the documentation. Change-Id: Idb88eb7cabc1f4666c6f7e89274d327eadd65f22 Reviewed-by: Laszlo Agocs --- doc/b2qt-demos.qdoc | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/doc/b2qt-demos.qdoc b/doc/b2qt-demos.qdoc index 3bfb6d6..0a61968 100644 --- a/doc/b2qt-demos.qdoc +++ b/doc/b2qt-demos.qdoc @@ -105,17 +105,6 @@ It can play from a file or from a network source, both videos and music. */ -/*! - \example photogallery - \title Photo Gallery - \ingroup b2qt-demos - \brief A photo gallery implemented in QML. - - \image b2qt-demo-photogallery.jpg - - This is a simple photo gallery, showing images found in \c {/data/images} directory. -*/ - /*! \example qt5-cinematicdemo \title Qt 5 Cinematic Demo @@ -135,21 +124,6 @@ More awesome looking Qt Quick examples are available from \l {http://quitcoding.com}. */ -/*! - \example qt5-launchpresentation - \title Qt 5 Launch Presentation - \ingroup b2qt-demos - \brief A quick tour of what is new in Qt 5. - - \image b2qt-demo-qt5-launchpresentation.jpg - - This is an application written with Qt Quick, based on Qt 5. - - The source code is also available here: \l {https://qt.gitorious.org/qt-labs/qt5-launch-demo}. - The demo makes use of the QML Presentation System, available from - \c {ssh://codereview.qt-project.org/qt-labs/qml-presentation-system.git} repository. -*/ - /*! \example qt5-everywhere \title Qt 5 Everywhere -- cgit v1.2.3 From 73b88511a7762fc21765556ed649e056e5d28100 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Mon, 30 Jun 2014 13:25:25 +0300 Subject: launchersettings: make ip field span two columns This makes the hostname button fit better in smaller resolution. Task-number: QTEE-689 Change-Id: I8bead95d7b0d614ee1fa882699b990ef33848f99 Reviewed-by: Eirik Aavitsland --- basicsuite/launchersettings/main.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/basicsuite/launchersettings/main.qml b/basicsuite/launchersettings/main.qml index 7c4daaf..c42d8dc 100644 --- a/basicsuite/launchersettings/main.qml +++ b/basicsuite/launchersettings/main.qml @@ -243,6 +243,7 @@ Rectangle { text: if (networkControllerLoader.item != undefined) { networkControllerLoader.item.getIPAddress(); } font.pixelSize: 18 color: "white" + Layout.columnSpan: 2 } Button { -- cgit v1.2.3 From c420c17185d569a734c1cde4e269ae3f157794c1 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Mon, 30 Jun 2014 15:28:50 +0200 Subject: Fix demo descriptions. - Camera example refers to the "Photo Gallery" demo, which does not exists anymore. - Shorten the description of the "Qt5 Cinematic Experience" demo, this fixes the overlapping issue. Task-number: QTEE-700 Change-Id: I4552089e2f12d37e9a61c08bb5a2a999dc5cce3a Reviewed-by: Eirik Aavitsland --- basicsuite/camera/description.txt | 4 +--- basicsuite/qt5-cinematicdemo/description.txt | 6 ++---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/basicsuite/camera/description.txt b/basicsuite/camera/description.txt index 71c3c44..adfdafa 100644 --- a/basicsuite/camera/description.txt +++ b/basicsuite/camera/description.txt @@ -1,5 +1,3 @@ This example demonstrates the use of the camera features of Qt Multimedia with Qt Quick. -Demo can be used to take pictures. Files are saved inside the /data/images/ folder and can be viewed with the "Photo Gallery" application. - -Camera parameters such as flash mode, scene mode or white balance can be changed. The availability of parameters depends on what the camera driver provides. +Demo can be used to take photos which are saved in the /data/images/ directory. Camera parameters such as flash mode, scene mode or white balance can be changed. The availability of parameters depends on what the camera driver provides. diff --git a/basicsuite/qt5-cinematicdemo/description.txt b/basicsuite/qt5-cinematicdemo/description.txt index 253d246..c78f386 100644 --- a/basicsuite/qt5-cinematicdemo/description.txt +++ b/basicsuite/qt5-cinematicdemo/description.txt @@ -1,5 +1,3 @@ -The Qt5 Cinematic Experience is a demo by "QUIt Coding", a small group of talented individuals enjoying software development with cutting edge technologies. They are official members of the Qt Ambassador Program. +The Qt5 Cinematic Experience is a demo by "QUIt Coding". -The demo shows off a number features of Qt Quick 2.0. A nicely styled list control of movie covers with lighting effects, particles and transitions. The information roll-down curvy curtain is implemented using inline GLSL in the QML file. - -The source code for this demo and more awesome looking Qt Quick examples are available from quitcoding.com. +The demo shows off a number features of Qt Quick 2.0. A nicely styled list control of movie covers with lighting effects, particles and transitions. The information roll-down curvy curtain is implemented using inline GLSL in the QML file. The source code for this demo and more awesome looking Qt Quick examples are available from quitcoding.com. -- cgit v1.2.3 From a9785f3036ca5cab93bc07a42ad3417392941e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Mon, 30 Jun 2014 17:28:41 +0200 Subject: Changed the audio track on the Qt_EnterpriseEmbedded_1080p.mp4 video. The audio track was not supported properly on Android. Change-Id: I0a2bac0de5e4ecfb235723135e62313bc847d166 Reviewed-by: Eirik Aavitsland --- videos/Qt_EnterpriseEmbedded_1080p.mp4 | Bin 20613355 -> 23057072 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/videos/Qt_EnterpriseEmbedded_1080p.mp4 b/videos/Qt_EnterpriseEmbedded_1080p.mp4 index d3d7e62..993eb5c 100644 Binary files a/videos/Qt_EnterpriseEmbedded_1080p.mp4 and b/videos/Qt_EnterpriseEmbedded_1080p.mp4 differ -- cgit v1.2.3 From 3473ec2b9a38a703310b773e51ce059a8423e379 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 1 Jul 2014 15:33:52 +0200 Subject: [Doc] Use symbolic links for demo preview images Task-number: QTEE-703 Change-Id: Ic9373dd54726c892f5318a86ab535d04d85c607b Reviewed-by: Samuli Piippo --- doc/images/b2qt-demo-about-b2qt.jpg | Bin 28727 -> 41 bytes doc/images/b2qt-demo-camera.jpg | Bin 33458 -> 37 bytes doc/images/b2qt-demo-controls-touch.jpg | Bin 11179 -> 45 bytes doc/images/b2qt-demo-enterprise-charts.jpg | Bin 11070 -> 48 bytes doc/images/b2qt-demo-enterprise-dashboard.jpg | Bin 11239 -> 51 bytes doc/images/b2qt-demo-enterprise-gallery.jpg | Bin 9016 -> 49 bytes doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg | Bin 30360 -> 53 bytes doc/images/b2qt-demo-graphicaleffects.jpg | Bin 33841 -> 47 bytes doc/images/b2qt-demo-launchersettings.jpg | 1 + doc/images/b2qt-demo-mediaplayer.jpg | Bin 29015 -> 42 bytes doc/images/b2qt-demo-photogallery.jpg | Bin 55274 -> 0 bytes doc/images/b2qt-demo-qt5-cinematicdemo.jpg | Bin 36830 -> 48 bytes doc/images/b2qt-demo-qt5-everywhere.jpg | Bin 34331 -> 45 bytes doc/images/b2qt-demo-qt5-launchpresentation.jpg | Bin 16252 -> 0 bytes doc/images/b2qt-demo-qt5-particlesdemo.jpg | Bin 8889 -> 48 bytes doc/images/b2qt-demo-sensorexplorer.jpg | Bin 21553 -> 45 bytes doc/images/b2qt-demo-sensors.jpg | Bin 19464 -> 38 bytes doc/images/b2qt-demo-textinput.jpg | Bin 10684 -> 40 bytes doc/images/b2qt-demo-webengine.jpg | Bin 18081 -> 40 bytes doc/images/update-doc-images.sh | 2 ++ 20 files changed, 3 insertions(+) mode change 100644 => 120000 doc/images/b2qt-demo-about-b2qt.jpg mode change 100644 => 120000 doc/images/b2qt-demo-camera.jpg mode change 100644 => 120000 doc/images/b2qt-demo-controls-touch.jpg mode change 100644 => 120000 doc/images/b2qt-demo-enterprise-charts.jpg mode change 100644 => 120000 doc/images/b2qt-demo-enterprise-dashboard.jpg mode change 100644 => 120000 doc/images/b2qt-demo-enterprise-gallery.jpg mode change 100644 => 120000 doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg mode change 100644 => 120000 doc/images/b2qt-demo-graphicaleffects.jpg create mode 120000 doc/images/b2qt-demo-launchersettings.jpg mode change 100644 => 120000 doc/images/b2qt-demo-mediaplayer.jpg delete mode 100644 doc/images/b2qt-demo-photogallery.jpg mode change 100644 => 120000 doc/images/b2qt-demo-qt5-cinematicdemo.jpg mode change 100644 => 120000 doc/images/b2qt-demo-qt5-everywhere.jpg delete mode 100644 doc/images/b2qt-demo-qt5-launchpresentation.jpg mode change 100644 => 120000 doc/images/b2qt-demo-qt5-particlesdemo.jpg mode change 100644 => 120000 doc/images/b2qt-demo-sensorexplorer.jpg mode change 100644 => 120000 doc/images/b2qt-demo-sensors.jpg mode change 100644 => 120000 doc/images/b2qt-demo-textinput.jpg mode change 100644 => 120000 doc/images/b2qt-demo-webengine.jpg create mode 100755 doc/images/update-doc-images.sh diff --git a/doc/images/b2qt-demo-about-b2qt.jpg b/doc/images/b2qt-demo-about-b2qt.jpg deleted file mode 100644 index f2eb2e0..0000000 Binary files a/doc/images/b2qt-demo-about-b2qt.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-about-b2qt.jpg b/doc/images/b2qt-demo-about-b2qt.jpg new file mode 120000 index 0000000..b7c27dd --- /dev/null +++ b/doc/images/b2qt-demo-about-b2qt.jpg @@ -0,0 +1 @@ +../../basicsuite/about-b2qt/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-camera.jpg b/doc/images/b2qt-demo-camera.jpg deleted file mode 100644 index 3f15310..0000000 Binary files a/doc/images/b2qt-demo-camera.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-camera.jpg b/doc/images/b2qt-demo-camera.jpg new file mode 120000 index 0000000..6989f2b --- /dev/null +++ b/doc/images/b2qt-demo-camera.jpg @@ -0,0 +1 @@ +../../basicsuite/camera/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-controls-touch.jpg b/doc/images/b2qt-demo-controls-touch.jpg deleted file mode 100644 index c57eac3..0000000 Binary files a/doc/images/b2qt-demo-controls-touch.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-controls-touch.jpg b/doc/images/b2qt-demo-controls-touch.jpg new file mode 120000 index 0000000..bd78fcf --- /dev/null +++ b/doc/images/b2qt-demo-controls-touch.jpg @@ -0,0 +1 @@ +../../basicsuite/controls-touch/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-enterprise-charts.jpg b/doc/images/b2qt-demo-enterprise-charts.jpg deleted file mode 100644 index 2776b0b..0000000 Binary files a/doc/images/b2qt-demo-enterprise-charts.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-enterprise-charts.jpg b/doc/images/b2qt-demo-enterprise-charts.jpg new file mode 120000 index 0000000..e2f9e6c --- /dev/null +++ b/doc/images/b2qt-demo-enterprise-charts.jpg @@ -0,0 +1 @@ +../../basicsuite/enterprise-charts/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-enterprise-dashboard.jpg b/doc/images/b2qt-demo-enterprise-dashboard.jpg deleted file mode 100644 index eb2e3b5..0000000 Binary files a/doc/images/b2qt-demo-enterprise-dashboard.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-enterprise-dashboard.jpg b/doc/images/b2qt-demo-enterprise-dashboard.jpg new file mode 120000 index 0000000..5a9e599 --- /dev/null +++ b/doc/images/b2qt-demo-enterprise-dashboard.jpg @@ -0,0 +1 @@ +../../basicsuite/enterprise-dashboard/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-enterprise-gallery.jpg b/doc/images/b2qt-demo-enterprise-gallery.jpg deleted file mode 100644 index 8ddcad8..0000000 Binary files a/doc/images/b2qt-demo-enterprise-gallery.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-enterprise-gallery.jpg b/doc/images/b2qt-demo-enterprise-gallery.jpg new file mode 120000 index 0000000..75dfea4 --- /dev/null +++ b/doc/images/b2qt-demo-enterprise-gallery.jpg @@ -0,0 +1 @@ +../../basicsuite/enterprise-gallery/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg b/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg deleted file mode 100644 index ee3d50d..0000000 Binary files a/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg b/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg new file mode 120000 index 0000000..0ac4dd3 --- /dev/null +++ b/doc/images/b2qt-demo-enterprise-qtdatavis3d.jpg @@ -0,0 +1 @@ +../../basicsuite/enterprise-qtdatavis3d/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-graphicaleffects.jpg b/doc/images/b2qt-demo-graphicaleffects.jpg deleted file mode 100644 index 80fbbd5..0000000 Binary files a/doc/images/b2qt-demo-graphicaleffects.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-graphicaleffects.jpg b/doc/images/b2qt-demo-graphicaleffects.jpg new file mode 120000 index 0000000..5a092e2 --- /dev/null +++ b/doc/images/b2qt-demo-graphicaleffects.jpg @@ -0,0 +1 @@ +../../basicsuite/graphicaleffects/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-launchersettings.jpg b/doc/images/b2qt-demo-launchersettings.jpg new file mode 120000 index 0000000..0139c4c --- /dev/null +++ b/doc/images/b2qt-demo-launchersettings.jpg @@ -0,0 +1 @@ +../../basicsuite/launchersettings/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-mediaplayer.jpg b/doc/images/b2qt-demo-mediaplayer.jpg deleted file mode 100644 index 0fff215..0000000 Binary files a/doc/images/b2qt-demo-mediaplayer.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-mediaplayer.jpg b/doc/images/b2qt-demo-mediaplayer.jpg new file mode 120000 index 0000000..cce5a00 --- /dev/null +++ b/doc/images/b2qt-demo-mediaplayer.jpg @@ -0,0 +1 @@ +../../basicsuite/mediaplayer/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-photogallery.jpg b/doc/images/b2qt-demo-photogallery.jpg deleted file mode 100644 index 0b67f1d..0000000 Binary files a/doc/images/b2qt-demo-photogallery.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-qt5-cinematicdemo.jpg b/doc/images/b2qt-demo-qt5-cinematicdemo.jpg deleted file mode 100644 index 21bb2f9..0000000 Binary files a/doc/images/b2qt-demo-qt5-cinematicdemo.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-qt5-cinematicdemo.jpg b/doc/images/b2qt-demo-qt5-cinematicdemo.jpg new file mode 120000 index 0000000..1cc8325 --- /dev/null +++ b/doc/images/b2qt-demo-qt5-cinematicdemo.jpg @@ -0,0 +1 @@ +../../basicsuite/qt5-cinematicdemo/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-qt5-everywhere.jpg b/doc/images/b2qt-demo-qt5-everywhere.jpg deleted file mode 100644 index 1bb40bf..0000000 Binary files a/doc/images/b2qt-demo-qt5-everywhere.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-qt5-everywhere.jpg b/doc/images/b2qt-demo-qt5-everywhere.jpg new file mode 120000 index 0000000..0c61cdb --- /dev/null +++ b/doc/images/b2qt-demo-qt5-everywhere.jpg @@ -0,0 +1 @@ +../../basicsuite/qt5-everywhere/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-qt5-launchpresentation.jpg b/doc/images/b2qt-demo-qt5-launchpresentation.jpg deleted file mode 100644 index 8decd76..0000000 Binary files a/doc/images/b2qt-demo-qt5-launchpresentation.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-qt5-particlesdemo.jpg b/doc/images/b2qt-demo-qt5-particlesdemo.jpg deleted file mode 100644 index fa0db59..0000000 Binary files a/doc/images/b2qt-demo-qt5-particlesdemo.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-qt5-particlesdemo.jpg b/doc/images/b2qt-demo-qt5-particlesdemo.jpg new file mode 120000 index 0000000..42553b8 --- /dev/null +++ b/doc/images/b2qt-demo-qt5-particlesdemo.jpg @@ -0,0 +1 @@ +../../basicsuite/qt5-particlesdemo/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-sensorexplorer.jpg b/doc/images/b2qt-demo-sensorexplorer.jpg deleted file mode 100644 index b0469e5..0000000 Binary files a/doc/images/b2qt-demo-sensorexplorer.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-sensorexplorer.jpg b/doc/images/b2qt-demo-sensorexplorer.jpg new file mode 120000 index 0000000..4c2797f --- /dev/null +++ b/doc/images/b2qt-demo-sensorexplorer.jpg @@ -0,0 +1 @@ +../../basicsuite/sensorexplorer/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-sensors.jpg b/doc/images/b2qt-demo-sensors.jpg deleted file mode 100644 index 7ce979d..0000000 Binary files a/doc/images/b2qt-demo-sensors.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-sensors.jpg b/doc/images/b2qt-demo-sensors.jpg new file mode 120000 index 0000000..4144c1c --- /dev/null +++ b/doc/images/b2qt-demo-sensors.jpg @@ -0,0 +1 @@ +../../basicsuite/sensors/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-textinput.jpg b/doc/images/b2qt-demo-textinput.jpg deleted file mode 100644 index 67a2917..0000000 Binary files a/doc/images/b2qt-demo-textinput.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-textinput.jpg b/doc/images/b2qt-demo-textinput.jpg new file mode 120000 index 0000000..ea9dcbe --- /dev/null +++ b/doc/images/b2qt-demo-textinput.jpg @@ -0,0 +1 @@ +../../basicsuite/textinput/preview_l.jpg \ No newline at end of file diff --git a/doc/images/b2qt-demo-webengine.jpg b/doc/images/b2qt-demo-webengine.jpg deleted file mode 100644 index 963258a..0000000 Binary files a/doc/images/b2qt-demo-webengine.jpg and /dev/null differ diff --git a/doc/images/b2qt-demo-webengine.jpg b/doc/images/b2qt-demo-webengine.jpg new file mode 120000 index 0000000..5d319d8 --- /dev/null +++ b/doc/images/b2qt-demo-webengine.jpg @@ -0,0 +1 @@ +../../basicsuite/webengine/preview_l.jpg \ No newline at end of file diff --git a/doc/images/update-doc-images.sh b/doc/images/update-doc-images.sh new file mode 100755 index 0000000..1463ac2 --- /dev/null +++ b/doc/images/update-doc-images.sh @@ -0,0 +1,2 @@ +rm b2qt-demo-* +find ../../basicsuite/ -name "preview_l.jpg" -execdir sh -c 'ln -s ../../basicsuite/${PWD##*/}/preview_l.jpg ../../doc/images/b2qt-demo-${PWD##*/}.jpg' \; -- cgit v1.2.3 From bd45e253132198c49d90c7ec7177d7d3142a6d57 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 1 Jul 2014 16:25:45 +0200 Subject: Update screenshot of the Virtual Keyboard demo Also show the actual keyboard in the screenshot, this makes the preview image look much more atractive. Task-number: QTEE-711 Change-Id: Ia49a7caa4412749e4af45ae02bcb8addf0b2471d Reviewed-by: Eirik Aavitsland --- basicsuite/textinput/preview_l.jpg | Bin 10684 -> 25769 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/basicsuite/textinput/preview_l.jpg b/basicsuite/textinput/preview_l.jpg index 67a2917..7e453b8 100644 Binary files a/basicsuite/textinput/preview_l.jpg and b/basicsuite/textinput/preview_l.jpg differ -- cgit v1.2.3 From 980262215341472dbff0967f4e7687ef7a9aa0db Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Wed, 2 Jul 2014 13:51:00 +0200 Subject: webengine: disable the webgl demo This is a workaround for QTEE-726, this demo makes it possible to reproduce the UI freeze issue more frequently and is problematic on some setups, so disable it for now. Change-Id: I9e2466f78f3a6a10db00e9136380410e99c00625 Reviewed-by: Eirik Aavitsland --- basicsuite/webengine/content/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basicsuite/webengine/content/index.html b/basicsuite/webengine/content/index.html index 3cbeb16..fda8caa 100644 --- a/basicsuite/webengine/content/index.html +++ b/basicsuite/webengine/content/index.html @@ -28,7 +28,7 @@ -
+
-- cgit v1.2.3 From 82e327e5bc8ff3073f8ca8558dce4066a10f6e4a Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Tue, 8 Jul 2014 17:24:07 +0200 Subject: webengine: Add slight delay before loading the start page This is a workaround that seems to prevent the random start-up freeze on eAndroid. The freeze is a deadlock in the graphics stack, specifically in eglMakeCurrent, related to known GPU driver problems with context sharing on Android on some devices. Chromium has some workatounds for these problems, but our snapshot is not recent enough to have reliable quiks for all configurations we support. Since the QML Loader element used in qtlauncher and WebGL content seem to be the only way to sporadically reproduce the freeze this workaround should be sufficient until we do more testing with an updated snapshot. Change-Id: I02ec9f441c06ee3243e9975e4a49217400df27f2 Reviewed-by: Laszlo Agocs Reviewed-by: Eirik Aavitsland --- basicsuite/webengine/main.qml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/basicsuite/webengine/main.qml b/basicsuite/webengine/main.qml index c8ea895..d2f5184 100644 --- a/basicsuite/webengine/main.qml +++ b/basicsuite/webengine/main.qml @@ -56,7 +56,7 @@ Rectangle { width: 1280 height: 800 - property url defaultUrl: Qt.resolvedUrl("content/index.html") + property url defaultUrl: Qt.resolvedUrl("about:blank") function load(url) { mainWebView.url = url } ErrorPage { @@ -92,6 +92,13 @@ Rectangle { errorPage.mainMessage = "Protocol error" } onActiveFocusChanged: activeFocus ? hideTimer.running = true : toolBar.state = "address" + + Timer { + interval: 1500 + running: false + onTriggered: defaultUrl = Qt.resolvedUrl("content/index.html") + Component.onCompleted: start() + } } MultiPointTouchArea { -- cgit v1.2.3 From e7564e29be0e69ae4a52351fefd290939810dd2f Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Tue, 29 Jul 2014 08:54:39 +0200 Subject: Handle accelerometer readings in rotated items If an item is rotated the accelerometer readings have to be transformed to match the item rotation. Change-Id: I069dd2d97d1800385ffb08f4fc68c5522ef4b455 Reviewed-by: Laszlo Agocs Reviewed-by: Oliver Wolff --- basicsuite/sensors/Accelbubble.qml | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/basicsuite/sensors/Accelbubble.qml b/basicsuite/sensors/Accelbubble.qml index f70aa32..fa42770 100644 --- a/basicsuite/sensors/Accelbubble.qml +++ b/basicsuite/sensors/Accelbubble.qml @@ -49,9 +49,38 @@ Rectangle { 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() { - velocityX += accel.reading.y - velocityY += accel.reading.x + 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 -- cgit v1.2.3 From b89d0419b8fad4686c34ec53fb5db784b0ca1dfc Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Fri, 15 Aug 2014 09:58:20 +0300 Subject: Make FPS checkbox persistent Set value of FPS checkbox on start up based on the actual value in engine. Task-number: QTEE-584 Change-Id: Idfdc949b7fb8f4edb79f65f4351442601a9349e8 Reviewed-by: Gatis Paeglis --- basicsuite/launchersettings/main.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/basicsuite/launchersettings/main.qml b/basicsuite/launchersettings/main.qml index c42d8dc..8933598 100644 --- a/basicsuite/launchersettings/main.qml +++ b/basicsuite/launchersettings/main.qml @@ -208,6 +208,7 @@ Rectangle { } } CheckBox { + checked: engine.fpsEnabled onCheckedChanged: engine.fpsEnabled = checked; } } -- cgit v1.2.3 From ad9ea42d493bc9b125c019373fa5fe84cfcc225d Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Tue, 19 Aug 2014 12:38:23 +0200 Subject: Doc: Bump version to 3.1.1 Change-Id: I27b52b4f7eb92220c558e11070545dbed023a45c Reviewed-by: Samuli Piippo --- doc/b2qt-demos.qdocconf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/b2qt-demos.qdocconf b/doc/b2qt-demos.qdocconf index 2af1183..dfa494a 100644 --- a/doc/b2qt-demos.qdocconf +++ b/doc/b2qt-demos.qdocconf @@ -6,7 +6,7 @@ sourceencoding = UTF-8 project = QtEnterpriseEmbeddedDemos description = Qt Enterprise Embedded Examples and Demos -version = 3.1.0 +version = 3.1.1 sourcedirs = . imagedirs += images @@ -21,7 +21,7 @@ exampledirs = ../basicsuite qhp.projects = QtEnterpriseEmbeddedDemos qhp.QtEnterpriseEmbeddedDemos.file = b2qt-demos.qhp -qhp.QtEnterpriseEmbeddedDemos.namespace = com.digia.b2qt-demos.310 +qhp.QtEnterpriseEmbeddedDemos.namespace = com.digia.b2qt-demos.311 qhp.QtEnterpriseEmbeddedDemos.virtualFolder = b2qt-demos qhp.QtEnterpriseEmbeddedDemos.indexTitle = Qt Enterprise Embedded Examples and Demos qhp.QtEnterpriseEmbeddedDemos.indexRoot = -- cgit v1.2.3