diff --git a/Gruntfile.js b/Gruntfile.js
index 097d9d67c..78e730ce8 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -425,7 +425,7 @@ module.exports = function (grunt) {
});
- grunt.registerTask('build', 'Compile all Phaser versions just to the dist folder', function() {
+ grunt.registerTask('build', 'Compile all Phaser versions just to the temporary dist folder', function() {
grunt.option('exclude', 'ninja,creature');
grunt.option('filename', 'phaser');
diff --git a/README.md b/README.md
index 86bccf746..808815788 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,7 @@ Grab the source and join in the fun!
> In Development
-This is the development branch, where we are building Phaser 2.6.2.
+This is the development branch, where we are building Phaser 2.7.0.
Check the [Change Log](#change-log) to see what we've done so far. Or switch to the master branch for the current stable release.
@@ -107,15 +107,15 @@ Using Browserify? Please [read this](#browserify).
[jsDelivr](http://www.jsdelivr.com/#!phaser) is a "super-fast CDN for developers". Include the following in your html:
-``
+``
or the minified version:
-``
+``
[cdnjs.com](https://cdnjs.com/libraries/phaser) also offers a free CDN service. They have all versions of Phaser and even the custom builds:
-``
+``
### Phaser Sandbox
@@ -305,10 +305,11 @@ You can read all about the philosophy behind Lazer [here](http://phaser.io/news/
![Change Log](http://phaser.io/images/github/div-change-log.png "Change Log")
-## Version 2.6.2 - "Kore Springs" - In Development
+## Version 2.7.0 - "Kore Springs" - In Development
### New Features
+* The brand new WebGL Tilemap Renderer is available in this release of Phaser. Using custom developed shaders, map parsing and index batching, it finally makes tilemap rendering as fast as it possibly can be in WebGL.
* Group.getRandomExists will return a random child from the Group that has exists set to true.
* Group.getAll will return all children in the Group, or a section of the Group, with the optional ability to test if the child has a property matching the given value or not.
* Group.iterate has a new `returnType`: `RETURN_ALL`. This allows you to return all children that pass the iteration test in an array.
@@ -316,9 +317,10 @@ You can read all about the philosophy behind Lazer [here](http://phaser.io/news/
### Updates
* TypeScript definitions fixes and updates (thanks )
-* Docs typo fixes (thanks )
+* Docs typo fixes (thanks @rroylance @Owumaro)
* The InputHandler.flagged property has been removed. It was never used internally, or exposed via the API, so was just overhead.
* The src/system folder has been removed and all files relocated to the src/utils folder. This doesn't change anything from an API point of view, but did change the grunt build scripts slightly.
+* BitmapData.shadow and BitmapData.text now both `return this` keeping them in-line with the docs (thanks @greeny #2634)
### Bug Fixes
@@ -367,10 +369,10 @@ All rights reserved.
[![Analytics](https://ga-beacon.appspot.com/UA-44006568-2/phaser/index)](https://github.com/igrigorik/ga-beacon)
-[get-js]: https://github.com/photonstorm/phaser/releases/download/v2.6.2/phaser.js
-[get-minjs]: https://github.com/photonstorm/phaser/releases/download/v2.6.2/phaser.min.js
-[get-zip]: https://github.com/photonstorm/phaser/archive/v2.6.2.zip
-[get-tgz]: https://github.com/photonstorm/phaser/archive/v2.6.2.tar.gz
+[get-js]: https://github.com/photonstorm/phaser/releases/download/v2.7.0/phaser.js
+[get-minjs]: https://github.com/photonstorm/phaser/releases/download/v2.7.0/phaser.min.js
+[get-zip]: https://github.com/photonstorm/phaser/archive/v2.7.0.zip
+[get-tgz]: https://github.com/photonstorm/phaser/archive/v2.7.0.tar.gz
[clone-http]: https://github.com/photonstorm/phaser.git
[clone-ssh]: git@github.com:photonstorm/phaser.git
[clone-svn]: https://github.com/photonstorm/phaser
diff --git a/build/config.php b/build/config.php
index 6ea69a169..9ed3ad358 100644
--- a/build/config.php
+++ b/build/config.php
@@ -409,10 +409,13 @@ EOL;
if ($modules['tilemap'])
{
echo <<
+
+
diff --git a/build/creature.js b/build/creature.js
deleted file mode 100644
index 6873e9083..000000000
--- a/build/creature.js
+++ /dev/null
@@ -1,7207 +0,0 @@
-/**
- * @fileoverview gl-matrix - High performance matrix and vector operations
- * @author Brandon Jones
- * @author Colin MacKenzie IV
- * @version 2.2.2
- */
-
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-
-(function(_global) {
- "use strict";
-
- var shim = {};
- if (typeof(exports) === 'undefined') {
- if(typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
- shim.exports = {};
- define(function() {
- return shim.exports;
- });
- } else {
- // gl-matrix lives in a browser, define its namespaces in global
- shim.exports = typeof(window) !== 'undefined' ? window : _global;
- }
- }
- else {
- // gl-matrix lives in commonjs, define its namespaces in exports
- shim.exports = exports;
- }
-
- (function(exports) {
- /* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-
-if(!GLMAT_EPSILON) {
- var GLMAT_EPSILON = 0.000001;
-}
-
-if(!GLMAT_ARRAY_TYPE) {
- var GLMAT_ARRAY_TYPE = (typeof Float32Array !== 'undefined') ? Float32Array : Array;
-}
-
-if(!GLMAT_RANDOM) {
- var GLMAT_RANDOM = Math.random;
-}
-
-/**
- * @class Common utilities
- * @name glMatrix
- */
-var glMatrix = {};
-
-/**
- * Sets the type of array used when creating new vectors and matrices
- *
- * @param {Type} type Array type, such as Float32Array or Array
- */
-glMatrix.setMatrixArrayType = function(type) {
- GLMAT_ARRAY_TYPE = type;
-}
-
-if(typeof(exports) !== 'undefined') {
- exports.glMatrix = glMatrix;
-}
-
-var degree = Math.PI / 180;
-
-/**
-* Convert Degree To Radian
-*
-* @param {Number} Angle in Degrees
-*/
-glMatrix.toRadian = function(a){
- return a * degree;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class 2 Dimensional Vector
- * @name vec2
- */
-
-var vec2 = {};
-
-/**
- * Creates a new, empty vec2
- *
- * @returns {vec2} a new 2D vector
- */
-vec2.create = function() {
- var out = new GLMAT_ARRAY_TYPE(2);
- out[0] = 0;
- out[1] = 0;
- return out;
-};
-
-/**
- * Creates a new vec2 initialized with values from an existing vector
- *
- * @param {vec2} a vector to clone
- * @returns {vec2} a new 2D vector
- */
-vec2.clone = function(a) {
- var out = new GLMAT_ARRAY_TYPE(2);
- out[0] = a[0];
- out[1] = a[1];
- return out;
-};
-
-/**
- * Creates a new vec2 initialized with the given values
- *
- * @param {Number} x X component
- * @param {Number} y Y component
- * @returns {vec2} a new 2D vector
- */
-vec2.fromValues = function(x, y) {
- var out = new GLMAT_ARRAY_TYPE(2);
- out[0] = x;
- out[1] = y;
- return out;
-};
-
-/**
- * Copy the values from one vec2 to another
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the source vector
- * @returns {vec2} out
- */
-vec2.copy = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- return out;
-};
-
-/**
- * Set the components of a vec2 to the given values
- *
- * @param {vec2} out the receiving vector
- * @param {Number} x X component
- * @param {Number} y Y component
- * @returns {vec2} out
- */
-vec2.set = function(out, x, y) {
- out[0] = x;
- out[1] = y;
- return out;
-};
-
-/**
- * Adds two vec2's
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {vec2} out
- */
-vec2.add = function(out, a, b) {
- out[0] = a[0] + b[0];
- out[1] = a[1] + b[1];
- return out;
-};
-
-/**
- * Subtracts vector b from vector a
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {vec2} out
- */
-vec2.subtract = function(out, a, b) {
- out[0] = a[0] - b[0];
- out[1] = a[1] - b[1];
- return out;
-};
-
-/**
- * Alias for {@link vec2.subtract}
- * @function
- */
-vec2.sub = vec2.subtract;
-
-/**
- * Multiplies two vec2's
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {vec2} out
- */
-vec2.multiply = function(out, a, b) {
- out[0] = a[0] * b[0];
- out[1] = a[1] * b[1];
- return out;
-};
-
-/**
- * Alias for {@link vec2.multiply}
- * @function
- */
-vec2.mul = vec2.multiply;
-
-/**
- * Divides two vec2's
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {vec2} out
- */
-vec2.divide = function(out, a, b) {
- out[0] = a[0] / b[0];
- out[1] = a[1] / b[1];
- return out;
-};
-
-/**
- * Alias for {@link vec2.divide}
- * @function
- */
-vec2.div = vec2.divide;
-
-/**
- * Returns the minimum of two vec2's
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {vec2} out
- */
-vec2.min = function(out, a, b) {
- out[0] = Math.min(a[0], b[0]);
- out[1] = Math.min(a[1], b[1]);
- return out;
-};
-
-/**
- * Returns the maximum of two vec2's
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {vec2} out
- */
-vec2.max = function(out, a, b) {
- out[0] = Math.max(a[0], b[0]);
- out[1] = Math.max(a[1], b[1]);
- return out;
-};
-
-/**
- * Scales a vec2 by a scalar number
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the vector to scale
- * @param {Number} b amount to scale the vector by
- * @returns {vec2} out
- */
-vec2.scale = function(out, a, b) {
- out[0] = a[0] * b;
- out[1] = a[1] * b;
- return out;
-};
-
-/**
- * Adds two vec2's after scaling the second operand by a scalar value
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @param {Number} scale the amount to scale b by before adding
- * @returns {vec2} out
- */
-vec2.scaleAndAdd = function(out, a, b, scale) {
- out[0] = a[0] + (b[0] * scale);
- out[1] = a[1] + (b[1] * scale);
- return out;
-};
-
-/**
- * Calculates the euclidian distance between two vec2's
- *
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {Number} distance between a and b
- */
-vec2.distance = function(a, b) {
- var x = b[0] - a[0],
- y = b[1] - a[1];
- return Math.sqrt(x*x + y*y);
-};
-
-/**
- * Alias for {@link vec2.distance}
- * @function
- */
-vec2.dist = vec2.distance;
-
-/**
- * Calculates the squared euclidian distance between two vec2's
- *
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {Number} squared distance between a and b
- */
-vec2.squaredDistance = function(a, b) {
- var x = b[0] - a[0],
- y = b[1] - a[1];
- return x*x + y*y;
-};
-
-/**
- * Alias for {@link vec2.squaredDistance}
- * @function
- */
-vec2.sqrDist = vec2.squaredDistance;
-
-/**
- * Calculates the length of a vec2
- *
- * @param {vec2} a vector to calculate length of
- * @returns {Number} length of a
- */
-vec2.length = function (a) {
- var x = a[0],
- y = a[1];
- return Math.sqrt(x*x + y*y);
-};
-
-/**
- * Alias for {@link vec2.length}
- * @function
- */
-vec2.len = vec2.length;
-
-/**
- * Calculates the squared length of a vec2
- *
- * @param {vec2} a vector to calculate squared length of
- * @returns {Number} squared length of a
- */
-vec2.squaredLength = function (a) {
- var x = a[0],
- y = a[1];
- return x*x + y*y;
-};
-
-/**
- * Alias for {@link vec2.squaredLength}
- * @function
- */
-vec2.sqrLen = vec2.squaredLength;
-
-/**
- * Negates the components of a vec2
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a vector to negate
- * @returns {vec2} out
- */
-vec2.negate = function(out, a) {
- out[0] = -a[0];
- out[1] = -a[1];
- return out;
-};
-
-/**
- * Returns the inverse of the components of a vec2
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a vector to invert
- * @returns {vec2} out
- */
-vec2.inverse = function(out, a) {
- out[0] = 1.0 / a[0];
- out[1] = 1.0 / a[1];
- return out;
-};
-
-/**
- * Normalize a vec2
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a vector to normalize
- * @returns {vec2} out
- */
-vec2.normalize = function(out, a) {
- var x = a[0],
- y = a[1];
- var len = x*x + y*y;
- if (len > 0) {
- //TODO: evaluate use of glm_invsqrt here?
- len = 1 / Math.sqrt(len);
- out[0] = a[0] * len;
- out[1] = a[1] * len;
- }
- return out;
-};
-
-/**
- * Calculates the dot product of two vec2's
- *
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {Number} dot product of a and b
- */
-vec2.dot = function (a, b) {
- return a[0] * b[0] + a[1] * b[1];
-};
-
-/**
- * Computes the cross product of two vec2's
- * Note that the cross product must by definition produce a 3D vector
- *
- * @param {vec3} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @returns {vec3} out
- */
-vec2.cross = function(out, a, b) {
- var z = a[0] * b[1] - a[1] * b[0];
- out[0] = out[1] = 0;
- out[2] = z;
- return out;
-};
-
-/**
- * Performs a linear interpolation between two vec2's
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the first operand
- * @param {vec2} b the second operand
- * @param {Number} t interpolation amount between the two inputs
- * @returns {vec2} out
- */
-vec2.lerp = function (out, a, b, t) {
- var ax = a[0],
- ay = a[1];
- out[0] = ax + t * (b[0] - ax);
- out[1] = ay + t * (b[1] - ay);
- return out;
-};
-
-/**
- * Generates a random vector with the given scale
- *
- * @param {vec2} out the receiving vector
- * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned
- * @returns {vec2} out
- */
-vec2.random = function (out, scale) {
- scale = scale || 1.0;
- var r = GLMAT_RANDOM() * 2.0 * Math.PI;
- out[0] = Math.cos(r) * scale;
- out[1] = Math.sin(r) * scale;
- return out;
-};
-
-/**
- * Transforms the vec2 with a mat2
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the vector to transform
- * @param {mat2} m matrix to transform with
- * @returns {vec2} out
- */
-vec2.transformMat2 = function(out, a, m) {
- var x = a[0],
- y = a[1];
- out[0] = m[0] * x + m[2] * y;
- out[1] = m[1] * x + m[3] * y;
- return out;
-};
-
-/**
- * Transforms the vec2 with a mat2d
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the vector to transform
- * @param {mat2d} m matrix to transform with
- * @returns {vec2} out
- */
-vec2.transformMat2d = function(out, a, m) {
- var x = a[0],
- y = a[1];
- out[0] = m[0] * x + m[2] * y + m[4];
- out[1] = m[1] * x + m[3] * y + m[5];
- return out;
-};
-
-/**
- * Transforms the vec2 with a mat3
- * 3rd vector component is implicitly '1'
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the vector to transform
- * @param {mat3} m matrix to transform with
- * @returns {vec2} out
- */
-vec2.transformMat3 = function(out, a, m) {
- var x = a[0],
- y = a[1];
- out[0] = m[0] * x + m[3] * y + m[6];
- out[1] = m[1] * x + m[4] * y + m[7];
- return out;
-};
-
-/**
- * Transforms the vec2 with a mat4
- * 3rd vector component is implicitly '0'
- * 4th vector component is implicitly '1'
- *
- * @param {vec2} out the receiving vector
- * @param {vec2} a the vector to transform
- * @param {mat4} m matrix to transform with
- * @returns {vec2} out
- */
-vec2.transformMat4 = function(out, a, m) {
- var x = a[0],
- y = a[1];
- out[0] = m[0] * x + m[4] * y + m[12];
- out[1] = m[1] * x + m[5] * y + m[13];
- return out;
-};
-
-/**
- * Perform some operation over an array of vec2s.
- *
- * @param {Array} a the array of vectors to iterate over
- * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed
- * @param {Number} offset Number of elements to skip at the beginning of the array
- * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array
- * @param {Function} fn Function to call for each vector in the array
- * @param {Object} [arg] additional argument to pass to fn
- * @returns {Array} a
- * @function
- */
-vec2.forEach = (function() {
- var vec = vec2.create();
-
- return function(a, stride, offset, count, fn, arg) {
- var i, l;
- if(!stride) {
- stride = 2;
- }
-
- if(!offset) {
- offset = 0;
- }
-
- if(count) {
- l = Math.min((count * stride) + offset, a.length);
- } else {
- l = a.length;
- }
-
- for(i = offset; i < l; i += stride) {
- vec[0] = a[i]; vec[1] = a[i+1];
- fn(vec, vec, arg);
- a[i] = vec[0]; a[i+1] = vec[1];
- }
-
- return a;
- };
-})();
-
-/**
- * Returns a string representation of a vector
- *
- * @param {vec2} vec vector to represent as a string
- * @returns {String} string representation of the vector
- */
-vec2.str = function (a) {
- return 'vec2(' + a[0] + ', ' + a[1] + ')';
-};
-
-if(typeof(exports) !== 'undefined') {
- exports.vec2 = vec2;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class 3 Dimensional Vector
- * @name vec3
- */
-
-var vec3 = {};
-
-/**
- * Creates a new, empty vec3
- *
- * @returns {vec3} a new 3D vector
- */
-vec3.create = function() {
- var out = new GLMAT_ARRAY_TYPE(3);
- out[0] = 0;
- out[1] = 0;
- out[2] = 0;
- return out;
-};
-
-/**
- * Creates a new vec3 initialized with values from an existing vector
- *
- * @param {vec3} a vector to clone
- * @returns {vec3} a new 3D vector
- */
-vec3.clone = function(a) {
- var out = new GLMAT_ARRAY_TYPE(3);
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- return out;
-};
-
-/**
- * Creates a new vec3 initialized with the given values
- *
- * @param {Number} x X component
- * @param {Number} y Y component
- * @param {Number} z Z component
- * @returns {vec3} a new 3D vector
- */
-vec3.fromValues = function(x, y, z) {
- var out = new GLMAT_ARRAY_TYPE(3);
- out[0] = x;
- out[1] = y;
- out[2] = z;
- return out;
-};
-
-/**
- * Copy the values from one vec3 to another
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the source vector
- * @returns {vec3} out
- */
-vec3.copy = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- return out;
-};
-
-/**
- * Set the components of a vec3 to the given values
- *
- * @param {vec3} out the receiving vector
- * @param {Number} x X component
- * @param {Number} y Y component
- * @param {Number} z Z component
- * @returns {vec3} out
- */
-vec3.set = function(out, x, y, z) {
- out[0] = x;
- out[1] = y;
- out[2] = z;
- return out;
-};
-
-/**
- * Adds two vec3's
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {vec3} out
- */
-vec3.add = function(out, a, b) {
- out[0] = a[0] + b[0];
- out[1] = a[1] + b[1];
- out[2] = a[2] + b[2];
- return out;
-};
-
-/**
- * Subtracts vector b from vector a
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {vec3} out
- */
-vec3.subtract = function(out, a, b) {
- out[0] = a[0] - b[0];
- out[1] = a[1] - b[1];
- out[2] = a[2] - b[2];
- return out;
-};
-
-/**
- * Alias for {@link vec3.subtract}
- * @function
- */
-vec3.sub = vec3.subtract;
-
-/**
- * Multiplies two vec3's
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {vec3} out
- */
-vec3.multiply = function(out, a, b) {
- out[0] = a[0] * b[0];
- out[1] = a[1] * b[1];
- out[2] = a[2] * b[2];
- return out;
-};
-
-/**
- * Alias for {@link vec3.multiply}
- * @function
- */
-vec3.mul = vec3.multiply;
-
-/**
- * Divides two vec3's
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {vec3} out
- */
-vec3.divide = function(out, a, b) {
- out[0] = a[0] / b[0];
- out[1] = a[1] / b[1];
- out[2] = a[2] / b[2];
- return out;
-};
-
-/**
- * Alias for {@link vec3.divide}
- * @function
- */
-vec3.div = vec3.divide;
-
-/**
- * Returns the minimum of two vec3's
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {vec3} out
- */
-vec3.min = function(out, a, b) {
- out[0] = Math.min(a[0], b[0]);
- out[1] = Math.min(a[1], b[1]);
- out[2] = Math.min(a[2], b[2]);
- return out;
-};
-
-/**
- * Returns the maximum of two vec3's
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {vec3} out
- */
-vec3.max = function(out, a, b) {
- out[0] = Math.max(a[0], b[0]);
- out[1] = Math.max(a[1], b[1]);
- out[2] = Math.max(a[2], b[2]);
- return out;
-};
-
-/**
- * Scales a vec3 by a scalar number
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the vector to scale
- * @param {Number} b amount to scale the vector by
- * @returns {vec3} out
- */
-vec3.scale = function(out, a, b) {
- out[0] = a[0] * b;
- out[1] = a[1] * b;
- out[2] = a[2] * b;
- return out;
-};
-
-/**
- * Adds two vec3's after scaling the second operand by a scalar value
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @param {Number} scale the amount to scale b by before adding
- * @returns {vec3} out
- */
-vec3.scaleAndAdd = function(out, a, b, scale) {
- out[0] = a[0] + (b[0] * scale);
- out[1] = a[1] + (b[1] * scale);
- out[2] = a[2] + (b[2] * scale);
- return out;
-};
-
-/**
- * Calculates the euclidian distance between two vec3's
- *
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {Number} distance between a and b
- */
-vec3.distance = function(a, b) {
- var x = b[0] - a[0],
- y = b[1] - a[1],
- z = b[2] - a[2];
- return Math.sqrt(x*x + y*y + z*z);
-};
-
-/**
- * Alias for {@link vec3.distance}
- * @function
- */
-vec3.dist = vec3.distance;
-
-/**
- * Calculates the squared euclidian distance between two vec3's
- *
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {Number} squared distance between a and b
- */
-vec3.squaredDistance = function(a, b) {
- var x = b[0] - a[0],
- y = b[1] - a[1],
- z = b[2] - a[2];
- return x*x + y*y + z*z;
-};
-
-/**
- * Alias for {@link vec3.squaredDistance}
- * @function
- */
-vec3.sqrDist = vec3.squaredDistance;
-
-/**
- * Calculates the length of a vec3
- *
- * @param {vec3} a vector to calculate length of
- * @returns {Number} length of a
- */
-vec3.length = function (a) {
- var x = a[0],
- y = a[1],
- z = a[2];
- return Math.sqrt(x*x + y*y + z*z);
-};
-
-/**
- * Alias for {@link vec3.length}
- * @function
- */
-vec3.len = vec3.length;
-
-/**
- * Calculates the squared length of a vec3
- *
- * @param {vec3} a vector to calculate squared length of
- * @returns {Number} squared length of a
- */
-vec3.squaredLength = function (a) {
- var x = a[0],
- y = a[1],
- z = a[2];
- return x*x + y*y + z*z;
-};
-
-/**
- * Alias for {@link vec3.squaredLength}
- * @function
- */
-vec3.sqrLen = vec3.squaredLength;
-
-/**
- * Negates the components of a vec3
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a vector to negate
- * @returns {vec3} out
- */
-vec3.negate = function(out, a) {
- out[0] = -a[0];
- out[1] = -a[1];
- out[2] = -a[2];
- return out;
-};
-
-/**
- * Returns the inverse of the components of a vec3
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a vector to invert
- * @returns {vec3} out
- */
-vec3.inverse = function(out, a) {
- out[0] = 1.0 / a[0];
- out[1] = 1.0 / a[1];
- out[2] = 1.0 / a[2];
- return out;
-};
-
-/**
- * Normalize a vec3
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a vector to normalize
- * @returns {vec3} out
- */
-vec3.normalize = function(out, a) {
- var x = a[0],
- y = a[1],
- z = a[2];
- var len = x*x + y*y + z*z;
- if (len > 0) {
- //TODO: evaluate use of glm_invsqrt here?
- len = 1 / Math.sqrt(len);
- out[0] = a[0] * len;
- out[1] = a[1] * len;
- out[2] = a[2] * len;
- }
- return out;
-};
-
-/**
- * Calculates the dot product of two vec3's
- *
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {Number} dot product of a and b
- */
-vec3.dot = function (a, b) {
- return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
-};
-
-/**
- * Computes the cross product of two vec3's
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @returns {vec3} out
- */
-vec3.cross = function(out, a, b) {
- var ax = a[0], ay = a[1], az = a[2],
- bx = b[0], by = b[1], bz = b[2];
-
- out[0] = ay * bz - az * by;
- out[1] = az * bx - ax * bz;
- out[2] = ax * by - ay * bx;
- return out;
-};
-
-/**
- * Performs a linear interpolation between two vec3's
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the first operand
- * @param {vec3} b the second operand
- * @param {Number} t interpolation amount between the two inputs
- * @returns {vec3} out
- */
-vec3.lerp = function (out, a, b, t) {
- var ax = a[0],
- ay = a[1],
- az = a[2];
- out[0] = ax + t * (b[0] - ax);
- out[1] = ay + t * (b[1] - ay);
- out[2] = az + t * (b[2] - az);
- return out;
-};
-
-/**
- * Generates a random vector with the given scale
- *
- * @param {vec3} out the receiving vector
- * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned
- * @returns {vec3} out
- */
-vec3.random = function (out, scale) {
- scale = scale || 1.0;
-
- var r = GLMAT_RANDOM() * 2.0 * Math.PI;
- var z = (GLMAT_RANDOM() * 2.0) - 1.0;
- var zScale = Math.sqrt(1.0-z*z) * scale;
-
- out[0] = Math.cos(r) * zScale;
- out[1] = Math.sin(r) * zScale;
- out[2] = z * scale;
- return out;
-};
-
-/**
- * Transforms the vec3 with a mat4.
- * 4th vector component is implicitly '1'
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the vector to transform
- * @param {mat4} m matrix to transform with
- * @returns {vec3} out
- */
-vec3.transformMat4 = function(out, a, m) {
- var x = a[0], y = a[1], z = a[2],
- w = m[3] * x + m[7] * y + m[11] * z + m[15];
- w = w || 1.0;
- out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;
- out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;
- out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;
- return out;
-};
-
-/**
- * Transforms the vec3 with a mat3.
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the vector to transform
- * @param {mat4} m the 3x3 matrix to transform with
- * @returns {vec3} out
- */
-vec3.transformMat3 = function(out, a, m) {
- var x = a[0], y = a[1], z = a[2];
- out[0] = x * m[0] + y * m[3] + z * m[6];
- out[1] = x * m[1] + y * m[4] + z * m[7];
- out[2] = x * m[2] + y * m[5] + z * m[8];
- return out;
-};
-
-/**
- * Transforms the vec3 with a quat
- *
- * @param {vec3} out the receiving vector
- * @param {vec3} a the vector to transform
- * @param {quat} q quaternion to transform with
- * @returns {vec3} out
- */
-vec3.transformQuat = function(out, a, q) {
- // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations
-
- var x = a[0], y = a[1], z = a[2],
- qx = q[0], qy = q[1], qz = q[2], qw = q[3],
-
- // calculate quat * vec
- ix = qw * x + qy * z - qz * y,
- iy = qw * y + qz * x - qx * z,
- iz = qw * z + qx * y - qy * x,
- iw = -qx * x - qy * y - qz * z;
-
- // calculate result * inverse quat
- out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
- out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
- out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
- return out;
-};
-
-/**
- * Rotate a 3D vector around the x-axis
- * @param {vec3} out The receiving vec3
- * @param {vec3} a The vec3 point to rotate
- * @param {vec3} b The origin of the rotation
- * @param {Number} c The angle of rotation
- * @returns {vec3} out
- */
-vec3.rotateX = function(out, a, b, c){
- var p = [], r=[];
- //Translate point to the origin
- p[0] = a[0] - b[0];
- p[1] = a[1] - b[1];
- p[2] = a[2] - b[2];
-
- //perform rotation
- r[0] = p[0];
- r[1] = p[1]*Math.cos(c) - p[2]*Math.sin(c);
- r[2] = p[1]*Math.sin(c) + p[2]*Math.cos(c);
-
- //translate to correct position
- out[0] = r[0] + b[0];
- out[1] = r[1] + b[1];
- out[2] = r[2] + b[2];
-
- return out;
-};
-
-/**
- * Rotate a 3D vector around the y-axis
- * @param {vec3} out The receiving vec3
- * @param {vec3} a The vec3 point to rotate
- * @param {vec3} b The origin of the rotation
- * @param {Number} c The angle of rotation
- * @returns {vec3} out
- */
-vec3.rotateY = function(out, a, b, c){
- var p = [], r=[];
- //Translate point to the origin
- p[0] = a[0] - b[0];
- p[1] = a[1] - b[1];
- p[2] = a[2] - b[2];
-
- //perform rotation
- r[0] = p[2]*Math.sin(c) + p[0]*Math.cos(c);
- r[1] = p[1];
- r[2] = p[2]*Math.cos(c) - p[0]*Math.sin(c);
-
- //translate to correct position
- out[0] = r[0] + b[0];
- out[1] = r[1] + b[1];
- out[2] = r[2] + b[2];
-
- return out;
-};
-
-/**
- * Rotate a 3D vector around the z-axis
- * @param {vec3} out The receiving vec3
- * @param {vec3} a The vec3 point to rotate
- * @param {vec3} b The origin of the rotation
- * @param {Number} c The angle of rotation
- * @returns {vec3} out
- */
-vec3.rotateZ = function(out, a, b, c){
- var p = [], r=[];
- //Translate point to the origin
- p[0] = a[0] - b[0];
- p[1] = a[1] - b[1];
- p[2] = a[2] - b[2];
-
- //perform rotation
- r[0] = p[0]*Math.cos(c) - p[1]*Math.sin(c);
- r[1] = p[0]*Math.sin(c) + p[1]*Math.cos(c);
- r[2] = p[2];
-
- //translate to correct position
- out[0] = r[0] + b[0];
- out[1] = r[1] + b[1];
- out[2] = r[2] + b[2];
-
- return out;
-};
-
-/**
- * Perform some operation over an array of vec3s.
- *
- * @param {Array} a the array of vectors to iterate over
- * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed
- * @param {Number} offset Number of elements to skip at the beginning of the array
- * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array
- * @param {Function} fn Function to call for each vector in the array
- * @param {Object} [arg] additional argument to pass to fn
- * @returns {Array} a
- * @function
- */
-vec3.forEach = (function() {
- var vec = vec3.create();
-
- return function(a, stride, offset, count, fn, arg) {
- var i, l;
- if(!stride) {
- stride = 3;
- }
-
- if(!offset) {
- offset = 0;
- }
-
- if(count) {
- l = Math.min((count * stride) + offset, a.length);
- } else {
- l = a.length;
- }
-
- for(i = offset; i < l; i += stride) {
- vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2];
- fn(vec, vec, arg);
- a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2];
- }
-
- return a;
- };
-})();
-
-/**
- * Returns a string representation of a vector
- *
- * @param {vec3} vec vector to represent as a string
- * @returns {String} string representation of the vector
- */
-vec3.str = function (a) {
- return 'vec3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')';
-};
-
-if(typeof(exports) !== 'undefined') {
- exports.vec3 = vec3;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class 4 Dimensional Vector
- * @name vec4
- */
-
-var vec4 = {};
-
-/**
- * Creates a new, empty vec4
- *
- * @returns {vec4} a new 4D vector
- */
-vec4.create = function() {
- var out = new GLMAT_ARRAY_TYPE(4);
- out[0] = 0;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- return out;
-};
-
-/**
- * Creates a new vec4 initialized with values from an existing vector
- *
- * @param {vec4} a vector to clone
- * @returns {vec4} a new 4D vector
- */
-vec4.clone = function(a) {
- var out = new GLMAT_ARRAY_TYPE(4);
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- return out;
-};
-
-/**
- * Creates a new vec4 initialized with the given values
- *
- * @param {Number} x X component
- * @param {Number} y Y component
- * @param {Number} z Z component
- * @param {Number} w W component
- * @returns {vec4} a new 4D vector
- */
-vec4.fromValues = function(x, y, z, w) {
- var out = new GLMAT_ARRAY_TYPE(4);
- out[0] = x;
- out[1] = y;
- out[2] = z;
- out[3] = w;
- return out;
-};
-
-/**
- * Copy the values from one vec4 to another
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the source vector
- * @returns {vec4} out
- */
-vec4.copy = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- return out;
-};
-
-/**
- * Set the components of a vec4 to the given values
- *
- * @param {vec4} out the receiving vector
- * @param {Number} x X component
- * @param {Number} y Y component
- * @param {Number} z Z component
- * @param {Number} w W component
- * @returns {vec4} out
- */
-vec4.set = function(out, x, y, z, w) {
- out[0] = x;
- out[1] = y;
- out[2] = z;
- out[3] = w;
- return out;
-};
-
-/**
- * Adds two vec4's
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {vec4} out
- */
-vec4.add = function(out, a, b) {
- out[0] = a[0] + b[0];
- out[1] = a[1] + b[1];
- out[2] = a[2] + b[2];
- out[3] = a[3] + b[3];
- return out;
-};
-
-/**
- * Subtracts vector b from vector a
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {vec4} out
- */
-vec4.subtract = function(out, a, b) {
- out[0] = a[0] - b[0];
- out[1] = a[1] - b[1];
- out[2] = a[2] - b[2];
- out[3] = a[3] - b[3];
- return out;
-};
-
-/**
- * Alias for {@link vec4.subtract}
- * @function
- */
-vec4.sub = vec4.subtract;
-
-/**
- * Multiplies two vec4's
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {vec4} out
- */
-vec4.multiply = function(out, a, b) {
- out[0] = a[0] * b[0];
- out[1] = a[1] * b[1];
- out[2] = a[2] * b[2];
- out[3] = a[3] * b[3];
- return out;
-};
-
-/**
- * Alias for {@link vec4.multiply}
- * @function
- */
-vec4.mul = vec4.multiply;
-
-/**
- * Divides two vec4's
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {vec4} out
- */
-vec4.divide = function(out, a, b) {
- out[0] = a[0] / b[0];
- out[1] = a[1] / b[1];
- out[2] = a[2] / b[2];
- out[3] = a[3] / b[3];
- return out;
-};
-
-/**
- * Alias for {@link vec4.divide}
- * @function
- */
-vec4.div = vec4.divide;
-
-/**
- * Returns the minimum of two vec4's
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {vec4} out
- */
-vec4.min = function(out, a, b) {
- out[0] = Math.min(a[0], b[0]);
- out[1] = Math.min(a[1], b[1]);
- out[2] = Math.min(a[2], b[2]);
- out[3] = Math.min(a[3], b[3]);
- return out;
-};
-
-/**
- * Returns the maximum of two vec4's
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {vec4} out
- */
-vec4.max = function(out, a, b) {
- out[0] = Math.max(a[0], b[0]);
- out[1] = Math.max(a[1], b[1]);
- out[2] = Math.max(a[2], b[2]);
- out[3] = Math.max(a[3], b[3]);
- return out;
-};
-
-/**
- * Scales a vec4 by a scalar number
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the vector to scale
- * @param {Number} b amount to scale the vector by
- * @returns {vec4} out
- */
-vec4.scale = function(out, a, b) {
- out[0] = a[0] * b;
- out[1] = a[1] * b;
- out[2] = a[2] * b;
- out[3] = a[3] * b;
- return out;
-};
-
-/**
- * Adds two vec4's after scaling the second operand by a scalar value
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @param {Number} scale the amount to scale b by before adding
- * @returns {vec4} out
- */
-vec4.scaleAndAdd = function(out, a, b, scale) {
- out[0] = a[0] + (b[0] * scale);
- out[1] = a[1] + (b[1] * scale);
- out[2] = a[2] + (b[2] * scale);
- out[3] = a[3] + (b[3] * scale);
- return out;
-};
-
-/**
- * Calculates the euclidian distance between two vec4's
- *
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {Number} distance between a and b
- */
-vec4.distance = function(a, b) {
- var x = b[0] - a[0],
- y = b[1] - a[1],
- z = b[2] - a[2],
- w = b[3] - a[3];
- return Math.sqrt(x*x + y*y + z*z + w*w);
-};
-
-/**
- * Alias for {@link vec4.distance}
- * @function
- */
-vec4.dist = vec4.distance;
-
-/**
- * Calculates the squared euclidian distance between two vec4's
- *
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {Number} squared distance between a and b
- */
-vec4.squaredDistance = function(a, b) {
- var x = b[0] - a[0],
- y = b[1] - a[1],
- z = b[2] - a[2],
- w = b[3] - a[3];
- return x*x + y*y + z*z + w*w;
-};
-
-/**
- * Alias for {@link vec4.squaredDistance}
- * @function
- */
-vec4.sqrDist = vec4.squaredDistance;
-
-/**
- * Calculates the length of a vec4
- *
- * @param {vec4} a vector to calculate length of
- * @returns {Number} length of a
- */
-vec4.length = function (a) {
- var x = a[0],
- y = a[1],
- z = a[2],
- w = a[3];
- return Math.sqrt(x*x + y*y + z*z + w*w);
-};
-
-/**
- * Alias for {@link vec4.length}
- * @function
- */
-vec4.len = vec4.length;
-
-/**
- * Calculates the squared length of a vec4
- *
- * @param {vec4} a vector to calculate squared length of
- * @returns {Number} squared length of a
- */
-vec4.squaredLength = function (a) {
- var x = a[0],
- y = a[1],
- z = a[2],
- w = a[3];
- return x*x + y*y + z*z + w*w;
-};
-
-/**
- * Alias for {@link vec4.squaredLength}
- * @function
- */
-vec4.sqrLen = vec4.squaredLength;
-
-/**
- * Negates the components of a vec4
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a vector to negate
- * @returns {vec4} out
- */
-vec4.negate = function(out, a) {
- out[0] = -a[0];
- out[1] = -a[1];
- out[2] = -a[2];
- out[3] = -a[3];
- return out;
-};
-
-/**
- * Returns the inverse of the components of a vec4
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a vector to invert
- * @returns {vec4} out
- */
-vec4.inverse = function(out, a) {
- out[0] = 1.0 / a[0];
- out[1] = 1.0 / a[1];
- out[2] = 1.0 / a[2];
- out[3] = 1.0 / a[3];
- return out;
-};
-
-/**
- * Normalize a vec4
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a vector to normalize
- * @returns {vec4} out
- */
-vec4.normalize = function(out, a) {
- var x = a[0],
- y = a[1],
- z = a[2],
- w = a[3];
- var len = x*x + y*y + z*z + w*w;
- if (len > 0) {
- len = 1 / Math.sqrt(len);
- out[0] = a[0] * len;
- out[1] = a[1] * len;
- out[2] = a[2] * len;
- out[3] = a[3] * len;
- }
- return out;
-};
-
-/**
- * Calculates the dot product of two vec4's
- *
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @returns {Number} dot product of a and b
- */
-vec4.dot = function (a, b) {
- return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
-};
-
-/**
- * Performs a linear interpolation between two vec4's
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the first operand
- * @param {vec4} b the second operand
- * @param {Number} t interpolation amount between the two inputs
- * @returns {vec4} out
- */
-vec4.lerp = function (out, a, b, t) {
- var ax = a[0],
- ay = a[1],
- az = a[2],
- aw = a[3];
- out[0] = ax + t * (b[0] - ax);
- out[1] = ay + t * (b[1] - ay);
- out[2] = az + t * (b[2] - az);
- out[3] = aw + t * (b[3] - aw);
- return out;
-};
-
-/**
- * Generates a random vector with the given scale
- *
- * @param {vec4} out the receiving vector
- * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned
- * @returns {vec4} out
- */
-vec4.random = function (out, scale) {
- scale = scale || 1.0;
-
- //TODO: This is a pretty awful way of doing this. Find something better.
- out[0] = GLMAT_RANDOM();
- out[1] = GLMAT_RANDOM();
- out[2] = GLMAT_RANDOM();
- out[3] = GLMAT_RANDOM();
- vec4.normalize(out, out);
- vec4.scale(out, out, scale);
- return out;
-};
-
-/**
- * Transforms the vec4 with a mat4.
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the vector to transform
- * @param {mat4} m matrix to transform with
- * @returns {vec4} out
- */
-vec4.transformMat4 = function(out, a, m) {
- var x = a[0], y = a[1], z = a[2], w = a[3];
- out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;
- out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;
- out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;
- out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;
- return out;
-};
-
-/**
- * Transforms the vec4 with a quat
- *
- * @param {vec4} out the receiving vector
- * @param {vec4} a the vector to transform
- * @param {quat} q quaternion to transform with
- * @returns {vec4} out
- */
-vec4.transformQuat = function(out, a, q) {
- var x = a[0], y = a[1], z = a[2],
- qx = q[0], qy = q[1], qz = q[2], qw = q[3],
-
- // calculate quat * vec
- ix = qw * x + qy * z - qz * y,
- iy = qw * y + qz * x - qx * z,
- iz = qw * z + qx * y - qy * x,
- iw = -qx * x - qy * y - qz * z;
-
- // calculate result * inverse quat
- out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
- out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
- out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
- return out;
-};
-
-/**
- * Perform some operation over an array of vec4s.
- *
- * @param {Array} a the array of vectors to iterate over
- * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed
- * @param {Number} offset Number of elements to skip at the beginning of the array
- * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array
- * @param {Function} fn Function to call for each vector in the array
- * @param {Object} [arg] additional argument to pass to fn
- * @returns {Array} a
- * @function
- */
-vec4.forEach = (function() {
- var vec = vec4.create();
-
- return function(a, stride, offset, count, fn, arg) {
- var i, l;
- if(!stride) {
- stride = 4;
- }
-
- if(!offset) {
- offset = 0;
- }
-
- if(count) {
- l = Math.min((count * stride) + offset, a.length);
- } else {
- l = a.length;
- }
-
- for(i = offset; i < l; i += stride) {
- vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2]; vec[3] = a[i+3];
- fn(vec, vec, arg);
- a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2]; a[i+3] = vec[3];
- }
-
- return a;
- };
-})();
-
-/**
- * Returns a string representation of a vector
- *
- * @param {vec4} vec vector to represent as a string
- * @returns {String} string representation of the vector
- */
-vec4.str = function (a) {
- return 'vec4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';
-};
-
-if(typeof(exports) !== 'undefined') {
- exports.vec4 = vec4;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class 2x2 Matrix
- * @name mat2
- */
-
-var mat2 = {};
-
-/**
- * Creates a new identity mat2
- *
- * @returns {mat2} a new 2x2 matrix
- */
-mat2.create = function() {
- var out = new GLMAT_ARRAY_TYPE(4);
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- return out;
-};
-
-/**
- * Creates a new mat2 initialized with values from an existing matrix
- *
- * @param {mat2} a matrix to clone
- * @returns {mat2} a new 2x2 matrix
- */
-mat2.clone = function(a) {
- var out = new GLMAT_ARRAY_TYPE(4);
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- return out;
-};
-
-/**
- * Copy the values from one mat2 to another
- *
- * @param {mat2} out the receiving matrix
- * @param {mat2} a the source matrix
- * @returns {mat2} out
- */
-mat2.copy = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- return out;
-};
-
-/**
- * Set a mat2 to the identity matrix
- *
- * @param {mat2} out the receiving matrix
- * @returns {mat2} out
- */
-mat2.identity = function(out) {
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- return out;
-};
-
-/**
- * Transpose the values of a mat2
- *
- * @param {mat2} out the receiving matrix
- * @param {mat2} a the source matrix
- * @returns {mat2} out
- */
-mat2.transpose = function(out, a) {
- // If we are transposing ourselves we can skip a few steps but have to cache some values
- if (out === a) {
- var a1 = a[1];
- out[1] = a[2];
- out[2] = a1;
- } else {
- out[0] = a[0];
- out[1] = a[2];
- out[2] = a[1];
- out[3] = a[3];
- }
-
- return out;
-};
-
-/**
- * Inverts a mat2
- *
- * @param {mat2} out the receiving matrix
- * @param {mat2} a the source matrix
- * @returns {mat2} out
- */
-mat2.invert = function(out, a) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
-
- // Calculate the determinant
- det = a0 * a3 - a2 * a1;
-
- if (!det) {
- return null;
- }
- det = 1.0 / det;
-
- out[0] = a3 * det;
- out[1] = -a1 * det;
- out[2] = -a2 * det;
- out[3] = a0 * det;
-
- return out;
-};
-
-/**
- * Calculates the adjugate of a mat2
- *
- * @param {mat2} out the receiving matrix
- * @param {mat2} a the source matrix
- * @returns {mat2} out
- */
-mat2.adjoint = function(out, a) {
- // Caching this value is nessecary if out == a
- var a0 = a[0];
- out[0] = a[3];
- out[1] = -a[1];
- out[2] = -a[2];
- out[3] = a0;
-
- return out;
-};
-
-/**
- * Calculates the determinant of a mat2
- *
- * @param {mat2} a the source matrix
- * @returns {Number} determinant of a
- */
-mat2.determinant = function (a) {
- return a[0] * a[3] - a[2] * a[1];
-};
-
-/**
- * Multiplies two mat2's
- *
- * @param {mat2} out the receiving matrix
- * @param {mat2} a the first operand
- * @param {mat2} b the second operand
- * @returns {mat2} out
- */
-mat2.multiply = function (out, a, b) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];
- var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
- out[0] = a0 * b0 + a2 * b1;
- out[1] = a1 * b0 + a3 * b1;
- out[2] = a0 * b2 + a2 * b3;
- out[3] = a1 * b2 + a3 * b3;
- return out;
-};
-
-/**
- * Alias for {@link mat2.multiply}
- * @function
- */
-mat2.mul = mat2.multiply;
-
-/**
- * Rotates a mat2 by the given angle
- *
- * @param {mat2} out the receiving matrix
- * @param {mat2} a the matrix to rotate
- * @param {Number} rad the angle to rotate the matrix by
- * @returns {mat2} out
- */
-mat2.rotate = function (out, a, rad) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
- s = Math.sin(rad),
- c = Math.cos(rad);
- out[0] = a0 * c + a2 * s;
- out[1] = a1 * c + a3 * s;
- out[2] = a0 * -s + a2 * c;
- out[3] = a1 * -s + a3 * c;
- return out;
-};
-
-/**
- * Scales the mat2 by the dimensions in the given vec2
- *
- * @param {mat2} out the receiving matrix
- * @param {mat2} a the matrix to rotate
- * @param {vec2} v the vec2 to scale the matrix by
- * @returns {mat2} out
- **/
-mat2.scale = function(out, a, v) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
- v0 = v[0], v1 = v[1];
- out[0] = a0 * v0;
- out[1] = a1 * v0;
- out[2] = a2 * v1;
- out[3] = a3 * v1;
- return out;
-};
-
-/**
- * Returns a string representation of a mat2
- *
- * @param {mat2} mat matrix to represent as a string
- * @returns {String} string representation of the matrix
- */
-mat2.str = function (a) {
- return 'mat2(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';
-};
-
-/**
- * Returns Frobenius norm of a mat2
- *
- * @param {mat2} a the matrix to calculate Frobenius norm of
- * @returns {Number} Frobenius norm
- */
-mat2.frob = function (a) {
- return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2)))
-};
-
-/**
- * Returns L, D and U matrices (Lower triangular, Diagonal and Upper triangular) by factorizing the input matrix
- * @param {mat2} L the lower triangular matrix
- * @param {mat2} D the diagonal matrix
- * @param {mat2} U the upper triangular matrix
- * @param {mat2} a the input matrix to factorize
- */
-
-mat2.LDU = function (L, D, U, a) {
- L[2] = a[2]/a[0];
- U[0] = a[0];
- U[1] = a[1];
- U[3] = a[3] - L[2] * U[1];
- return [L, D, U];
-};
-
-if(typeof(exports) !== 'undefined') {
- exports.mat2 = mat2;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class 2x3 Matrix
- * @name mat2d
- *
- * @description
- * A mat2d contains six elements defined as:
- *
- * [a, c, tx,
- * b, d, ty]
- *
- * This is a short form for the 3x3 matrix:
- *
- * [a, c, tx,
- * b, d, ty,
- * 0, 0, 1]
- *
- * The last row is ignored so the array is shorter and operations are faster.
- */
-
-var mat2d = {};
-
-/**
- * Creates a new identity mat2d
- *
- * @returns {mat2d} a new 2x3 matrix
- */
-mat2d.create = function() {
- var out = new GLMAT_ARRAY_TYPE(6);
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- out[4] = 0;
- out[5] = 0;
- return out;
-};
-
-/**
- * Creates a new mat2d initialized with values from an existing matrix
- *
- * @param {mat2d} a matrix to clone
- * @returns {mat2d} a new 2x3 matrix
- */
-mat2d.clone = function(a) {
- var out = new GLMAT_ARRAY_TYPE(6);
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[4] = a[4];
- out[5] = a[5];
- return out;
-};
-
-/**
- * Copy the values from one mat2d to another
- *
- * @param {mat2d} out the receiving matrix
- * @param {mat2d} a the source matrix
- * @returns {mat2d} out
- */
-mat2d.copy = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[4] = a[4];
- out[5] = a[5];
- return out;
-};
-
-/**
- * Set a mat2d to the identity matrix
- *
- * @param {mat2d} out the receiving matrix
- * @returns {mat2d} out
- */
-mat2d.identity = function(out) {
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- out[4] = 0;
- out[5] = 0;
- return out;
-};
-
-/**
- * Inverts a mat2d
- *
- * @param {mat2d} out the receiving matrix
- * @param {mat2d} a the source matrix
- * @returns {mat2d} out
- */
-mat2d.invert = function(out, a) {
- var aa = a[0], ab = a[1], ac = a[2], ad = a[3],
- atx = a[4], aty = a[5];
-
- var det = aa * ad - ab * ac;
- if(!det){
- return null;
- }
- det = 1.0 / det;
-
- out[0] = ad * det;
- out[1] = -ab * det;
- out[2] = -ac * det;
- out[3] = aa * det;
- out[4] = (ac * aty - ad * atx) * det;
- out[5] = (ab * atx - aa * aty) * det;
- return out;
-};
-
-/**
- * Calculates the determinant of a mat2d
- *
- * @param {mat2d} a the source matrix
- * @returns {Number} determinant of a
- */
-mat2d.determinant = function (a) {
- return a[0] * a[3] - a[1] * a[2];
-};
-
-/**
- * Multiplies two mat2d's
- *
- * @param {mat2d} out the receiving matrix
- * @param {mat2d} a the first operand
- * @param {mat2d} b the second operand
- * @returns {mat2d} out
- */
-mat2d.multiply = function (out, a, b) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
- b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5];
- out[0] = a0 * b0 + a2 * b1;
- out[1] = a1 * b0 + a3 * b1;
- out[2] = a0 * b2 + a2 * b3;
- out[3] = a1 * b2 + a3 * b3;
- out[4] = a0 * b4 + a2 * b5 + a4;
- out[5] = a1 * b4 + a3 * b5 + a5;
- return out;
-};
-
-/**
- * Alias for {@link mat2d.multiply}
- * @function
- */
-mat2d.mul = mat2d.multiply;
-
-
-/**
- * Rotates a mat2d by the given angle
- *
- * @param {mat2d} out the receiving matrix
- * @param {mat2d} a the matrix to rotate
- * @param {Number} rad the angle to rotate the matrix by
- * @returns {mat2d} out
- */
-mat2d.rotate = function (out, a, rad) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
- s = Math.sin(rad),
- c = Math.cos(rad);
- out[0] = a0 * c + a2 * s;
- out[1] = a1 * c + a3 * s;
- out[2] = a0 * -s + a2 * c;
- out[3] = a1 * -s + a3 * c;
- out[4] = a4;
- out[5] = a5;
- return out;
-};
-
-/**
- * Scales the mat2d by the dimensions in the given vec2
- *
- * @param {mat2d} out the receiving matrix
- * @param {mat2d} a the matrix to translate
- * @param {vec2} v the vec2 to scale the matrix by
- * @returns {mat2d} out
- **/
-mat2d.scale = function(out, a, v) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
- v0 = v[0], v1 = v[1];
- out[0] = a0 * v0;
- out[1] = a1 * v0;
- out[2] = a2 * v1;
- out[3] = a3 * v1;
- out[4] = a4;
- out[5] = a5;
- return out;
-};
-
-/**
- * Translates the mat2d by the dimensions in the given vec2
- *
- * @param {mat2d} out the receiving matrix
- * @param {mat2d} a the matrix to translate
- * @param {vec2} v the vec2 to translate the matrix by
- * @returns {mat2d} out
- **/
-mat2d.translate = function(out, a, v) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
- v0 = v[0], v1 = v[1];
- out[0] = a0;
- out[1] = a1;
- out[2] = a2;
- out[3] = a3;
- out[4] = a0 * v0 + a2 * v1 + a4;
- out[5] = a1 * v0 + a3 * v1 + a5;
- return out;
-};
-
-/**
- * Returns a string representation of a mat2d
- *
- * @param {mat2d} a matrix to represent as a string
- * @returns {String} string representation of the matrix
- */
-mat2d.str = function (a) {
- return 'mat2d(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' +
- a[3] + ', ' + a[4] + ', ' + a[5] + ')';
-};
-
-/**
- * Returns Frobenius norm of a mat2d
- *
- * @param {mat2d} a the matrix to calculate Frobenius norm of
- * @returns {Number} Frobenius norm
- */
-mat2d.frob = function (a) {
- return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + 1))
-};
-
-if(typeof(exports) !== 'undefined') {
- exports.mat2d = mat2d;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class 3x3 Matrix
- * @name mat3
- */
-
-var mat3 = {};
-
-/**
- * Creates a new identity mat3
- *
- * @returns {mat3} a new 3x3 matrix
- */
-mat3.create = function() {
- var out = new GLMAT_ARRAY_TYPE(9);
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- out[4] = 1;
- out[5] = 0;
- out[6] = 0;
- out[7] = 0;
- out[8] = 1;
- return out;
-};
-
-/**
- * Copies the upper-left 3x3 values into the given mat3.
- *
- * @param {mat3} out the receiving 3x3 matrix
- * @param {mat4} a the source 4x4 matrix
- * @returns {mat3} out
- */
-mat3.fromMat4 = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[4];
- out[4] = a[5];
- out[5] = a[6];
- out[6] = a[8];
- out[7] = a[9];
- out[8] = a[10];
- return out;
-};
-
-/**
- * Creates a new mat3 initialized with values from an existing matrix
- *
- * @param {mat3} a matrix to clone
- * @returns {mat3} a new 3x3 matrix
- */
-mat3.clone = function(a) {
- var out = new GLMAT_ARRAY_TYPE(9);
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[4] = a[4];
- out[5] = a[5];
- out[6] = a[6];
- out[7] = a[7];
- out[8] = a[8];
- return out;
-};
-
-/**
- * Copy the values from one mat3 to another
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the source matrix
- * @returns {mat3} out
- */
-mat3.copy = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[4] = a[4];
- out[5] = a[5];
- out[6] = a[6];
- out[7] = a[7];
- out[8] = a[8];
- return out;
-};
-
-/**
- * Set a mat3 to the identity matrix
- *
- * @param {mat3} out the receiving matrix
- * @returns {mat3} out
- */
-mat3.identity = function(out) {
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- out[4] = 1;
- out[5] = 0;
- out[6] = 0;
- out[7] = 0;
- out[8] = 1;
- return out;
-};
-
-/**
- * Transpose the values of a mat3
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the source matrix
- * @returns {mat3} out
- */
-mat3.transpose = function(out, a) {
- // If we are transposing ourselves we can skip a few steps but have to cache some values
- if (out === a) {
- var a01 = a[1], a02 = a[2], a12 = a[5];
- out[1] = a[3];
- out[2] = a[6];
- out[3] = a01;
- out[5] = a[7];
- out[6] = a02;
- out[7] = a12;
- } else {
- out[0] = a[0];
- out[1] = a[3];
- out[2] = a[6];
- out[3] = a[1];
- out[4] = a[4];
- out[5] = a[7];
- out[6] = a[2];
- out[7] = a[5];
- out[8] = a[8];
- }
-
- return out;
-};
-
-/**
- * Inverts a mat3
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the source matrix
- * @returns {mat3} out
- */
-mat3.invert = function(out, a) {
- var a00 = a[0], a01 = a[1], a02 = a[2],
- a10 = a[3], a11 = a[4], a12 = a[5],
- a20 = a[6], a21 = a[7], a22 = a[8],
-
- b01 = a22 * a11 - a12 * a21,
- b11 = -a22 * a10 + a12 * a20,
- b21 = a21 * a10 - a11 * a20,
-
- // Calculate the determinant
- det = a00 * b01 + a01 * b11 + a02 * b21;
-
- if (!det) {
- return null;
- }
- det = 1.0 / det;
-
- out[0] = b01 * det;
- out[1] = (-a22 * a01 + a02 * a21) * det;
- out[2] = (a12 * a01 - a02 * a11) * det;
- out[3] = b11 * det;
- out[4] = (a22 * a00 - a02 * a20) * det;
- out[5] = (-a12 * a00 + a02 * a10) * det;
- out[6] = b21 * det;
- out[7] = (-a21 * a00 + a01 * a20) * det;
- out[8] = (a11 * a00 - a01 * a10) * det;
- return out;
-};
-
-/**
- * Calculates the adjugate of a mat3
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the source matrix
- * @returns {mat3} out
- */
-mat3.adjoint = function(out, a) {
- var a00 = a[0], a01 = a[1], a02 = a[2],
- a10 = a[3], a11 = a[4], a12 = a[5],
- a20 = a[6], a21 = a[7], a22 = a[8];
-
- out[0] = (a11 * a22 - a12 * a21);
- out[1] = (a02 * a21 - a01 * a22);
- out[2] = (a01 * a12 - a02 * a11);
- out[3] = (a12 * a20 - a10 * a22);
- out[4] = (a00 * a22 - a02 * a20);
- out[5] = (a02 * a10 - a00 * a12);
- out[6] = (a10 * a21 - a11 * a20);
- out[7] = (a01 * a20 - a00 * a21);
- out[8] = (a00 * a11 - a01 * a10);
- return out;
-};
-
-/**
- * Calculates the determinant of a mat3
- *
- * @param {mat3} a the source matrix
- * @returns {Number} determinant of a
- */
-mat3.determinant = function (a) {
- var a00 = a[0], a01 = a[1], a02 = a[2],
- a10 = a[3], a11 = a[4], a12 = a[5],
- a20 = a[6], a21 = a[7], a22 = a[8];
-
- return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
-};
-
-/**
- * Multiplies two mat3's
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the first operand
- * @param {mat3} b the second operand
- * @returns {mat3} out
- */
-mat3.multiply = function (out, a, b) {
- var a00 = a[0], a01 = a[1], a02 = a[2],
- a10 = a[3], a11 = a[4], a12 = a[5],
- a20 = a[6], a21 = a[7], a22 = a[8],
-
- b00 = b[0], b01 = b[1], b02 = b[2],
- b10 = b[3], b11 = b[4], b12 = b[5],
- b20 = b[6], b21 = b[7], b22 = b[8];
-
- out[0] = b00 * a00 + b01 * a10 + b02 * a20;
- out[1] = b00 * a01 + b01 * a11 + b02 * a21;
- out[2] = b00 * a02 + b01 * a12 + b02 * a22;
-
- out[3] = b10 * a00 + b11 * a10 + b12 * a20;
- out[4] = b10 * a01 + b11 * a11 + b12 * a21;
- out[5] = b10 * a02 + b11 * a12 + b12 * a22;
-
- out[6] = b20 * a00 + b21 * a10 + b22 * a20;
- out[7] = b20 * a01 + b21 * a11 + b22 * a21;
- out[8] = b20 * a02 + b21 * a12 + b22 * a22;
- return out;
-};
-
-/**
- * Alias for {@link mat3.multiply}
- * @function
- */
-mat3.mul = mat3.multiply;
-
-/**
- * Translate a mat3 by the given vector
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the matrix to translate
- * @param {vec2} v vector to translate by
- * @returns {mat3} out
- */
-mat3.translate = function(out, a, v) {
- var a00 = a[0], a01 = a[1], a02 = a[2],
- a10 = a[3], a11 = a[4], a12 = a[5],
- a20 = a[6], a21 = a[7], a22 = a[8],
- x = v[0], y = v[1];
-
- out[0] = a00;
- out[1] = a01;
- out[2] = a02;
-
- out[3] = a10;
- out[4] = a11;
- out[5] = a12;
-
- out[6] = x * a00 + y * a10 + a20;
- out[7] = x * a01 + y * a11 + a21;
- out[8] = x * a02 + y * a12 + a22;
- return out;
-};
-
-/**
- * Rotates a mat3 by the given angle
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the matrix to rotate
- * @param {Number} rad the angle to rotate the matrix by
- * @returns {mat3} out
- */
-mat3.rotate = function (out, a, rad) {
- var a00 = a[0], a01 = a[1], a02 = a[2],
- a10 = a[3], a11 = a[4], a12 = a[5],
- a20 = a[6], a21 = a[7], a22 = a[8],
-
- s = Math.sin(rad),
- c = Math.cos(rad);
-
- out[0] = c * a00 + s * a10;
- out[1] = c * a01 + s * a11;
- out[2] = c * a02 + s * a12;
-
- out[3] = c * a10 - s * a00;
- out[4] = c * a11 - s * a01;
- out[5] = c * a12 - s * a02;
-
- out[6] = a20;
- out[7] = a21;
- out[8] = a22;
- return out;
-};
-
-/**
- * Scales the mat3 by the dimensions in the given vec2
- *
- * @param {mat3} out the receiving matrix
- * @param {mat3} a the matrix to rotate
- * @param {vec2} v the vec2 to scale the matrix by
- * @returns {mat3} out
- **/
-mat3.scale = function(out, a, v) {
- var x = v[0], y = v[1];
-
- out[0] = x * a[0];
- out[1] = x * a[1];
- out[2] = x * a[2];
-
- out[3] = y * a[3];
- out[4] = y * a[4];
- out[5] = y * a[5];
-
- out[6] = a[6];
- out[7] = a[7];
- out[8] = a[8];
- return out;
-};
-
-/**
- * Copies the values from a mat2d into a mat3
- *
- * @param {mat3} out the receiving matrix
- * @param {mat2d} a the matrix to copy
- * @returns {mat3} out
- **/
-mat3.fromMat2d = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = 0;
-
- out[3] = a[2];
- out[4] = a[3];
- out[5] = 0;
-
- out[6] = a[4];
- out[7] = a[5];
- out[8] = 1;
- return out;
-};
-
-/**
-* Calculates a 3x3 matrix from the given quaternion
-*
-* @param {mat3} out mat3 receiving operation result
-* @param {quat} q Quaternion to create matrix from
-*
-* @returns {mat3} out
-*/
-mat3.fromQuat = function (out, q) {
- var x = q[0], y = q[1], z = q[2], w = q[3],
- x2 = x + x,
- y2 = y + y,
- z2 = z + z,
-
- xx = x * x2,
- yx = y * x2,
- yy = y * y2,
- zx = z * x2,
- zy = z * y2,
- zz = z * z2,
- wx = w * x2,
- wy = w * y2,
- wz = w * z2;
-
- out[0] = 1 - yy - zz;
- out[3] = yx - wz;
- out[6] = zx + wy;
-
- out[1] = yx + wz;
- out[4] = 1 - xx - zz;
- out[7] = zy - wx;
-
- out[2] = zx - wy;
- out[5] = zy + wx;
- out[8] = 1 - xx - yy;
-
- return out;
-};
-
-/**
-* Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix
-*
-* @param {mat3} out mat3 receiving operation result
-* @param {mat4} a Mat4 to derive the normal matrix from
-*
-* @returns {mat3} out
-*/
-mat3.normalFromMat4 = function (out, a) {
- var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
- a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
- a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
- a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15],
-
- b00 = a00 * a11 - a01 * a10,
- b01 = a00 * a12 - a02 * a10,
- b02 = a00 * a13 - a03 * a10,
- b03 = a01 * a12 - a02 * a11,
- b04 = a01 * a13 - a03 * a11,
- b05 = a02 * a13 - a03 * a12,
- b06 = a20 * a31 - a21 * a30,
- b07 = a20 * a32 - a22 * a30,
- b08 = a20 * a33 - a23 * a30,
- b09 = a21 * a32 - a22 * a31,
- b10 = a21 * a33 - a23 * a31,
- b11 = a22 * a33 - a23 * a32,
-
- // Calculate the determinant
- det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
-
- if (!det) {
- return null;
- }
- det = 1.0 / det;
-
- out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
- out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
- out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
-
- out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
- out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
- out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
-
- out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
- out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
- out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
-
- return out;
-};
-
-/**
- * Returns a string representation of a mat3
- *
- * @param {mat3} mat matrix to represent as a string
- * @returns {String} string representation of the matrix
- */
-mat3.str = function (a) {
- return 'mat3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' +
- a[3] + ', ' + a[4] + ', ' + a[5] + ', ' +
- a[6] + ', ' + a[7] + ', ' + a[8] + ')';
-};
-
-/**
- * Returns Frobenius norm of a mat3
- *
- * @param {mat3} a the matrix to calculate Frobenius norm of
- * @returns {Number} Frobenius norm
- */
-mat3.frob = function (a) {
- return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2)))
-};
-
-
-if(typeof(exports) !== 'undefined') {
- exports.mat3 = mat3;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class 4x4 Matrix
- * @name mat4
- */
-
-var mat4 = {};
-
-/**
- * Creates a new identity mat4
- *
- * @returns {mat4} a new 4x4 matrix
- */
-mat4.create = function() {
- var out = new GLMAT_ARRAY_TYPE(16);
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- out[4] = 0;
- out[5] = 1;
- out[6] = 0;
- out[7] = 0;
- out[8] = 0;
- out[9] = 0;
- out[10] = 1;
- out[11] = 0;
- out[12] = 0;
- out[13] = 0;
- out[14] = 0;
- out[15] = 1;
- return out;
-};
-
-/**
- * Creates a new mat4 initialized with values from an existing matrix
- *
- * @param {mat4} a matrix to clone
- * @returns {mat4} a new 4x4 matrix
- */
-mat4.clone = function(a) {
- var out = new GLMAT_ARRAY_TYPE(16);
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[4] = a[4];
- out[5] = a[5];
- out[6] = a[6];
- out[7] = a[7];
- out[8] = a[8];
- out[9] = a[9];
- out[10] = a[10];
- out[11] = a[11];
- out[12] = a[12];
- out[13] = a[13];
- out[14] = a[14];
- out[15] = a[15];
- return out;
-};
-
-/**
- * Copy the values from one mat4 to another
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the source matrix
- * @returns {mat4} out
- */
-mat4.copy = function(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[4] = a[4];
- out[5] = a[5];
- out[6] = a[6];
- out[7] = a[7];
- out[8] = a[8];
- out[9] = a[9];
- out[10] = a[10];
- out[11] = a[11];
- out[12] = a[12];
- out[13] = a[13];
- out[14] = a[14];
- out[15] = a[15];
- return out;
-};
-
-/**
- * Set a mat4 to the identity matrix
- *
- * @param {mat4} out the receiving matrix
- * @returns {mat4} out
- */
-mat4.identity = function(out) {
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- out[4] = 0;
- out[5] = 1;
- out[6] = 0;
- out[7] = 0;
- out[8] = 0;
- out[9] = 0;
- out[10] = 1;
- out[11] = 0;
- out[12] = 0;
- out[13] = 0;
- out[14] = 0;
- out[15] = 1;
- return out;
-};
-
-/**
- * Transpose the values of a mat4
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the source matrix
- * @returns {mat4} out
- */
-mat4.transpose = function(out, a) {
- // If we are transposing ourselves we can skip a few steps but have to cache some values
- if (out === a) {
- var a01 = a[1], a02 = a[2], a03 = a[3],
- a12 = a[6], a13 = a[7],
- a23 = a[11];
-
- out[1] = a[4];
- out[2] = a[8];
- out[3] = a[12];
- out[4] = a01;
- out[6] = a[9];
- out[7] = a[13];
- out[8] = a02;
- out[9] = a12;
- out[11] = a[14];
- out[12] = a03;
- out[13] = a13;
- out[14] = a23;
- } else {
- out[0] = a[0];
- out[1] = a[4];
- out[2] = a[8];
- out[3] = a[12];
- out[4] = a[1];
- out[5] = a[5];
- out[6] = a[9];
- out[7] = a[13];
- out[8] = a[2];
- out[9] = a[6];
- out[10] = a[10];
- out[11] = a[14];
- out[12] = a[3];
- out[13] = a[7];
- out[14] = a[11];
- out[15] = a[15];
- }
-
- return out;
-};
-
-/**
- * Inverts a mat4
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the source matrix
- * @returns {mat4} out
- */
-mat4.invert = function(out, a) {
- var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
- a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
- a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
- a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15],
-
- b00 = a00 * a11 - a01 * a10,
- b01 = a00 * a12 - a02 * a10,
- b02 = a00 * a13 - a03 * a10,
- b03 = a01 * a12 - a02 * a11,
- b04 = a01 * a13 - a03 * a11,
- b05 = a02 * a13 - a03 * a12,
- b06 = a20 * a31 - a21 * a30,
- b07 = a20 * a32 - a22 * a30,
- b08 = a20 * a33 - a23 * a30,
- b09 = a21 * a32 - a22 * a31,
- b10 = a21 * a33 - a23 * a31,
- b11 = a22 * a33 - a23 * a32,
-
- // Calculate the determinant
- det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
-
- if (!det) {
- return null;
- }
- det = 1.0 / det;
-
- out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
- out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
- out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
- out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;
- out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
- out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
- out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
- out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;
- out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
- out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
- out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
- out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;
- out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;
- out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;
- out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;
- out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;
-
- return out;
-};
-
-/**
- * Calculates the adjugate of a mat4
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the source matrix
- * @returns {mat4} out
- */
-mat4.adjoint = function(out, a) {
- var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
- a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
- a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
- a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
-
- out[0] = (a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22));
- out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));
- out[2] = (a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12));
- out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));
- out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));
- out[5] = (a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22));
- out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));
- out[7] = (a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12));
- out[8] = (a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21));
- out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));
- out[10] = (a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11));
- out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));
- out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));
- out[13] = (a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21));
- out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));
- out[15] = (a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11));
- return out;
-};
-
-/**
- * Calculates the determinant of a mat4
- *
- * @param {mat4} a the source matrix
- * @returns {Number} determinant of a
- */
-mat4.determinant = function (a) {
- var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
- a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
- a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
- a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15],
-
- b00 = a00 * a11 - a01 * a10,
- b01 = a00 * a12 - a02 * a10,
- b02 = a00 * a13 - a03 * a10,
- b03 = a01 * a12 - a02 * a11,
- b04 = a01 * a13 - a03 * a11,
- b05 = a02 * a13 - a03 * a12,
- b06 = a20 * a31 - a21 * a30,
- b07 = a20 * a32 - a22 * a30,
- b08 = a20 * a33 - a23 * a30,
- b09 = a21 * a32 - a22 * a31,
- b10 = a21 * a33 - a23 * a31,
- b11 = a22 * a33 - a23 * a32;
-
- // Calculate the determinant
- return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
-};
-
-/**
- * Multiplies two mat4's
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the first operand
- * @param {mat4} b the second operand
- * @returns {mat4} out
- */
-mat4.multiply = function (out, a, b) {
- var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
- a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
- a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
- a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
-
- // Cache only the current line of the second matrix
- var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
- out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
- out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
- out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
- out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
-
- b0 = b[4]; b1 = b[5]; b2 = b[6]; b3 = b[7];
- out[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
- out[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
- out[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
- out[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
-
- b0 = b[8]; b1 = b[9]; b2 = b[10]; b3 = b[11];
- out[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
- out[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
- out[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
- out[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
-
- b0 = b[12]; b1 = b[13]; b2 = b[14]; b3 = b[15];
- out[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
- out[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
- out[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
- out[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
- return out;
-};
-
-/**
- * Alias for {@link mat4.multiply}
- * @function
- */
-mat4.mul = mat4.multiply;
-
-/**
- * Translate a mat4 by the given vector
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the matrix to translate
- * @param {vec3} v vector to translate by
- * @returns {mat4} out
- */
-mat4.translate = function (out, a, v) {
- var x = v[0], y = v[1], z = v[2],
- a00, a01, a02, a03,
- a10, a11, a12, a13,
- a20, a21, a22, a23;
-
- if (a === out) {
- out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];
- out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];
- out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];
- out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];
- } else {
- a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];
- a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];
- a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];
-
- out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03;
- out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13;
- out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23;
-
- out[12] = a00 * x + a10 * y + a20 * z + a[12];
- out[13] = a01 * x + a11 * y + a21 * z + a[13];
- out[14] = a02 * x + a12 * y + a22 * z + a[14];
- out[15] = a03 * x + a13 * y + a23 * z + a[15];
- }
-
- return out;
-};
-
-/**
- * Scales the mat4 by the dimensions in the given vec3
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the matrix to scale
- * @param {vec3} v the vec3 to scale the matrix by
- * @returns {mat4} out
- **/
-mat4.scale = function(out, a, v) {
- var x = v[0], y = v[1], z = v[2];
-
- out[0] = a[0] * x;
- out[1] = a[1] * x;
- out[2] = a[2] * x;
- out[3] = a[3] * x;
- out[4] = a[4] * y;
- out[5] = a[5] * y;
- out[6] = a[6] * y;
- out[7] = a[7] * y;
- out[8] = a[8] * z;
- out[9] = a[9] * z;
- out[10] = a[10] * z;
- out[11] = a[11] * z;
- out[12] = a[12];
- out[13] = a[13];
- out[14] = a[14];
- out[15] = a[15];
- return out;
-};
-
-/**
- * Rotates a mat4 by the given angle
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the matrix to rotate
- * @param {Number} rad the angle to rotate the matrix by
- * @param {vec3} axis the axis to rotate around
- * @returns {mat4} out
- */
-mat4.rotate = function (out, a, rad, axis) {
- var x = axis[0], y = axis[1], z = axis[2],
- len = Math.sqrt(x * x + y * y + z * z),
- s, c, t,
- a00, a01, a02, a03,
- a10, a11, a12, a13,
- a20, a21, a22, a23,
- b00, b01, b02,
- b10, b11, b12,
- b20, b21, b22;
-
- if (Math.abs(len) < GLMAT_EPSILON) { return null; }
-
- len = 1 / len;
- x *= len;
- y *= len;
- z *= len;
-
- s = Math.sin(rad);
- c = Math.cos(rad);
- t = 1 - c;
-
- a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];
- a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];
- a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];
-
- // Construct the elements of the rotation matrix
- b00 = x * x * t + c; b01 = y * x * t + z * s; b02 = z * x * t - y * s;
- b10 = x * y * t - z * s; b11 = y * y * t + c; b12 = z * y * t + x * s;
- b20 = x * z * t + y * s; b21 = y * z * t - x * s; b22 = z * z * t + c;
-
- // Perform rotation-specific matrix multiplication
- out[0] = a00 * b00 + a10 * b01 + a20 * b02;
- out[1] = a01 * b00 + a11 * b01 + a21 * b02;
- out[2] = a02 * b00 + a12 * b01 + a22 * b02;
- out[3] = a03 * b00 + a13 * b01 + a23 * b02;
- out[4] = a00 * b10 + a10 * b11 + a20 * b12;
- out[5] = a01 * b10 + a11 * b11 + a21 * b12;
- out[6] = a02 * b10 + a12 * b11 + a22 * b12;
- out[7] = a03 * b10 + a13 * b11 + a23 * b12;
- out[8] = a00 * b20 + a10 * b21 + a20 * b22;
- out[9] = a01 * b20 + a11 * b21 + a21 * b22;
- out[10] = a02 * b20 + a12 * b21 + a22 * b22;
- out[11] = a03 * b20 + a13 * b21 + a23 * b22;
-
- if (a !== out) { // If the source and destination differ, copy the unchanged last row
- out[12] = a[12];
- out[13] = a[13];
- out[14] = a[14];
- out[15] = a[15];
- }
- return out;
-};
-
-/**
- * Rotates a matrix by the given angle around the X axis
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the matrix to rotate
- * @param {Number} rad the angle to rotate the matrix by
- * @returns {mat4} out
- */
-mat4.rotateX = function (out, a, rad) {
- var s = Math.sin(rad),
- c = Math.cos(rad),
- a10 = a[4],
- a11 = a[5],
- a12 = a[6],
- a13 = a[7],
- a20 = a[8],
- a21 = a[9],
- a22 = a[10],
- a23 = a[11];
-
- if (a !== out) { // If the source and destination differ, copy the unchanged rows
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[12] = a[12];
- out[13] = a[13];
- out[14] = a[14];
- out[15] = a[15];
- }
-
- // Perform axis-specific matrix multiplication
- out[4] = a10 * c + a20 * s;
- out[5] = a11 * c + a21 * s;
- out[6] = a12 * c + a22 * s;
- out[7] = a13 * c + a23 * s;
- out[8] = a20 * c - a10 * s;
- out[9] = a21 * c - a11 * s;
- out[10] = a22 * c - a12 * s;
- out[11] = a23 * c - a13 * s;
- return out;
-};
-
-/**
- * Rotates a matrix by the given angle around the Y axis
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the matrix to rotate
- * @param {Number} rad the angle to rotate the matrix by
- * @returns {mat4} out
- */
-mat4.rotateY = function (out, a, rad) {
- var s = Math.sin(rad),
- c = Math.cos(rad),
- a00 = a[0],
- a01 = a[1],
- a02 = a[2],
- a03 = a[3],
- a20 = a[8],
- a21 = a[9],
- a22 = a[10],
- a23 = a[11];
-
- if (a !== out) { // If the source and destination differ, copy the unchanged rows
- out[4] = a[4];
- out[5] = a[5];
- out[6] = a[6];
- out[7] = a[7];
- out[12] = a[12];
- out[13] = a[13];
- out[14] = a[14];
- out[15] = a[15];
- }
-
- // Perform axis-specific matrix multiplication
- out[0] = a00 * c - a20 * s;
- out[1] = a01 * c - a21 * s;
- out[2] = a02 * c - a22 * s;
- out[3] = a03 * c - a23 * s;
- out[8] = a00 * s + a20 * c;
- out[9] = a01 * s + a21 * c;
- out[10] = a02 * s + a22 * c;
- out[11] = a03 * s + a23 * c;
- return out;
-};
-
-/**
- * Rotates a matrix by the given angle around the Z axis
- *
- * @param {mat4} out the receiving matrix
- * @param {mat4} a the matrix to rotate
- * @param {Number} rad the angle to rotate the matrix by
- * @returns {mat4} out
- */
-mat4.rotateZ = function (out, a, rad) {
- var s = Math.sin(rad),
- c = Math.cos(rad),
- a00 = a[0],
- a01 = a[1],
- a02 = a[2],
- a03 = a[3],
- a10 = a[4],
- a11 = a[5],
- a12 = a[6],
- a13 = a[7];
-
- if (a !== out) { // If the source and destination differ, copy the unchanged last row
- out[8] = a[8];
- out[9] = a[9];
- out[10] = a[10];
- out[11] = a[11];
- out[12] = a[12];
- out[13] = a[13];
- out[14] = a[14];
- out[15] = a[15];
- }
-
- // Perform axis-specific matrix multiplication
- out[0] = a00 * c + a10 * s;
- out[1] = a01 * c + a11 * s;
- out[2] = a02 * c + a12 * s;
- out[3] = a03 * c + a13 * s;
- out[4] = a10 * c - a00 * s;
- out[5] = a11 * c - a01 * s;
- out[6] = a12 * c - a02 * s;
- out[7] = a13 * c - a03 * s;
- return out;
-};
-
-/**
- * Creates a matrix from a quaternion rotation and vector translation
- * This is equivalent to (but much faster than):
- *
- * mat4.identity(dest);
- * mat4.translate(dest, vec);
- * var quatMat = mat4.create();
- * quat4.toMat4(quat, quatMat);
- * mat4.multiply(dest, quatMat);
- *
- * @param {mat4} out mat4 receiving operation result
- * @param {quat4} q Rotation quaternion
- * @param {vec3} v Translation vector
- * @returns {mat4} out
- */
-mat4.fromRotationTranslation = function (out, q, v) {
- // Quaternion math
- var x = q[0], y = q[1], z = q[2], w = q[3],
- x2 = x + x,
- y2 = y + y,
- z2 = z + z,
-
- xx = x * x2,
- xy = x * y2,
- xz = x * z2,
- yy = y * y2,
- yz = y * z2,
- zz = z * z2,
- wx = w * x2,
- wy = w * y2,
- wz = w * z2;
-
- out[0] = 1 - (yy + zz);
- out[1] = xy + wz;
- out[2] = xz - wy;
- out[3] = 0;
- out[4] = xy - wz;
- out[5] = 1 - (xx + zz);
- out[6] = yz + wx;
- out[7] = 0;
- out[8] = xz + wy;
- out[9] = yz - wx;
- out[10] = 1 - (xx + yy);
- out[11] = 0;
- out[12] = v[0];
- out[13] = v[1];
- out[14] = v[2];
- out[15] = 1;
-
- return out;
-};
-
-mat4.fromQuat = function (out, q) {
- var x = q[0], y = q[1], z = q[2], w = q[3],
- x2 = x + x,
- y2 = y + y,
- z2 = z + z,
-
- xx = x * x2,
- yx = y * x2,
- yy = y * y2,
- zx = z * x2,
- zy = z * y2,
- zz = z * z2,
- wx = w * x2,
- wy = w * y2,
- wz = w * z2;
-
- out[0] = 1 - yy - zz;
- out[1] = yx + wz;
- out[2] = zx - wy;
- out[3] = 0;
-
- out[4] = yx - wz;
- out[5] = 1 - xx - zz;
- out[6] = zy + wx;
- out[7] = 0;
-
- out[8] = zx + wy;
- out[9] = zy - wx;
- out[10] = 1 - xx - yy;
- out[11] = 0;
-
- out[12] = 0;
- out[13] = 0;
- out[14] = 0;
- out[15] = 1;
-
- return out;
-};
-
-/**
- * Generates a frustum matrix with the given bounds
- *
- * @param {mat4} out mat4 frustum matrix will be written into
- * @param {Number} left Left bound of the frustum
- * @param {Number} right Right bound of the frustum
- * @param {Number} bottom Bottom bound of the frustum
- * @param {Number} top Top bound of the frustum
- * @param {Number} near Near bound of the frustum
- * @param {Number} far Far bound of the frustum
- * @returns {mat4} out
- */
-mat4.frustum = function (out, left, right, bottom, top, near, far) {
- var rl = 1 / (right - left),
- tb = 1 / (top - bottom),
- nf = 1 / (near - far);
- out[0] = (near * 2) * rl;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- out[4] = 0;
- out[5] = (near * 2) * tb;
- out[6] = 0;
- out[7] = 0;
- out[8] = (right + left) * rl;
- out[9] = (top + bottom) * tb;
- out[10] = (far + near) * nf;
- out[11] = -1;
- out[12] = 0;
- out[13] = 0;
- out[14] = (far * near * 2) * nf;
- out[15] = 0;
- return out;
-};
-
-/**
- * Generates a perspective projection matrix with the given bounds
- *
- * @param {mat4} out mat4 frustum matrix will be written into
- * @param {number} fovy Vertical field of view in radians
- * @param {number} aspect Aspect ratio. typically viewport width/height
- * @param {number} near Near bound of the frustum
- * @param {number} far Far bound of the frustum
- * @returns {mat4} out
- */
-mat4.perspective = function (out, fovy, aspect, near, far) {
- var f = 1.0 / Math.tan(fovy / 2),
- nf = 1 / (near - far);
- out[0] = f / aspect;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- out[4] = 0;
- out[5] = f;
- out[6] = 0;
- out[7] = 0;
- out[8] = 0;
- out[9] = 0;
- out[10] = (far + near) * nf;
- out[11] = -1;
- out[12] = 0;
- out[13] = 0;
- out[14] = (2 * far * near) * nf;
- out[15] = 0;
- return out;
-};
-
-/**
- * Generates a orthogonal projection matrix with the given bounds
- *
- * @param {mat4} out mat4 frustum matrix will be written into
- * @param {number} left Left bound of the frustum
- * @param {number} right Right bound of the frustum
- * @param {number} bottom Bottom bound of the frustum
- * @param {number} top Top bound of the frustum
- * @param {number} near Near bound of the frustum
- * @param {number} far Far bound of the frustum
- * @returns {mat4} out
- */
-mat4.ortho = function (out, left, right, bottom, top, near, far) {
- var lr = 1 / (left - right),
- bt = 1 / (bottom - top),
- nf = 1 / (near - far);
- out[0] = -2 * lr;
- out[1] = 0;
- out[2] = 0;
- out[3] = 0;
- out[4] = 0;
- out[5] = -2 * bt;
- out[6] = 0;
- out[7] = 0;
- out[8] = 0;
- out[9] = 0;
- out[10] = 2 * nf;
- out[11] = 0;
- out[12] = (left + right) * lr;
- out[13] = (top + bottom) * bt;
- out[14] = (far + near) * nf;
- out[15] = 1;
- return out;
-};
-
-/**
- * Generates a look-at matrix with the given eye position, focal point, and up axis
- *
- * @param {mat4} out mat4 frustum matrix will be written into
- * @param {vec3} eye Position of the viewer
- * @param {vec3} center Point the viewer is looking at
- * @param {vec3} up vec3 pointing up
- * @returns {mat4} out
- */
-mat4.lookAt = function (out, eye, center, up) {
- var x0, x1, x2, y0, y1, y2, z0, z1, z2, len,
- eyex = eye[0],
- eyey = eye[1],
- eyez = eye[2],
- upx = up[0],
- upy = up[1],
- upz = up[2],
- centerx = center[0],
- centery = center[1],
- centerz = center[2];
-
- if (Math.abs(eyex - centerx) < GLMAT_EPSILON &&
- Math.abs(eyey - centery) < GLMAT_EPSILON &&
- Math.abs(eyez - centerz) < GLMAT_EPSILON) {
- return mat4.identity(out);
- }
-
- z0 = eyex - centerx;
- z1 = eyey - centery;
- z2 = eyez - centerz;
-
- len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);
- z0 *= len;
- z1 *= len;
- z2 *= len;
-
- x0 = upy * z2 - upz * z1;
- x1 = upz * z0 - upx * z2;
- x2 = upx * z1 - upy * z0;
- len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);
- if (!len) {
- x0 = 0;
- x1 = 0;
- x2 = 0;
- } else {
- len = 1 / len;
- x0 *= len;
- x1 *= len;
- x2 *= len;
- }
-
- y0 = z1 * x2 - z2 * x1;
- y1 = z2 * x0 - z0 * x2;
- y2 = z0 * x1 - z1 * x0;
-
- len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);
- if (!len) {
- y0 = 0;
- y1 = 0;
- y2 = 0;
- } else {
- len = 1 / len;
- y0 *= len;
- y1 *= len;
- y2 *= len;
- }
-
- out[0] = x0;
- out[1] = y0;
- out[2] = z0;
- out[3] = 0;
- out[4] = x1;
- out[5] = y1;
- out[6] = z1;
- out[7] = 0;
- out[8] = x2;
- out[9] = y2;
- out[10] = z2;
- out[11] = 0;
- out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);
- out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);
- out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);
- out[15] = 1;
-
- return out;
-};
-
-/**
- * Returns a string representation of a mat4
- *
- * @param {mat4} mat matrix to represent as a string
- * @returns {String} string representation of the matrix
- */
-mat4.str = function (a) {
- return 'mat4(' + 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] + ')';
-};
-
-/**
- * Returns Frobenius norm of a mat4
- *
- * @param {mat4} a the matrix to calculate Frobenius norm of
- * @returns {Number} Frobenius norm
- */
-mat4.frob = function (a) {
- return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2) + Math.pow(a[9], 2) + Math.pow(a[10], 2) + Math.pow(a[11], 2) + Math.pow(a[12], 2) + Math.pow(a[13], 2) + Math.pow(a[14], 2) + Math.pow(a[15], 2) ))
-};
-
-
-if(typeof(exports) !== 'undefined') {
- exports.mat4 = mat4;
-}
-;
-/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
-
-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.
-
-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 HOLDER 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. */
-
-/**
- * @class Quaternion
- * @name quat
- */
-
-var quat = {};
-
-/**
- * Creates a new identity quat
- *
- * @returns {quat} a new quaternion
- */
-quat.create = function() {
- var out = new GLMAT_ARRAY_TYPE(4);
- out[0] = 0;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- return out;
-};
-
-/**
- * Sets a quaternion to represent the shortest rotation from one
- * vector to another.
- *
- * Both vectors are assumed to be unit length.
- *
- * @param {quat} out the receiving quaternion.
- * @param {vec3} a the initial vector
- * @param {vec3} b the destination vector
- * @returns {quat} out
- */
-quat.rotationTo = (function() {
- var tmpvec3 = vec3.create();
- var xUnitVec3 = vec3.fromValues(1,0,0);
- var yUnitVec3 = vec3.fromValues(0,1,0);
-
- return function(out, a, b) {
- var dot = vec3.dot(a, b);
- if (dot < -0.999999) {
- vec3.cross(tmpvec3, xUnitVec3, a);
- if (vec3.length(tmpvec3) < 0.000001)
- vec3.cross(tmpvec3, yUnitVec3, a);
- vec3.normalize(tmpvec3, tmpvec3);
- quat.setAxisAngle(out, tmpvec3, Math.PI);
- return out;
- } else if (dot > 0.999999) {
- out[0] = 0;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- return out;
- } else {
- vec3.cross(tmpvec3, a, b);
- out[0] = tmpvec3[0];
- out[1] = tmpvec3[1];
- out[2] = tmpvec3[2];
- out[3] = 1 + dot;
- return quat.normalize(out, out);
- }
- };
-})();
-
-/**
- * Sets the specified quaternion with values corresponding to the given
- * axes. Each axis is a vec3 and is expected to be unit length and
- * perpendicular to all other specified axes.
- *
- * @param {vec3} view the vector representing the viewing direction
- * @param {vec3} right the vector representing the local "right" direction
- * @param {vec3} up the vector representing the local "up" direction
- * @returns {quat} out
- */
-quat.setAxes = (function() {
- var matr = mat3.create();
-
- return function(out, view, right, up) {
- matr[0] = right[0];
- matr[3] = right[1];
- matr[6] = right[2];
-
- matr[1] = up[0];
- matr[4] = up[1];
- matr[7] = up[2];
-
- matr[2] = -view[0];
- matr[5] = -view[1];
- matr[8] = -view[2];
-
- return quat.normalize(out, quat.fromMat3(out, matr));
- };
-})();
-
-/**
- * Creates a new quat initialized with values from an existing quaternion
- *
- * @param {quat} a quaternion to clone
- * @returns {quat} a new quaternion
- * @function
- */
-quat.clone = vec4.clone;
-
-/**
- * Creates a new quat initialized with the given values
- *
- * @param {Number} x X component
- * @param {Number} y Y component
- * @param {Number} z Z component
- * @param {Number} w W component
- * @returns {quat} a new quaternion
- * @function
- */
-quat.fromValues = vec4.fromValues;
-
-/**
- * Copy the values from one quat to another
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a the source quaternion
- * @returns {quat} out
- * @function
- */
-quat.copy = vec4.copy;
-
-/**
- * Set the components of a quat to the given values
- *
- * @param {quat} out the receiving quaternion
- * @param {Number} x X component
- * @param {Number} y Y component
- * @param {Number} z Z component
- * @param {Number} w W component
- * @returns {quat} out
- * @function
- */
-quat.set = vec4.set;
-
-/**
- * Set a quat to the identity quaternion
- *
- * @param {quat} out the receiving quaternion
- * @returns {quat} out
- */
-quat.identity = function(out) {
- out[0] = 0;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- return out;
-};
-
-/**
- * Sets a quat from the given angle and rotation axis,
- * then returns it.
- *
- * @param {quat} out the receiving quaternion
- * @param {vec3} axis the axis around which to rotate
- * @param {Number} rad the angle in radians
- * @returns {quat} out
- **/
-quat.setAxisAngle = function(out, axis, rad) {
- rad = rad * 0.5;
- var s = Math.sin(rad);
- out[0] = s * axis[0];
- out[1] = s * axis[1];
- out[2] = s * axis[2];
- out[3] = Math.cos(rad);
- return out;
-};
-
-/**
- * Adds two quat's
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a the first operand
- * @param {quat} b the second operand
- * @returns {quat} out
- * @function
- */
-quat.add = vec4.add;
-
-/**
- * Multiplies two quat's
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a the first operand
- * @param {quat} b the second operand
- * @returns {quat} out
- */
-quat.multiply = function(out, a, b) {
- var ax = a[0], ay = a[1], az = a[2], aw = a[3],
- bx = b[0], by = b[1], bz = b[2], bw = b[3];
-
- out[0] = ax * bw + aw * bx + ay * bz - az * by;
- out[1] = ay * bw + aw * by + az * bx - ax * bz;
- out[2] = az * bw + aw * bz + ax * by - ay * bx;
- out[3] = aw * bw - ax * bx - ay * by - az * bz;
- return out;
-};
-
-/**
- * Alias for {@link quat.multiply}
- * @function
- */
-quat.mul = quat.multiply;
-
-/**
- * Scales a quat by a scalar number
- *
- * @param {quat} out the receiving vector
- * @param {quat} a the vector to scale
- * @param {Number} b amount to scale the vector by
- * @returns {quat} out
- * @function
- */
-quat.scale = vec4.scale;
-
-/**
- * Rotates a quaternion by the given angle about the X axis
- *
- * @param {quat} out quat receiving operation result
- * @param {quat} a quat to rotate
- * @param {number} rad angle (in radians) to rotate
- * @returns {quat} out
- */
-quat.rotateX = function (out, a, rad) {
- rad *= 0.5;
-
- var ax = a[0], ay = a[1], az = a[2], aw = a[3],
- bx = Math.sin(rad), bw = Math.cos(rad);
-
- out[0] = ax * bw + aw * bx;
- out[1] = ay * bw + az * bx;
- out[2] = az * bw - ay * bx;
- out[3] = aw * bw - ax * bx;
- return out;
-};
-
-/**
- * Rotates a quaternion by the given angle about the Y axis
- *
- * @param {quat} out quat receiving operation result
- * @param {quat} a quat to rotate
- * @param {number} rad angle (in radians) to rotate
- * @returns {quat} out
- */
-quat.rotateY = function (out, a, rad) {
- rad *= 0.5;
-
- var ax = a[0], ay = a[1], az = a[2], aw = a[3],
- by = Math.sin(rad), bw = Math.cos(rad);
-
- out[0] = ax * bw - az * by;
- out[1] = ay * bw + aw * by;
- out[2] = az * bw + ax * by;
- out[3] = aw * bw - ay * by;
- return out;
-};
-
-/**
- * Rotates a quaternion by the given angle about the Z axis
- *
- * @param {quat} out quat receiving operation result
- * @param {quat} a quat to rotate
- * @param {number} rad angle (in radians) to rotate
- * @returns {quat} out
- */
-quat.rotateZ = function (out, a, rad) {
- rad *= 0.5;
-
- var ax = a[0], ay = a[1], az = a[2], aw = a[3],
- bz = Math.sin(rad), bw = Math.cos(rad);
-
- out[0] = ax * bw + ay * bz;
- out[1] = ay * bw - ax * bz;
- out[2] = az * bw + aw * bz;
- out[3] = aw * bw - az * bz;
- return out;
-};
-
-/**
- * Calculates the W component of a quat from the X, Y, and Z components.
- * Assumes that quaternion is 1 unit in length.
- * Any existing W component will be ignored.
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a quat to calculate W component of
- * @returns {quat} out
- */
-quat.calculateW = function (out, a) {
- var x = a[0], y = a[1], z = a[2];
-
- out[0] = x;
- out[1] = y;
- out[2] = z;
- out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));
- return out;
-};
-
-/**
- * Calculates the dot product of two quat's
- *
- * @param {quat} a the first operand
- * @param {quat} b the second operand
- * @returns {Number} dot product of a and b
- * @function
- */
-quat.dot = vec4.dot;
-
-/**
- * Performs a linear interpolation between two quat's
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a the first operand
- * @param {quat} b the second operand
- * @param {Number} t interpolation amount between the two inputs
- * @returns {quat} out
- * @function
- */
-quat.lerp = vec4.lerp;
-
-/**
- * Performs a spherical linear interpolation between two quat
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a the first operand
- * @param {quat} b the second operand
- * @param {Number} t interpolation amount between the two inputs
- * @returns {quat} out
- */
-quat.slerp = function (out, a, b, t) {
- // benchmarks:
- // http://jsperf.com/quaternion-slerp-implementations
-
- var ax = a[0], ay = a[1], az = a[2], aw = a[3],
- bx = b[0], by = b[1], bz = b[2], bw = b[3];
-
- var omega, cosom, sinom, scale0, scale1;
-
- // calc cosine
- cosom = ax * bx + ay * by + az * bz + aw * bw;
- // adjust signs (if necessary)
- if ( cosom < 0.0 ) {
- cosom = -cosom;
- bx = - bx;
- by = - by;
- bz = - bz;
- bw = - bw;
- }
- // calculate coefficients
- if ( (1.0 - cosom) > 0.000001 ) {
- // standard case (slerp)
- omega = Math.acos(cosom);
- sinom = Math.sin(omega);
- scale0 = Math.sin((1.0 - t) * omega) / sinom;
- scale1 = Math.sin(t * omega) / sinom;
- } else {
- // "from" and "to" quaternions are very close
- // ... so we can do a linear interpolation
- scale0 = 1.0 - t;
- scale1 = t;
- }
- // calculate final values
- out[0] = scale0 * ax + scale1 * bx;
- out[1] = scale0 * ay + scale1 * by;
- out[2] = scale0 * az + scale1 * bz;
- out[3] = scale0 * aw + scale1 * bw;
-
- return out;
-};
-
-/**
- * Calculates the inverse of a quat
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a quat to calculate inverse of
- * @returns {quat} out
- */
-quat.invert = function(out, a) {
- var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
- dot = a0*a0 + a1*a1 + a2*a2 + a3*a3,
- invDot = dot ? 1.0/dot : 0;
-
- // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0
-
- out[0] = -a0*invDot;
- out[1] = -a1*invDot;
- out[2] = -a2*invDot;
- out[3] = a3*invDot;
- return out;
-};
-
-/**
- * Calculates the conjugate of a quat
- * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a quat to calculate conjugate of
- * @returns {quat} out
- */
-quat.conjugate = function (out, a) {
- out[0] = -a[0];
- out[1] = -a[1];
- out[2] = -a[2];
- out[3] = a[3];
- return out;
-};
-
-/**
- * Calculates the length of a quat
- *
- * @param {quat} a vector to calculate length of
- * @returns {Number} length of a
- * @function
- */
-quat.length = vec4.length;
-
-/**
- * Alias for {@link quat.length}
- * @function
- */
-quat.len = quat.length;
-
-/**
- * Calculates the squared length of a quat
- *
- * @param {quat} a vector to calculate squared length of
- * @returns {Number} squared length of a
- * @function
- */
-quat.squaredLength = vec4.squaredLength;
-
-/**
- * Alias for {@link quat.squaredLength}
- * @function
- */
-quat.sqrLen = quat.squaredLength;
-
-/**
- * Normalize a quat
- *
- * @param {quat} out the receiving quaternion
- * @param {quat} a quaternion to normalize
- * @returns {quat} out
- * @function
- */
-quat.normalize = vec4.normalize;
-
-/**
- * Creates a quaternion from the given 3x3 rotation matrix.
- *
- * NOTE: The resultant quaternion is not normalized, so you should be sure
- * to renormalize the quaternion yourself where necessary.
- *
- * @param {quat} out the receiving quaternion
- * @param {mat3} m rotation matrix
- * @returns {quat} out
- * @function
- */
-quat.fromMat3 = function(out, m) {
- // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes
- // article "Quaternion Calculus and Fast Animation".
- var fTrace = m[0] + m[4] + m[8];
- var fRoot;
-
- if ( fTrace > 0.0 ) {
- // |w| > 1/2, may as well choose w > 1/2
- fRoot = Math.sqrt(fTrace + 1.0); // 2w
- out[3] = 0.5 * fRoot;
- fRoot = 0.5/fRoot; // 1/(4w)
- out[0] = (m[5]-m[7])*fRoot;
- out[1] = (m[6]-m[2])*fRoot;
- out[2] = (m[1]-m[3])*fRoot;
- } else {
- // |w| <= 1/2
- var i = 0;
- if ( m[4] > m[0] )
- i = 1;
- if ( m[8] > m[i*3+i] )
- i = 2;
- var j = (i+1)%3;
- var k = (i+2)%3;
-
- fRoot = Math.sqrt(m[i*3+i]-m[j*3+j]-m[k*3+k] + 1.0);
- out[i] = 0.5 * fRoot;
- fRoot = 0.5 / fRoot;
- out[3] = (m[j*3+k] - m[k*3+j]) * fRoot;
- out[j] = (m[j*3+i] + m[i*3+j]) * fRoot;
- out[k] = (m[k*3+i] + m[i*3+k]) * fRoot;
- }
-
- return out;
-};
-
-/**
- * Returns a string representation of a quatenion
- *
- * @param {quat} vec vector to represent as a string
- * @returns {String} string representation of the vector
- */
-quat.str = function (a) {
- return 'quat(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';
-};
-
-if(typeof(exports) !== 'undefined') {
- exports.quat = quat;
-}
-;
-
-
-
-
-
-
-
-
-
-
-
-
-
- })(shim.exports);
-})(this);
-
-/******************************************************************************
- * Creature Runtimes License
- *
- * Copyright (c) 2015, Kestrel Moon Studios
- * All rights reserved.
- *
- * Preamble: This Agreement governs the relationship between Licensee and Kestrel Moon Studios(Hereinafter: Licensor).
- * This Agreement sets the terms, rights, restrictions and obligations on using [Creature Runtimes] (hereinafter: The Software) created and owned by Licensor,
- * as detailed herein:
- * License Grant: Licensor hereby grants Licensee a Sublicensable, Non-assignable & non-transferable, Commercial, Royalty free,
- * Including the rights to create but not distribute derivative works, Non-exclusive license, all with accordance with the terms set forth and
- * other legal restrictions set forth in 3rd party software used while running Software.
- * Limited: Licensee may use Software for the purpose of:
- * Running Software on Licensee’s Website[s] and Server[s];
- * Allowing 3rd Parties to run Software on Licensee’s Website[s] and Server[s];
- * Publishing Software’s output to Licensee and 3rd Parties;
- * Distribute verbatim copies of Software’s output (including compiled binaries);
- * Modify Software to suit Licensee’s needs and specifications.
- * Binary Restricted: Licensee may sublicense Software as a part of a larger work containing more than Software,
- * distributed solely in Object or Binary form under a personal, non-sublicensable, limited license. Such redistribution shall be limited to unlimited codebases.
- * Non Assignable & Non-Transferable: Licensee may not assign or transfer his rights and duties under this license.
- * Commercial, Royalty Free: Licensee may use Software for any purpose, including paid-services, without any royalties
- * Including the Right to Create Derivative Works: Licensee may create derivative works based on Software,
- * including amending Software’s source code, modifying it, integrating it into a larger work or removing portions of Software,
- * as long as no distribution of the derivative works is made
- *
- * THE RUNTIMES IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE RUNTIMES OR THE USE OR OTHER DEALINGS IN THE
- * RUNTIMES.
- *****************************************************************************/
-
-
-// dualQuat
-
-var Q_X = 0;
-var Q_Y = 1;
-var Q_Z = 2;
-var Q_W = 3;
-
-function dualQuat()
-{
- this.real = quat.create();
- this.real[Q_W] = 0;
-
- this.imaginary = quat.create();
- this.imaginary[Q_W] = 0;
-
- this.tmpQ1 = quat.create();
-};
-
-dualQuat.prototype.reset = function()
-{
- quat.identity(this.real);
- this.real[Q_W] = 0;
- quat.identity(this.imaginary);
- this.imaginary[Q_W] = 0;
- quat.identity(this.tmpQ1);
-};
-
-dualQuat.prototype.createFromData = function(q0, t)
-{
- this.real = q0;
- this.imaginary = quat.create();
- this.imaginary[Q_W] = -0.5 * ( t[Q_X] * q0[Q_X] + t[Q_Y] * q0[Q_Y] + t[Q_Z] * q0[Q_Z]);
- this.imaginary[Q_X] = 0.5 * ( t[Q_X] * q0[Q_W] + t[Q_Y] * q0[Q_Z] - t[Q_Z] * q0[Q_Y]);
- this.imaginary[Q_Y] = 0.5 * (-t[Q_X] * q0[Q_Z] + t[Q_Y] * q0[Q_W] + t[Q_Z] * q0[Q_X]);
- this.imaginary[Q_Z] = 0.5 * ( t[Q_X] * q0[Q_Y] - t[Q_Y] * q0[Q_X] + t[Q_Z] * q0[Q_W]);
-
-};
-
-dualQuat.prototype.add = function(quat_in, real_factor, imaginary_factor)
-{
- //real = real.add((quat_in.real.cpy().mul(real_factor)));
- //var tmpQ = quat.clone(quat_in.real);
- quat.copy(this.tmpQ1, quat_in.real);
-
- quat.scale(this.tmpQ1, this.tmpQ1, real_factor);
- quat.add(this.real, this.tmpQ1, this.real);
-
- //imaginary = imaginary.add(quat_in.imaginary.cpy().mul(imaginary_factor));
- //tmpQ = quat.clone(quat_in.imaginary);
- quat.copy(this.tmpQ1, quat_in.imaginary);
- quat.scale(this.tmpQ1, this.tmpQ1, imaginary_factor);
- quat.add(this.imaginary, this.tmpQ1, this.imaginary);
-};
-
-dualQuat.prototype.normalize = function()
-{
- var norm = quat.length(this.real);
-
- this.real = quat.scale(this.real, this.real, 1.0 / norm);
- this.imaginary = quat.scale(this.imaginary, this.imaginary, 1.0 / norm);
-};
-
-var v0 = vec3.create();
-var ve = vec3.create();
-var trans = vec3.create();
-var tmpVec1 = vec3.create();
-var tmpVec2 = vec3.create();
-var tmpVec0 = vec3.create();
-var aVec = vec3.create();
-var rot = vec3.create();
-
-dualQuat.prototype.transform = function(p)
-{
- v0[Q_X] = this.real[Q_X]; v0[Q_Y] = this.real[Q_Y]; v0[Q_Z] = this.real[Q_Z];
-
- ve[Q_X] = this.imaginary[Q_X]; ve[Q_Y] = this.imaginary[Q_Y]; ve[Q_Z] = this.imaginary[Q_Z];
-
- //trans = (ve*real.w - v0*imaginary.w + Vector3.Cross(v0, ve)) * 2.0f;
-
-// var tmpVec1 = v0.cpy().scl((float)imaginary.w);
- tmpVec1 = vec3.scale(tmpVec1, v0, this.imaginary[Q_W]);
-
-// var tmpVec2 = v0.cpy().crs(ve);
- tmpVec2 = vec3.cross(tmpVec2, v0, ve);
-
- //var tmpVec0 = ve.cpy().scl(real.w);
- //trans = tmpVec0.sub(tmpVec1).add(tmpVec2);
- //trans.scl(2.0f);
-
- tmpVec0 = vec3.scale(tmpVec0, ve, this.real[Q_W]);
-
- aVec = vec3.subtract(aVec, tmpVec0, tmpVec1);
- trans = vec3.add(trans, aVec, tmpVec2);
- trans = vec3.scale(trans, trans, 2.0);
-
- //var rot = real.transform(p.cpy());
- rot = vec3.transformQuat(rot, p, this.real);
-
- //return rot.add(trans);
- rot = vec3.add(rot, rot, trans);
-
- return rot;
-};
-
-// Utils
-var Utils = {};
-
-Utils.setAxisMatrix = function(xAxis, yAxis, zAxis)
-{
- var retMat = mat4.create();
-
- var M00 = 0;
- var M01 = 4;
- var M02 = 8;
- var M03 = 12;
- var M10 = 1;
- var M11 = 5;
- var M12 = 9;
- var M13 = 13;
- var M20 = 2;
- var M21 = 6;
- var M22 = 10;
- var M23 = 14;
- var M30 = 3;
- var M31 = 7;
- var M32 = 11;
- var M33 = 15;
-
- retMat[M00] = xAxis[Q_X];
- retMat[M01] = xAxis[Q_Y];
- retMat[M02] = xAxis[Q_Z];
- retMat[M10] = yAxis[Q_X];
- retMat[M11] = yAxis[Q_Y];
- retMat[M12] = yAxis[Q_Z];
- retMat[M20] = zAxis[Q_X];
- retMat[M21] = zAxis[Q_Y];
- retMat[M22] = zAxis[Q_Z];
- retMat[M03] = 0;
- retMat[M13] = 0;
- retMat[M23] = 0;
- retMat[M30] = 0;
- retMat[M31] = 0;
- retMat[M32] = 0;
- retMat[M33] = 1;
-
- retMat = mat4.transpose(retMat, retMat);
-
- return retMat;
-};
-
-Utils.matrixToQuat = function(mat_in)
-{
- var retQuat = quat.create();
- var te = mat_in,
-
- m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],
- m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],
- m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],
-
- trace = m11 + m22 + m33,
- s;
-
- if ( trace > 0 ) {
-
- s = 0.5 / Math.sqrt( trace + 1.0 );
-
- retQuat[Q_W] = 0.25 / s;
- retQuat[Q_X] = ( m32 - m23 ) * s;
- retQuat[Q_Y] = ( m13 - m31 ) * s;
- retQuat[Q_Z] = ( m21 - m12 ) * s;
-
- } else if ( m11 > m22 && m11 > m33 ) {
-
- s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );
-
- retQuat[Q_W] = ( m32 - m23 ) / s;
- retQuat[Q_X] = 0.25 * s;
- retQuat[Q_Y] = ( m12 + m21 ) / s;
- retQuat[Q_Z] = ( m13 + m31 ) / s;
-
- } else if ( m22 > m33 ) {
-
- s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );
-
- retQuat[Q_W] = ( m13 - m31 ) / s;
- retQuat[Q_X] = ( m12 + m21 ) / s;
- retQuat[Q_Y] = 0.25 * s;
- retQuat[Q_Z] = ( m23 + m32 ) / s;
-
- } else {
-
- s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );
-
- retQuat[Q_W] = ( m21 - m12 ) / s;
- retQuat[Q_X] = ( m13 + m31 ) / s;
- retQuat[Q_Y] = ( m23 + m32 ) / s;
- retQuat[Q_Z] = 0.25 * s;
-
- }
-
- return retQuat;
-};
-
-Utils.rotateVec_90 = function(vec_in)
-{
- var ret_vec = vec3.fromValues(-vec_in[Q_Y], vec_in[Q_X], vec_in[Q_Z]);
-
- return ret_vec;
-};
-
-Utils.calcRotateMat = function(vec_in)
-{
- var dir = vec3.clone(vec_in);
- dir = vec3.normalize(dir, dir);
-
- var pep_dir = Utils.rotateVec_90(dir);
-
- var cur_tangent = vec3.fromValues(dir[Q_X], dir[Q_Y], 0);
- var cur_normal = vec3.fromValues(pep_dir[Q_X], pep_dir[Q_Y], 0);
- var cur_binormal = vec3.fromValues(0, 0, 1);
-
- var cur_rotate = mat4.create();
- cur_rotate = Utils.setAxisMatrix(cur_tangent, cur_normal, cur_binormal);
-
- return cur_rotate;
-};
-
-Utils.getMatTranslate = function(mat_in)
-{
- var ret_pos = vec3.create();
- ret_pos[Q_X] = mat_in[12];
- ret_pos[Q_Y] = mat_in[13];
- ret_pos[Q_Z] = mat_in[14];
-
- return ret_pos;
-};
-
-Utils.addMat = function(mat1, mat2)
-{
- var retMat = mat4.create();
- for(var i = 0; i < 16; i++)
- {
- retMat[i] = mat1[i] + mat2[i];
- }
-
- return retMat;
-};
-
-Utils.mulMat = function(mat_in, factor)
-{
- var retMat = mat4.create();
- for(var i = 0; i < 16; i++)
- {
- retMat[i] = mat_in[i] * factor;
- }
-
- return retMat;
-};
-
-Utils.clamp = function(num, min, max) {
- return num < min ? min : (num > max ? max : num);
-};
-
- var newVec1 = vec3.create();
- var newVec2 = vec3.create();
-
-Utils.vecInterp = function(vec1, vec2, ratio)
-{
- newVec1 = vec3.scale(newVec1, vec1, 1.0 - ratio);
- newVec2 = vec3.scale(newVec2, vec2, ratio);
-
- var retVec = vec3.create();
- retVec = vec3.add(retVec, newVec1, newVec2);
-
- return retVec;
-};
-
-Utils.vec2Interp = function(vec_1, vec_2, ratio)
-{
- var newVec1 = vec2.create();
- var newVec2 = vec2.create();
-
- newVec1 = vec2.scale(newVec1, vec_1, 1.0 - ratio);
- newVec2 = vec2.scale(newVec2, vec_2, ratio);
-
- var retVec = vec2.create();
- retVec = vec2.add(retVec, newVec1, newVec2);
-
- return retVec;
-};
-
-// MeshBone
-function MeshBone(key_in, start_pt_in, end_pt_in, parent_transform)
-{
- this.key = key_in;
- this.world_rest_angle = 0;
- this.rest_parent_mat = mat4.create();
- this.rest_parent_inv_mat = mat4.create();
- this.rest_world_mat = mat4.create();
- this.rest_world_inv_mat = mat4.create();
- this.bind_world_mat = mat4.create();
- this.bind_world_inv_mat = mat4.create();
- this.parent_world_mat = mat4.create();
- this.parent_world_inv_mat = mat4.create();
- this.local_rest_start_pt = null;
- this.local_rest_end_pt = null;
-
- this.setRestParentMat(parent_transform, null);
- this.setLocalRestStartPt(start_pt_in);
- this.setLocalRestEndPt(end_pt_in);
- this.setParentWorldInvMat(mat4.create());
- this.setParentWorldMat(mat4.create());
-
- this.local_binormal_dir = vec3.fromValues(0.0,0.0,1.0);
- this.tag_id = 0;
-
- this.children = [];
-};
-
-MeshBone.prototype.setRestParentMat = function(transform_in, inverse_in)
-{
- this.rest_parent_mat = transform_in;
- if(inverse_in == null) {
- this.rest_parent_inv_mat = mat4.clone(this.rest_parent_mat);
- //rest_parent_inv_mat.inv();
- mat4.invert(this.rest_parent_inv_mat, this.rest_parent_inv_mat);
- }
- else {
- this.rest_parent_inv_mat = mat4.clone(inverse_in);
- }
-};
-
-MeshBone.prototype.setParentWorldMat = function(transform_in)
-{
- this.parent_world_mat = transform_in;
-};
-
-MeshBone.prototype.setParentWorldInvMat = function(transform_in)
-{
- this.parent_world_inv_mat = transform_in;
-};
-
-MeshBone.prototype.getLocalRestStartPt = function()
-{
- return this.local_rest_start_pt;
-};
-
-MeshBone.prototype.getLocalRestEndPt = function()
-{
- return this.local_rest_end_pt;
-};
-
-MeshBone.prototype.setLocalRestStartPt = function(world_pt_in)
-{
- //local_rest_start_pt = Vector3.Transform(world_pt_in, rest_parent_inv_mat);
- //this.local_rest_start_pt = world_pt_in.cpy().traMul(rest_parent_inv_mat);
- this.local_rest_start_pt = vec3.create();
- this.local_rest_start_pt = vec3.transformMat4(this.local_rest_start_pt, world_pt_in, this.rest_parent_inv_mat);
- this.calcRestData();
-};
-
-MeshBone.prototype.setLocalRestEndPt = function(world_pt_in)
-{
- //local_rest_end_pt = Vector3.Transform(world_pt_in, rest_parent_inv_mat);
- //this.local_rest_end_pt = world_pt_in.cpy().traMul(rest_parent_inv_mat);
- this.local_rest_end_pt = vec3.create();
- this.local_rest_end_pt = vec3.transformMat4(this.local_rest_end_pt, world_pt_in, this.rest_parent_inv_mat);
- this.calcRestData();
-};
-
-MeshBone.prototype.calcRestData = function()
-{
- if(this.local_rest_start_pt == null || this.local_rest_end_pt == null)
- {
- return;
- }
-
- var calc = this.computeDirs(this.local_rest_start_pt, this.local_rest_end_pt);
-
- this.local_rest_dir = calc.first;
- this.local_rest_normal_dir = calc.second;
-
- this.computeRestLength();
-};
-
-MeshBone.prototype.setWorldStartPt = function(world_pt_in)
-{
- this.world_start_pt = world_pt_in;
-};
-
-MeshBone.prototype.setWorldEndPt = function(world_pt_in)
-{
- this.world_end_pt = world_pt_in;
-};
-
-MeshBone.prototype.fixDQs = function(ref_dq)
-{
- // if( Quaternion.Dot(world_dq.real, ref_dq.real) < 0) {
- //if( world_dq.real.dot(ref_dq.real) < 0) {
- if(quat.dot(this.world_dq.real, ref_dq.real) < 0) {
- //this.world_dq.real = world_dq.real.cpy().mul(-1);
- this.world_dq.real = quat.scale(this.world_dq.real, this.world_dq.real, -1);
- //this.world_dq.imaginary = world_dq.imaginary.cpy().mul(-1);
- this.world_dq.imaginary = quat.scale(this.world_dq.imaginary, this.world_dq.imaginary, -1);
- }
-
- for(var i = 0; i < this.children.length; i++) {
- var cur_child = this.children[i];
- cur_child.fixDQs(this.world_dq);
- }
-};
-
-MeshBone.prototype.initWorldPts = function()
-{
- this.setWorldStartPt(this.getWorldRestStartPt());
- this.setWorldEndPt(this.getWorldRestEndPt());
-
- for(var i = 0; i < this.children.length; i++) {
- this.children[i].initWorldPts();
- }
-};
-
-MeshBone.prototype.getWorldRestStartPt = function()
-{
- //Vector3 ret_vec = Vector3.Transform(local_rest_start_pt, rest_parent_mat);
- var tmp_mat = this.rest_parent_mat;
- var ret_vec = vec3.create();
- ret_vec = vec3.transformMat4(ret_vec, this.local_rest_start_pt, tmp_mat);
-
- return ret_vec;
-};
-
-MeshBone.prototype.getWorldRestEndPt = function()
-{
- // Vector3 ret_vec = Vector3.Transform(local_rest_end_pt, rest_parent_mat);
- var tmp_mat = this.rest_parent_mat;
- var ret_vec = vec3.create();
- ret_vec = vec3.transformMat4(ret_vec, this.local_rest_end_pt, tmp_mat);
-
- return ret_vec;
-};
-
-MeshBone.prototype.getWorldRestAngle = function()
-{
- return this.world_rest_angle;
-};
-
-MeshBone.prototype.getWorldRestPos = function()
-{
- return this.world_rest_pos;
-};
-
-MeshBone.prototype.getWorldStartPt = function()
-{
- return this.world_start_pt;
-};
-
-MeshBone.prototype.getWorldEndPt = function()
-{
- return this.world_end_pt;
-};
-
-MeshBone.prototype.getRestParentMat = function()
-{
- return this.rest_parent_mat;
-};
-
-MeshBone.prototype.getRestWorldMat = function()
-{
- return this.rest_world_mat;
-};
-
-MeshBone.prototype.getWorldDeltaMat = function()
-{
- return this.world_delta_mat;
-};
-
-MeshBone.prototype.getParentWorldMat = function()
-{
- return this.parent_world_mat;
-};
-
-MeshBone.prototype.getParentWorldInvMat = function()
-{
- return this.parent_world_inv_mat;
-};
-
-MeshBone.prototype.getWorldDq = function()
-{
- return this.world_dq;
-};
-
-MeshBone.prototype.computeRestParentTransforms = function()
-{
- var cur_tangent = vec3.fromValues(this.local_rest_dir[Q_X], this.local_rest_dir[Q_Y], 0);
- var cur_binormal = vec3.fromValues(this.local_binormal_dir[Q_X], this.local_binormal_dir[Q_Y], this.local_binormal_dir[Q_Z]);
- var cur_normal = vec3.fromValues(this.local_rest_normal_dir[Q_X], this.local_rest_normal_dir[Q_Y], 0);
-
- var cur_translate = mat4.create();
- //cur_translate.setTranslation(local_rest_end_pt.x, local_rest_end_pt.y, 0);
- mat4.translate(cur_translate, cur_translate, this.local_rest_end_pt);
-
- var cur_rotate = mat4.create();
- /*
- cur_rotate.Right = cur_tangent;
- cur_rotate.Up = cur_normal;
- cur_rotate.Backward = cur_binormal;
- */
- //cur_rotate.set(cur_tangent, cur_normal, cur_binormal, new Vector3(0,0,0));
- cur_rotate = Utils.setAxisMatrix(cur_tangent, cur_normal, cur_binormal);
- //cur_rotate.tra();
-
- //Matrix4 cur_final = cur_translate.cpy().mul(cur_rotate);
- var cur_final = mat4.create();
- cur_final = mat4.multiply(cur_final, cur_translate, cur_rotate);
-
- //rest_world_mat = rest_parent_mat.cpy().mul(cur_final);
- this.rest_world_mat = mat4.create();
- this.rest_world_mat = mat4.multiply(this.rest_world_mat, this.rest_parent_mat, cur_final);
-
- this.rest_world_inv_mat = mat4.clone(this.rest_world_mat);
- this.rest_world_inv_mat = mat4.invert(this.rest_world_inv_mat, this.rest_world_inv_mat);
- //Matrix4.Invert(ref rest_world_mat, out rest_world_inv_mat);
-
-// var world_rest_dir = getWorldRestEndPt().cpy().sub( getWorldRestStartPt());
- var world_rest_dir = vec3.clone(this.getWorldRestEndPt());
- world_rest_dir = vec3.subtract(world_rest_dir, world_rest_dir, this.getWorldRestStartPt());
-
- world_rest_dir = vec3.normalize(world_rest_dir, world_rest_dir);
- this.world_rest_pos = this.getWorldRestStartPt();
-
-
- var bind_translate = mat4.create();
- //bind_translate.setTranslation(getWorldRestStartPt().x, getWorldRestStartPt().y, 0);
- bind_translate = mat4.translate(bind_translate, bind_translate, this.getWorldRestStartPt());
-
- var tVec = vec3.create();
- tVec = vec3.sub(tVec, this.getWorldRestEndPt(), this.getWorldRestStartPt());
- var bind_rotate = Utils.calcRotateMat(tVec);
- //Matrix4 cur_bind_final = bind_translate.cpy().mul(bind_rotate);
- var cur_bind_final = mat4.create();
- cur_bind_final = mat4.multiply(cur_bind_final, bind_translate, bind_rotate);
-
- this.bind_world_mat = mat4.clone(cur_bind_final);
- this.bind_world_inv_mat = mat4.clone(this.bind_world_mat);
- this.bind_world_inv_mat = mat4.invert(this.bind_world_inv_mat, this.bind_world_inv_mat);
- //Matrix4.Invert(ref bind_world_mat, out bind_world_inv_mat);
-
- for(var i = 0; i < this.children.length; i++) {
- var cur_bone = this.children[i];
- cur_bone.setRestParentMat(this.rest_world_mat, this.rest_world_inv_mat);
- cur_bone.computeRestParentTransforms();
- }
-};
-
-MeshBone.prototype.computeParentTransforms = function()
-{
- var translate_parent = mat4.create();
- translate_parent = mat4.translate(translate_parent, translate_parent, this.getWorldEndPt());
-
- var tVec = vec3.create();
- tVec = vec3.subtract(tVec, this.getWorldEndpt(), this.getWorldStartPt());
- var rotate_parent = Utils.calcRotateMat(tVec);
-
- var final_transform = mat4.create();
- final_transform = mat4.multiply(final_transform, translate_parent, rotate_parent);
-
- var final_inv_transform = mat4.clone(final_transform);
- //final_inv_transform.inv();
- final_inv_transform = mat4.invert(final_inv_transform, final_inv_transform);
-
- for(var i = 0; i < children.length; i++) {
- var cur_bone = children[i];
- cur_bone.setParentWorldMat(final_transform);
- cur_bone.setParentWorldInvMat(final_inv_transform);
- cur_bone.computeParentTransforms();
- }
-};
-
-MeshBone.prototype.computeWorldDeltaTransforms = function()
-{
- var calc = this.computeDirs(this.world_start_pt, this.world_end_pt);
- var cur_tangent = vec3.fromValues(calc["first"][Q_X], calc["first"][Q_Y], 0);
- var cur_normal = vec3.fromValues(calc["second"][Q_X], calc["second"][Q_Y], 0);
- var cur_binormal = vec3.fromValues(this.local_binormal_dir[Q_X], this.local_binormal_dir[Q_Y], this.local_binormal_dir[Q_Z]);
-
- var cur_rotate = mat4.create();
- /*
- cur_rotate.Right = cur_tangent;
- cur_rotate.Up = cur_normal;
- cur_rotate.Backward = cur_binormal;
- */
- //cur_rotate.set(cur_tangent, cur_normal, cur_binormal, new Vector3(0,0,0));
- cur_rotate = Utils.setAxisMatrix(cur_tangent, cur_normal, cur_binormal);
-
- //cur_rotate.tra();
-
- var cur_translate = mat4.create();
- //cur_translate.setTranslation(world_start_pt.x, world_start_pt.y, 0);
- cur_translate = mat4.translate(cur_translate, cur_translate, this.world_start_pt);
-
- /*
- world_delta_mat = (cur_translate * cur_rotate)
- * bind_world_inv_mat;
- */
-
- this.world_delta_mat = mat4.create();
-// world_delta_mat = (cur_translate.cpy().mul(cur_rotate)).mul(bind_world_inv_mat);
- this.world_delta_mat = mat4.multiply(this.world_delta_mat, cur_translate, cur_rotate);
- this.world_delta_mat = mat4.multiply(this.world_delta_mat, this.world_delta_mat, this.bind_world_inv_mat);
-
-
- // Quaternion cur_quat = XnaGeometry.Quaternion.CreateFromRotationMatrix(world_delta_mat);
- //var tmpMat = mat3.create();
- //tmpMat = mat3.fromMat4(tmpMat, this.world_delta_mat);
- var cur_quat = Utils.matrixToQuat(this.world_delta_mat);
-
-
- var tmp_pos = Utils.getMatTranslate(this.world_delta_mat);
- this.world_dq = new dualQuat();
- this.world_dq.createFromData(cur_quat, tmp_pos);
-
- for(var i = 0; i < this.children.length; i++) {
- var cur_bone = this.children[i];
- cur_bone.computeWorldDeltaTransforms();
- }
-};
-
-MeshBone.prototype.addChild = function(bone_in)
-{
- bone_in.setRestParentMat(this.rest_world_mat, this.rest_world_inv_mat);
- this.children.push(bone_in);
-};
-
-MeshBone.prototype.getChildren = function()
-{
- return this.children;
-};
-
-MeshBone.prototype.hasBone = function(bone_in)
-{
- for(var i = 0; i < this.children.length; i++) {
- var cur_bone = this.children[i];
- if(cur_bone == bone_in) {
- return true;
- }
- }
-
- return false;
-};
-
-MeshBone.prototype.getChildByKey = function(search_key)
-{
- if(this.key === search_key) {
- return this;
- }
-
- var ret_data = null;
- for(var i = 0; i < this.children.length; i++) {
- var cur_bone = this.children[i];
-
- var result = cur_bone.getChildByKey(search_key);
- if(result != null) {
- ret_data = result;
- break;
- }
- }
-
- return ret_data;
-};
-
-MeshBone.prototype.getKey = function()
-{
- return this.key;
-};
-
-MeshBone.prototype.getAllBoneKeys = function()
-{
- var ret_data = [];
- ret_data.push(this.getKey());
-
- for(var i = 0; i < this.children.length; i++) {
- var append_data = this.children[i].getAllBoneKeys();
- ret_data = ret_data.concat(append_data);
- }
-
- return ret_data;
-};
-
-MeshBone.prototype.getAllChildren = function()
-{
- var ret_data = [];
- ret_data.push(this);
- for(var i = 0; i < this.children.length; i++) {
- var append_data = this.children[i].getAllChildren();
- ret_data = ret_data.concat(append_data);
- }
-
- return ret_data;
-};
-
-MeshBone.prototype.getBoneDepth = function(bone_in, depth)
-{
- if(bone_in == this) {
- return depth;
- }
-
- for(var i = 0; i < this.children.length; i++) {
- var cur_bone = this.children[i];
- var ret_val = cur_bone.getBoneDepth(bone_in, depth + 1);
- if(ret_val != -1) {
- return ret_val;
- }
- }
-
- return -1;
-};
-
-MeshBone.prototype.isLeaf = function()
-{
- return this.children.length == 0;
-};
-
-MeshBone.prototype.deleteChildren = function()
-{
- for(var i = 0; i < this.children.length; i++) {
- var cur_bone = this.children[i];
- cur_bone.deleteChildren();
- }
-
- this.children = [];
-};
-
-MeshBone.prototype.setTagId = function(value_in)
-{
- this.tag_id = value_in;
-};
-
-MeshBone.prototype.getTagId = function()
-{
- return this.tag_id;
-};
-
-MeshBone.prototype.computeDirs = function(start_pt, end_pt)
-{
- var tangent = vec3.create();
- tangent = vec3.subtract(tangent, end_pt, start_pt);
- tangent = vec3.normalize(tangent, tangent);
-
- var normal = Utils.rotateVec_90(tangent);
-
- var retData = {};
- retData["first"] = tangent;
- retData["second"] = normal;
-
- return retData;
-};
-
-MeshBone.prototype.computeRestLength = function()
-{
- var tmp_dir = vec3.create();
- //Vector3 tmp_dir = local_rest_end_pt.cpy().sub(local_rest_start_pt);
- tmp_dir = vec3.subtract(tmp_dir, this.local_rest_end_pt, this.local_rest_start_pt);
-
- this.rest_length = vec3.length(tmp_dir);
-};
-
-// MeshRenderRegion
-function MeshRenderRegion(indices_in, rest_pts_in, uvs_in, start_pt_index_in, end_pt_index_in,
- start_index_in, end_index_in)
-{
- this.store_indices = indices_in;
- this.store_rest_pts = rest_pts_in;
- this.store_uvs = uvs_in;
-
- this.use_local_displacements = false;
- this.use_post_displacements = false;
- this.use_uv_warp = false;
- this.uv_warp_local_offset = vec2.fromValues(0,0);
- this.uv_warp_global_offset = vec2.fromValues(0,0);
- this.uv_warp_scale = vec2.fromValues(1,1);
- this.start_pt_index = start_pt_index_in;
- this.end_pt_index = end_pt_index_in;
- this.start_index = start_index_in;
- this.end_index = end_index_in;
- this.main_bone = null;
- this.local_displacements = [];
- this.post_displacements = [];
- this.uv_warp_ref_uvs = [];
- this.normal_weight_map = {};
- this.fast_normal_weight_map = [];
- this.fast_bones_map = [];
- this.relevant_bones_indices = [];
- this.use_dq = true;
- this.tag_id = -1;
-
- this.initUvWarp();
-};
-
-MeshRenderRegion.prototype.getIndicesIndex = function()
-{
- // return store_indices + (start_index);
- return this.start_index;
-};
-
-MeshRenderRegion.prototype.getRestPtsIndex = function()
-{
- // return store_rest_pts + (3 * start_pt_index);
- return 3 * this.start_pt_index;
-};
-
-MeshRenderRegion.prototype.getUVsIndex = function()
-{
- // return store_uvs + (2 * start_pt_index);
- return 2 * this.start_pt_index;
-};
-
-MeshRenderRegion.prototype.getNumPts = function()
-{
- return this.end_pt_index - this.start_pt_index + 1;
-};
-
-MeshRenderRegion.prototype.getStartPtIndex = function()
-{
- return this.start_pt_index;
-};
-
-MeshRenderRegion.prototype.getEndPtIndex = function()
-{
- return this.end_pt_index;
-};
-
-MeshRenderRegion.prototype.getNumIndices = function()
-{
- return this.end_index - this.start_index + 1;
-};
-
-MeshRenderRegion.prototype.getStartIndex = function()
-{
- return this.start_index;
-};
-
-MeshRenderRegion.prototype.getEndIndex = function()
-{
- return this.end_index;
-};
-
-var accum_dq = new dualQuat();
-var accum_mat = mat4.create();
-var final_pt = vec3.create();
-var tmp1 = vec3.create();
-var tmp2 = vec3.create();
-
-MeshRenderRegion.prototype.poseFinalPts = function(output_pts, output_start_index, bones_map)
-{
- var read_pt_index = this.getRestPtsIndex();
- var write_pt_index = output_start_index;
-
- // point posing
- for(var i = 0; i < 16; i++)
- {
- accum_mat[i] = 0.0;
- }
-
- var boneKeys = Object.keys(bones_map);
- var boneKeyLength = boneKeys.length;
-
- for(var i = 0, l = this.getNumPts(); i < l; i++) {
- var cur_rest_pt =
- vec3.set(tmp1, this.store_rest_pts[0 + read_pt_index],
- this.store_rest_pts[1 + read_pt_index],
- this.store_rest_pts[2 + read_pt_index]);
- // vec3.fromValues(this.store_rest_pts[0 + read_pt_index],
- // this.store_rest_pts[1 + read_pt_index],
- // this.store_rest_pts[2 + read_pt_index]);
-
- if(this.use_local_displacements == true) {
- cur_rest_pt[Q_X] += this.local_displacements[i][Q_X];
- cur_rest_pt[Q_Y] += this.local_displacements[i][Q_Y];
- }
-
- for(var j = 0; j < 16; j++)
- {
- accum_mat[j] = 0.0;
- }
- // reuse
- // var accum_dq = new dualQuat();
- accum_dq.reset();
-
- var curBoneIndices = this.relevant_bones_indices[i];
- var relevantIndicesLength = curBoneIndices.length;
- for (var j = 0; j < relevantIndicesLength; j++)
- {
- var idx_lookup = curBoneIndices[j];
- var cur_bone = this.fast_bones_map[idx_lookup];
- var cur_weight_val = this.fast_normal_weight_map[idx_lookup][i];
- var cur_im_weight_val = cur_weight_val;
-
- var world_dq = cur_bone.getWorldDq();
- accum_dq.add(world_dq, cur_weight_val, cur_im_weight_val);
- }
-
- accum_dq.normalize();
- var tmp_pt = vec3.set(tmp2, cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]);
- // var tmp_pt = vec3.fromValues(cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]);
- final_pt = accum_dq.transform(tmp_pt);
-
- // debug start
-
- // debug end
-
- if(this.use_post_displacements == true) {
- final_pt[Q_X] += this.post_displacements[i][Q_X];
- final_pt[Q_Y] += this.post_displacements[i][Q_Y];
- }
-
- output_pts[0 + write_pt_index] = final_pt[Q_X];
- output_pts[1 + write_pt_index] = final_pt[Q_Y];
- output_pts[2 + write_pt_index] = final_pt[Q_Z];
-
-
-
- read_pt_index += 3;
- write_pt_index += 3;
- }
-
- // uv warping
- if(this.use_uv_warp == true) {
- this.runUvWarp();
- }
-};
-
-MeshRenderRegion.prototype.setMainBoneKey = function(key_in)
-{
- this.main_bone_key = key_in;
-};
-
-MeshRenderRegion.prototype.determineMainBone = function(root_bone_in)
-{
- this.main_bone = root_bone_in.getChildByKey(this.main_bone_key);
-};
-
-MeshRenderRegion.prototype.setUseDq = function(flag_in)
-{
- this.use_dq = flag_in;
-};
-
-MeshRenderRegion.prototype.setName = function(name_in)
-{
- this.name = name_in;
-};
-
-MeshRenderRegion.prototype.getName = function()
-{
- return this.name;
-};
-
-MeshRenderRegion.prototype.setUseLocalDisplacements = function(flag_in)
-{
- this.use_local_displacements = flag_in;
- if((this.local_displacements.length != this.getNumPts())
- && this.use_local_displacements)
- {
- this.local_displacements = [];
- for(var i = 0; i < this.getNumPts(); i++) {
- this.local_displacements.push (vec2.create());
- }
- }
-};
-
-MeshRenderRegion.prototype. getUseLocalDisplacements = function()
-{
- return this.use_local_displacements;
-};
-
-MeshRenderRegion.prototype.setUsePostDisplacements = function(flag_in)
-{
- this.use_post_displacements = flag_in;
- if((this.post_displacements.length != this.getNumPts())
- && this.use_post_displacements)
- {
- this.post_displacements = [];
- for(var i = 0; i < this.getNumPts(); i++) {
- this.post_displacements.push(vec2.create());
- }
- }
-};
-
-MeshRenderRegion.prototype.getUsePostDisplacements = function()
-{
- return this.use_post_displacements;
-};
-
-MeshRenderRegion.prototype.getRestLocalPt = function(index_in)
-{
- var read_pt_index = this.getRestPtsIndex() + (3 * index_in);
- var return_pt = vec2.fromValues(this.store_rest_pts[0 + read_pt_index],
- this.store_rest_pts[1 + read_pt_index]);
- return return_pt;
-};
-
-MeshRenderRegion.prototype.getLocalIndex = function(index_in)
-{
- var read_index = this.getIndicesIndex() + index_in;
- return this.store_indices[read_index];
-};
-
-MeshRenderRegion.prototype.clearLocalDisplacements = function()
-{
- for(var i = 0; i < this.local_displacements.length; i++) {
- this.local_displacements[i] = vec2.create();
- }
-};
-
-MeshRenderRegion.prototype.clearPostDisplacements = function()
-{
- for(var i = 0; i < this.post_displacements.length; i++) {
- this.post_displacements[i] = vec2.create();
- }
-};
-
-MeshRenderRegion.prototype.setUseUvWarp = function(flag_in)
-{
- this.use_uv_warp = flag_in;
- if(this.use_uv_warp == false) {
- this.restoreRefUv();
- }
-};
-
-MeshRenderRegion.prototype. getUseUvWarp = function()
-{
- return this.use_uv_warp;
-};
-
-MeshRenderRegion.prototype.setUvWarpLocalOffset = function(vec_in)
-{
- this.uv_warp_local_offset = vec_in;
-};
-
-MeshRenderRegion.prototype.setUvWarpGlobalOffset = function(vec_in)
-{
- this.uv_warp_global_offset = vec_in;
-};
-
-MeshRenderRegion.prototype.setUvWarpScale = function(vec_in)
-{
- this.uv_warp_scale = vec_in;
-};
-
-MeshRenderRegion.prototype. getUvWarpLocalOffset = function()
-{
- return this.uv_warp_local_offset;
-};
-
-MeshRenderRegion.prototype. getUvWarpGlobalOffset = function()
-{
- return this.uv_warp_global_offset;
-};
-
-MeshRenderRegion.prototype. getUvWarpScale = function()
-{
- return this.uv_warp_scale;
-};
-
-MeshRenderRegion.prototype.runUvWarp = function()
-{
- var cur_uvs_index = this.getUVsIndex();
- for(var i = 0; i < this.uv_warp_ref_uvs.length; i++) {
- var set_uv = vec2.clone(this.uv_warp_ref_uvs[i]);
-
-
- set_uv = vec2.subtract(set_uv, set_uv, this.uv_warp_local_offset);
- set_uv[Q_X] *= this.uv_warp_scale[Q_X];
- set_uv[Q_Y] *= this.uv_warp_scale[Q_Y];
- set_uv = vec2.add(set_uv, set_uv, this.uv_warp_global_offset);
-
-
- /*
- set_uv.sub(uv_warp_local_offset);
- set_uv.scl(uv_warp_scale);
- set_uv.add(uv_warp_global_offset);
- */
-
-
- this.store_uvs[0 + cur_uvs_index] = set_uv[Q_X];
- this.store_uvs[1 + cur_uvs_index] = set_uv[Q_Y];
-
-
- cur_uvs_index += 2;
- }
-};
-
-MeshRenderRegion.prototype.restoreRefUv = function()
-{
- var cur_uvs_index = this.getUVsIndex();
- for(var i = 0; i < this.uv_warp_ref_uvs.length; i++) {
- var set_uv = this.uv_warp_ref_uvs[i];
-
- this.store_uvs[0 + cur_uvs_index] = set_uv[Q_X];
- this.store_uvs[1 + cur_uvs_index] = set_uv[Q_Y];
-
- cur_uvs_index += 2;
- }
-};
-
-MeshRenderRegion.prototype.getTagId = function()
-{
- return this.tag_id;
-};
-
-MeshRenderRegion.prototype.setTagId = function(value_in)
-{
- this.tag_id = value_in;
-};
-
-MeshRenderRegion.prototype.initFastNormalWeightMap = function(bones_map)
-{
- this.relevant_bones_indices = [];
-
- // fast normal weight map lookup, avoids hash lookups
- for (var cur_key in bones_map) {
- var values = this.normal_weight_map[cur_key];
- this.fast_normal_weight_map.push(values);
- }
-
- // relevant bone indices
- var cutoff_val = 0.05;
- for(var i = 0; i < this.getNumPts(); i++) {
- var curIndicesArray = [];
- for (var j = 0; j < this.fast_normal_weight_map.length; j++)
- {
- var cur_val = this.fast_normal_weight_map[j][i];
- if(cur_val > cutoff_val)
- {
- curIndicesArray.push(j);
- }
- }
-
- this.relevant_bones_indices.push(curIndicesArray);
- }
-
- // fast bone map lookup
- for (var cur_key in bones_map) {
- var cur_bone = bones_map[cur_key];
- this.fast_bones_map.push(cur_bone);
- }
-};
-
-MeshRenderRegion.prototype.initUvWarp = function()
-{
- var cur_uvs_index = this.getUVsIndex();
- // uv_warp_ref_uvs = new java.util.Vector(new Vector2[getNumPts()]);
- this.uv_warp_ref_uvs = [];;
-
- for(var i = 0; i < this.getNumPts(); i++) {
- this.uv_warp_ref_uvs.push(vec2.create());
-
- this.uv_warp_ref_uvs[i] = vec2.fromValues(this.store_uvs[cur_uvs_index],
- this.store_uvs[cur_uvs_index + 1]);
-
-
-
- cur_uvs_index += 2;
- }
-};
-
-
-// MeshRenderBoneComposition
-function MeshRenderBoneComposition()
-{
- this.root_bone = null;
- this.bones_map = {};
- this.regions = [];
- this.regions_map = {};
-};
-
-MeshRenderBoneComposition.prototype.addRegion = function(region_in)
-{
- this.regions.push(region_in);
-};
-
-MeshRenderBoneComposition.prototype.setRootBone = function(root_bone_in)
-{
- this.root_bone = root_bone_in;
-};
-
-MeshRenderBoneComposition.prototype.getRootBone = function()
-{
- return this.root_bone;
-};
-
-MeshRenderBoneComposition.prototype.initBoneMap = function()
-{
- this.bones_map = MeshRenderBoneComposition.genBoneMap(this.root_bone);
-};
-
-MeshRenderBoneComposition.prototype.initRegionsMap = function()
-{
- this.regions_map = {};
- for(var i = 0; i < this.regions.length; i++) {
- cur_key = this.regions[i].getName();
- this.regions_map[cur_key] = this.regions[i];
- }
-};
-
-MeshRenderBoneComposition.genBoneMap = function(input_bone)
-{
- var ret_map = {};
- var all_keys = input_bone.getAllBoneKeys();
- for(var i = 0; i < all_keys.length; i++) {
- var cur_key = all_keys[i];
- ret_map[cur_key] = input_bone.getChildByKey(cur_key);
- }
-
- return ret_map;
-};
-
-MeshRenderBoneComposition.prototype.getBonesMap = function()
-{
- return this.bones_map;
-};
-
-MeshRenderBoneComposition.prototype.getRegionsMap = function()
-{
- return this.regions_map;
-};
-
-MeshRenderBoneComposition.prototype.getRegions = function()
-{
- return this.regions;
-};
-
-MeshRenderBoneComposition.prototype.getRegionWithId = function(id_in)
-{
- for(var i = 0; i < this.regions.length; i++) {
- var cur_region = this.regions[i];
- if(cur_region.getTagId() == id_in) {
- return cur_region;
- }
- }
-
- return null;
-};
-
-MeshRenderBoneComposition.prototype.resetToWorldRestPts = function()
-{
- this.getRootBone().initWorldPts();
-};
-
-MeshRenderBoneComposition.prototype.updateAllTransforms = function(update_parent_xf)
-{
- if(update_parent_xf) {
- this.getRootBone().computeParentTransforms();
- }
-
- this.getRootBone().computeWorldDeltaTransforms();
- this.getRootBone().fixDQs(this.getRootBone().getWorldDq());
-};
-
-// MeshBoneCache
-function MeshBoneCache(key_in)
-{
- this.key = key_in;
-};
-
-MeshBoneCache.prototype.setWorldStartPt = function(pt_in) {
- this.world_start_pt = pt_in;
-};
-
-MeshBoneCache.prototype.setWorldEndPt = function(pt_in) {
- this.world_end_pt = pt_in;
-};
-
-MeshBoneCache.prototype.getWorldStartPt = function() {
- return this.world_start_pt;
-};
-
-MeshBoneCache.prototype.getWorldEndPt = function() {
- return this.world_end_pt;
-};
-
-MeshBoneCache.prototype.getKey = function() {
- return this.key;
-};
-
-// MeshDisplacementCache
-function MeshDisplacementCache(key_in)
-{
- this.key = key_in;
- this.local_displacements = [];
- this.post_displacements = [];
-};
-
-MeshDisplacementCache.prototype.setLocalDisplacements = function(displacements_in)
-{
- this.local_displacements = displacements_in;
-};
-
-MeshDisplacementCache.prototype.setPostDisplacements = function(displacements_in)
-{
- this.post_displacements = displacements_in;
-};
-
-MeshDisplacementCache.prototype.getKey = function() {
- return this.key;
-};
-
-MeshDisplacementCache.prototype.getLocalDisplacements = function()
-{
- return this.local_displacements;
-};
-
-MeshDisplacementCache.prototype.getPostDisplacements = function()
-{
- return this.post_displacements;
-};
-
-
-// MeshUVWarpCache
-function MeshUVWarpCache(key_in)
-{
- this.uv_warp_global_offset = vec2.create();
- this.uv_warp_local_offset = vec2.create();
- this.uv_warp_scale = vec2.fromValues(-1,-1);
- this.key = key_in;
- this.enabled = false;
-};
-
-MeshUVWarpCache.prototype.setUvWarpLocalOffset = function(vec_in)
-{
- this.uv_warp_local_offset = vec_in;
-};
-
-MeshUVWarpCache.prototype.setUvWarpGlobalOffset = function(vec_in)
-{
- this.uv_warp_global_offset = vec_in;
-};
-
-MeshUVWarpCache.prototype.setUvWarpScale = function(vec_in)
-{
- this.uv_warp_scale = vec_in;
-};
-
-MeshUVWarpCache.prototype.getUvWarpLocalOffset = function()
-{
- return this.uv_warp_local_offset;
-};
-
-MeshUVWarpCache.prototype.getUvWarpGlobalOffset = function()
-{
- return this.uv_warp_global_offset;
-};
-
-MeshUVWarpCache.prototype.getUvWarpScale = function()
-{
- return this.uv_warp_scale;
-};
-
-MeshUVWarpCache.prototype.getKey = function() {
- return this.key;
-};
-
-MeshUVWarpCache.prototype.setEnabled = function(flag_in)
-{
- this.enabled = flag_in;
-};
-
-MeshUVWarpCache.prototype.getEnabled = function() {
- return this.enabled;
-};
-
-// MeshBoneCacheManager
-function MeshBoneCacheManager()
-{
- this.is_ready = false;
- this.bone_cache_table = null;
- this.bone_cache_data_ready = null;
- this.bone_cache_table = [];
- this.bone_cache_data_ready = [];
-};
-
-MeshBoneCacheManager.prototype.init = function(start_time_in, end_time_in)
-{
- this.start_time = start_time_in;
- this.end_time = end_time_in;
-
- var num_frames = this.end_time - this.start_time + 1;
- this.bone_cache_table = [];
-
- this.bone_cache_data_ready = [];
- for(var i = 0; i < num_frames; i++) {
- this.bone_cache_table.push([]);
- this.bone_cache_data_ready.push(false);
- }
-
- this.is_ready = false;
-};
-
-MeshBoneCacheManager.prototype.getStartTime = function()
-{
- return this.start_time;
-};
-
-MeshBoneCacheManager.prototype.getEndime = function()
-{
- return this.end_time;
-};
-
-MeshBoneCacheManager.prototype.getIndexByTime = function(time_in)
-{
- var retval = time_in - this.start_time;
- retval = Utils.clamp(retval, 0, (this.bone_cache_table.length) - 1);
-
- return retval;
-};
-
-MeshBoneCacheManager.prototype.retrieveValuesAtTime = function(time_in, bone_map)
-{
- var base_time = this.getIndexByTime(Math.floor(time_in));
- var end_time = this.getIndexByTime(Math.ceil(time_in));
-
- var ratio = (time_in - Math.floor(time_in));
-
- if(this.bone_cache_data_ready.length == 0) {
- return;
- }
-
- if((this.bone_cache_data_ready[base_time] == false)
- || ((this.bone_cache_data_ready[end_time] == false)))
- {
- return;
- }
-
- var base_cache = this.bone_cache_table[base_time];
- var end_cache = this.bone_cache_table[end_time];
-
- for(var i = 0, l = base_cache.length; i < l; i++) {
- var base_data = base_cache[i];
- var end_data = end_cache[i];
- var cur_key = base_data.getKey();
-
- var final_world_start_pt = Utils.vecInterp(base_data.getWorldStartPt(), end_data.getWorldStartPt(), ratio);
-
- var final_world_end_pt = Utils.vecInterp(base_data.getWorldEndPt(), end_data.getWorldEndPt(), ratio);
-
- /*
- Vector3 final_world_start_pt = ((1.0f - ratio) * base_data.getWorldStartPt()) +
- (ratio * end_data.getWorldStartPt());
-
- Vector3 final_world_end_pt = ((1.0f - ratio) * base_data.getWorldEndPt()) +
- (ratio * end_data.getWorldEndPt());
- */
-
- bone_map[cur_key].setWorldStartPt(final_world_start_pt);
- bone_map[cur_key].setWorldEndPt(final_world_end_pt);
- }
-};
-
-MeshBoneCacheManager.prototype.allReady = function()
-{
- if(this.is_ready) {
- return true;
- }
- else {
- var num_frames = this.end_time - this.start_time + 1;
- var ready_cnt = 0;
- for(var i = 0; i < this.bone_cache_data_ready.size(); i++) {
- if(this.bone_cache_data_ready[i]) {
- ready_cnt++;
- }
- }
-
- if(ready_cnt == num_frames) {
- this.is_ready = true;
- }
- }
-
- return this.is_ready;
-};
-
-MeshBoneCacheManager.prototype.makeAllReady = function()
-{
- for(var i = 0; i < this.bone_cache_data_ready.length; i++) {
- this.bone_cache_data_ready[i] = true;
- }
-};
-
-// MeshDisplacementCacheManager
-function MeshDisplacementCacheManager()
-{
- this.is_ready = false;
- this.displacement_cache_table = null;
- this.displacement_cache_data_ready = null;
- this.displacement_cache_table = [];
- this.displacement_cache_data_ready = [];
-};
-
-MeshDisplacementCacheManager.prototype.init = function(start_time_in, end_time_in)
-{
- this.start_time = start_time_in;
- this.end_time = end_time_in;
-
- var num_frames = this.end_time - this.start_time + 1;
- this.displacement_cache_table = [];
-
- this.displacement_cache_data_ready = [];
- for(var i = 0; i < num_frames; i++) {
- this.displacement_cache_table.push([]);
- this.displacement_cache_data_ready.push(false);
- }
-
- this.is_ready = false;
-};
-
-MeshDisplacementCacheManager.prototype.getStartTime = function()
-{
- return this.start_time;
-};
-
-MeshDisplacementCacheManager.prototype.getEndime = function()
-{
- return this.end_time;
-};
-
-MeshDisplacementCacheManager.prototype.getIndexByTime = function(time_in)
-{
- var retval = time_in - this.start_time;
- retval = Utils.clamp(retval, 0, (this.displacement_cache_table.length) - 1);
-
- return retval;
-};
-
-MeshDisplacementCacheManager.prototype.retrieveValuesAtTime = function(time_in, regions_map)
-{
- var base_time = this.getIndexByTime(Math.floor(time_in));
- var end_time = this.getIndexByTime(Math.ceil(time_in));
-
- var ratio = (time_in - Math.floor(time_in));
-
- if(this.displacement_cache_data_ready.length == 0) {
- return;
- }
-
- if((this.displacement_cache_data_ready[base_time] == false)
- || (this.displacement_cache_data_ready[end_time] == false))
- {
- return;
- }
-
- var base_cache = this.displacement_cache_table[base_time];
- var end_cache = this.displacement_cache_table[end_time];
-
- for(var i = 0; i < base_cache.length; i++) {
- var base_data = base_cache[i];
- var end_data = end_cache[i];
- var cur_key = base_data.getKey();
-
- var set_region = regions_map[cur_key];
-
- if(set_region.getUseLocalDisplacements()) {
- var displacements =
- set_region.local_displacements;
- if((base_data.getLocalDisplacements().length == displacements.length)
- && (end_data.getLocalDisplacements().length == displacements.length))
- {
- for(var j = 0; j < displacements.length; j++) {
- var interp_val = Utils.vec2Interp(base_data.getLocalDisplacements()[j],
- end_data.getLocalDisplacements()[j],
- ratio);
-
- /*
- Vector2 interp_val =
- ((1.0f - ratio) * base_data.getLocalDisplacements().get(j)) +
- (ratio * end_data.getLocalDisplacements().get(j));
- */
-
- displacements[j] = interp_val;
- }
- }
- else {
- for(var j = 0; j < displacements.length; j++) {
- displacements[j] = vec2.create();
- }
- }
- }
-
- if(set_region.getUsePostDisplacements()) {
- var displacements =
- set_region.post_displacements;
- if((base_data.getPostDisplacements().length == displacements.length)
- && (end_data.getPostDisplacements().length == displacements.length))
- {
-
- for(var j = 0; j < displacements.length; j++) {
- var interp_val = Utils.vec2Interp(base_data.getPostDisplacements()[j],
- end_data.getPostDisplacements()[j],
- ratio);
-
- /*
- Vector2 interp_val =
- ((1.0f - ratio) * base_data.getPostDisplacements()[j]) +
- (ratio * end_data.getPostDisplacements()[j]);
- */
- displacements[j] = interp_val;
- }
- }
- else {
- for(var j = 0; j < displacements.length; j++) {
- displacements.set[j] = vec2.create();
- }
- }
- }
- }
-};
-
-MeshDisplacementCacheManager.prototype.allReady = function()
-{
- if(this.is_ready) {
- return true;
- }
- else {
- var num_frames = this.end_time - this.start_time + 1;
- var ready_cnt = 0;
- for(var i = 0; i < this.displacement_cache_data_ready.length; i++) {
- if(this.displacement_cache_data_ready[i]) {
- ready_cnt++;
- }
- }
-
- if(ready_cnt == num_frames) {
- this.is_ready = true;
- }
- }
-
- return this.is_ready;
-};
-
-MeshDisplacementCacheManager.prototype.makeAllReady = function()
-{
- for(var i = 0; i < this.displacement_cache_data_ready.length; i++) {
- this.displacement_cache_data_ready[i] = true;
- }
-};
-
-// MeshUVWarpCacheManager
-function MeshUVWarpCacheManager()
-{
- this.is_ready = false;
- this.uv_cache_table = null;
- this.uv_cache_data_ready = null;
- this.uv_cache_table = [];
- this.uv_cache_data_ready = [];
-};
-
-MeshUVWarpCacheManager.prototype.init = function(start_time_in, end_time_in)
-{
- this.start_time = start_time_in;
- this.end_time = end_time_in;
-
- var num_frames = this.end_time - this.start_time + 1;
- this.uv_cache_table = [];
-
- this.uv_cache_data_ready = [];
- for(var i = 0; i < num_frames; i++) {
- this.uv_cache_table.push([]);
- this.uv_cache_data_ready.push(false);
- }
-
- this.is_ready = false;
-};
-
-MeshUVWarpCacheManager.prototype.getStartTime = function()
-{
- return this.start_time;
-};
-
-MeshUVWarpCacheManager.prototype.getEndime = function()
-{
- return this.end_time;
-};
-
-MeshUVWarpCacheManager.prototype.getIndexByTime = function(time_in)
-{
- var retval = time_in - this.start_time;
- retval = Utils.clamp(retval, 0, (this.uv_cache_table.length) - 1);
-
- return retval;
-};
-
-MeshUVWarpCacheManager.prototype.retrieveValuesAtTime = function(time_in, regions_map)
-{
- var base_time = this.getIndexByTime(Math.floor(time_in));
- var end_time = this.getIndexByTime(Math.ceil(time_in));
-
- var ratio = (time_in - Math.floor(time_in));
-
- if(this.uv_cache_data_ready.length == 0) {
- return;
- }
-
- if((this.uv_cache_data_ready[base_time] == false)
- || (this.uv_cache_data_ready[end_time] == false))
- {
- return;
- }
-
- var base_cache = this.uv_cache_table[base_time];
- var end_cache = this.uv_cache_table[end_time];
-
- for(var i = 0; i < base_cache.length; i++) {
- var base_data = base_cache[i];
- var end_data = end_cache[i];
- var cur_key = base_data.getKey();
-
- var set_region = regions_map[cur_key];
- if(set_region.getUseUvWarp()) {
- var final_local_offset = base_data.getUvWarpLocalOffset();
-
-
- var final_global_offset = base_data.getUvWarpGlobalOffset();
-
- var final_scale = base_data.getUvWarpScale();
- /*
- Vector2 final_local_offset = ((1.0f - ratio) * base_data.getUvWarpLocalOffset()) +
- (ratio * end_data.getUvWarpLocalOffset());
-
- Vector2 final_global_offset = ((1.0f - ratio) * base_data.getUvWarpGlobalOffset()) +
- (ratio * end_data.getUvWarpGlobalOffset());
-
- Vector2 final_scale = ((1.0f - ratio) * base_data.getUvWarpScale()) +
- (ratio * end_data.getUvWarpScale());
-
- */
-
-
- set_region.setUvWarpLocalOffset(final_local_offset);
- set_region.setUvWarpGlobalOffset(final_global_offset);
- set_region.setUvWarpScale(final_scale);
- }
- }
-};
-
-MeshUVWarpCacheManager.prototype.allReady = function()
-{
- if(this.is_ready) {
- return true;
- }
- else {
- var num_frames = this.end_time - this.start_time + 1;
- var ready_cnt = 0;
- for(var i = 0; i < this.uv_cache_data_ready.length; i++) {
- if(uv_cache_data_ready[i]) {
- ready_cnt++;
- }
- }
-
- if(ready_cnt == num_frames) {
- this.is_ready = true;
- }
- }
-
- return this.is_ready;
-};
-
-MeshUVWarpCacheManager.prototype.makeAllReady = function()
-{
- for(var i = 0; i < this.uv_cache_data_ready.length; i++) {
- this.uv_cache_data_ready[i] = true;
- }
-};
-
-// CreatureModuleUtils
-var CreatureModuleUtils = {};
-
-CreatureModuleUtils.GetAllAnimationNames = function(json_data)
-{
- var json_animations = json_data["animation"];
- var keys = [];
- for (var name in json_animations)
- {
- keys.push(name);
- }
-
- return keys;
-};
-
-CreatureModuleUtils.getFloatArray = function(raw_data)
-{
- return raw_data;
-};
-
-CreatureModuleUtils.getIntArray = function(raw_data)
-{
- return raw_data;
-};
-
-
-CreatureModuleUtils.ReadPointsArray2DJSON = function(data, key)
-{
- var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
- var ret_list = [];
- var num_points = raw_array.length / 2;
- for (var i = 0; i < num_points; i++)
- {
- var cur_index = i * 2;
- ret_list.push(
- vec2.fromValues(raw_array[0 + cur_index], raw_array[1 + cur_index]));
- }
-
- return ret_list;
-};
-
-CreatureModuleUtils.ReadFloatArray3DJSON = function(data, key)
-{
- var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
-
- var ret_list = [];
- var num_points = raw_array.length / 2;
- for (var i = 0; i < num_points; i++)
- {
- var cur_index = i * 2;
- ret_list.push(raw_array[0 + cur_index]);
- ret_list.push(raw_array[1 + cur_index]);
- ret_list.push(0);
- }
-
- return ret_list;
-};
-
-CreatureModuleUtils.ReadBoolJSON = function(data, key)
-{
- var val = data[key];
- return val;
-};
-
-CreatureModuleUtils.ReadFloatArrayJSON = function(data, key)
-{
- /*
- var raw_array = getFloatArray(data.get[key]);
- var ret_list = [];
- for(var i = 0; i < raw_array.length; i++)
- {
- ret_list.push(raw_array[i]);
- }
-
- return ret_list;
- */
-
- return data[key];
-};
-
-CreatureModuleUtils.ReadIntArrayJSON = function(data, key)
-{
- /*
- int[] raw_array = getIntArray (data.get(key));
- java.util.Vector ret_list = new java.util.Vector();
-
- for(int i = 0; i < raw_array.length; i++) {
- ret_list.add(raw_array[i]);
- }
-
- return ret_list;
- */
- return data[key];
-};
-
-CreatureModuleUtils.ReadMatrixJSON = function(data, key)
-{
- var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
- var retMat = mat4.create();
- for(var i = 0; i < 16; i++)
- {
- retMat[i] = raw_array[i];
- }
-
- return retMat;
-};
-
-CreatureModuleUtils.ReadVector2JSON = function(data, key)
-{
- var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
- return vec2.fromValues(raw_array[0], raw_array[1]);
-};
-
-
-CreatureModuleUtils.ReadVector3JSON = function(data, key)
-{
- var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
- return vec3.fromValues(raw_array[0], raw_array[1], 0);
-};
-
-CreatureModuleUtils.CreateBones = function(json_obj, key) {
- var root_bone = null;
- var base_obj = json_obj[key];
- //var bone_data = new HashMap>>();
- var bone_data = {};
- var child_set = {};
-
- // layout bones
- for (var cur_name in base_obj)
- {
-
- var cur_node = base_obj[cur_name];
-
- var cur_id = cur_node["id"]; //GetJSONNodeFromKey(*cur_node, "id")->value.toNumber();
- var cur_parent_mat = CreatureModuleUtils.ReadMatrixJSON(cur_node, "restParentMat");
-
- var cur_local_rest_start_pt = CreatureModuleUtils.ReadVector3JSON(cur_node, "localRestStartPt");
- var cur_local_rest_end_pt = CreatureModuleUtils.ReadVector3JSON(cur_node, "localRestEndPt");
- var cur_children_ids = CreatureModuleUtils.ReadIntArrayJSON(cur_node, "children");
-
- var new_bone = new MeshBone(cur_name,
- vec3.create(),
- vec3.create(),
- cur_parent_mat);
- new_bone.local_rest_start_pt = cur_local_rest_start_pt;
- new_bone.local_rest_end_pt = cur_local_rest_end_pt;
- new_bone.calcRestData();
- new_bone.setTagId(cur_id);
-
- bone_data[cur_id] = {first:new_bone, second:cur_children_ids};
-
- for(var i = 0; i < cur_children_ids.length; i++){
- var cur_child_id = cur_children_ids[i];
- child_set[cur_child_id] = cur_child_id;
- }
- }
-
- // Find root
- for(var cur_id in bone_data)
- {
- if( (cur_id in child_set) == false) {
- // not a child, so is root
- var cur_data = bone_data[cur_id];
- root_bone = cur_data.first;
- break;
- }
- }
-
- // construct hierarchy
- for(var cur_id in bone_data)
- {
- var cur_data = bone_data[cur_id];
-
- var cur_bone = cur_data.first;
- var children_ids = cur_data.second;
- for(var i = 0; i < children_ids.length; i++)
- {
- var cur_child_id = children_ids[i];
- var child_bone = bone_data[cur_child_id].first;
- cur_bone.addChild(child_bone);
- }
-
- }
-
-
- return root_bone;
-};
-
-CreatureModuleUtils.CreateRegions = function(json_obj, key, indices_in, rest_pts_in, uvs_in)
-{
- var ret_regions = [];
- var base_obj = json_obj[key];
-
- for (var cur_name in base_obj)
- {
- var cur_node = base_obj[cur_name];
-
- var cur_id = cur_node["id"]; //(int)GetJSONNodeFromKey(*cur_node, "id")->value.toNumber();
- var cur_start_pt_index = cur_node["start_pt_index"]; //(int)GetJSONNodeFromKey(*cur_node, "start_pt_index")->value.toNumber();
- var cur_end_pt_index = cur_node["end_pt_index"]; //(int)GetJSONNodeFromKey(*cur_node, "end_pt_index")->value.toNumber();
- var cur_start_index = cur_node["start_index"]; //(int)GetJSONNodeFromKey(*cur_node, "start_index")->value.toNumber();
- var cur_end_index = cur_node["end_index"]; //(int)GetJSONNodeFromKey(*cur_node, "end_index")->value.toNumber();
-
- var new_region = new MeshRenderRegion(indices_in,
- rest_pts_in,
- uvs_in,
- cur_start_pt_index,
- cur_end_pt_index,
- cur_start_index,
- cur_end_index);
-
- new_region.setName(cur_name);
- new_region.setTagId(cur_id);
-
- // Read in weights
- var weight_map =
- new_region.normal_weight_map;
- var weight_obj = cur_node["weights"];
-
- for (var w_key in weight_obj)
- {
- var w_node = weight_obj[w_key];
- var values = CreatureModuleUtils.ReadFloatArrayJSON(weight_obj, w_key);
- weight_map[w_key] = values;
- }
-
- ret_regions.push(new_region);
- }
-
- return ret_regions;
-};
-
-CreatureModuleUtils.GetStartEndTimes = function(json_obj, key)
-{
- var start_time = 0;
- var end_time = 0;
- var first = true;
- var base_obj = json_obj[key];
-
- for (var cur_val in base_obj)
- {
- var cur_node = base_obj[cur_val];
- var cur_num = parseInt(cur_val);
- if(first) {
- start_time = cur_num;
- end_time = cur_num;
- first = false;
- }
- else {
- if(cur_num > end_time) {
- end_time = cur_num;
- }
-
- if(cur_num < start_time) {
- start_time = cur_num;
- }
- }
- }
-
- return {first:start_time, second:end_time};
-};
-
-CreatureModuleUtils.FillBoneCache = function(json_obj, key, start_time, end_time, cache_manager)
-{
- var base_obj = json_obj[key];
-
- cache_manager.init(start_time, end_time);
-
- for (var cur_time in base_obj)
- {
- var cur_node = base_obj[cur_time];
-
- cache_list = [];
-
- for (var cur_name in cur_node)
- {
- var bone_node = cur_node[cur_name];
-
- var cur_start_pt = CreatureModuleUtils.ReadVector3JSON(bone_node, "start_pt"); //ReadJSONVec4_2(*bone_node, "start_pt");
- var cur_end_pt = CreatureModuleUtils.ReadVector3JSON(bone_node, "end_pt"); //ReadJSONVec4_2(*bone_node, "end_pt");
-
- var cache_data = new MeshBoneCache(cur_name);
- cache_data.setWorldStartPt(cur_start_pt);
- cache_data.setWorldEndPt(cur_end_pt);
-
- cache_list.push(cache_data);
- }
-
- var set_index = cache_manager.getIndexByTime(cur_time);
- cache_manager.bone_cache_table[set_index] = cache_list;
- }
-
- cache_manager.makeAllReady();
-};
-
-CreatureModuleUtils.FillDeformationCache = function(json_obj, key, start_time, end_time, cache_manager)
-{
- var base_obj = json_obj[key];
-
- cache_manager.init(start_time, end_time);
-
- for (var cur_time in base_obj)
- {
- var cur_node = base_obj[cur_time];
-
- var cache_list = [];
-
- for (var cur_name in cur_node)
- {
- var mesh_node = cur_node[cur_name];
-
- var cache_data = new MeshDisplacementCache(cur_name);
-
- var use_local_displacement = CreatureModuleUtils.ReadBoolJSON(mesh_node, "use_local_displacements"); //GetJSONNodeFromKey(*mesh_node, "use_local_displacements")->value.toBool();
- var use_post_displacement = CreatureModuleUtils.ReadBoolJSON(mesh_node, "use_post_displacements"); //GetJSONNodeFromKey(*mesh_node, "use_post_displacements")->value.toBool();
-
- if(use_local_displacement == true) {
- var read_pts = CreatureModuleUtils.ReadPointsArray2DJSON(mesh_node, "local_displacements"); //ReadJSONPoints2DVector(*mesh_node, "local_displacements");
- cache_data.setLocalDisplacements(read_pts);
- }
-
- if(use_post_displacement == true) {
- var read_pts = CreatureModuleUtils.ReadPointsArray2DJSON(mesh_node, "post_displacements"); //ReadJSONPoints2DVector(*mesh_node, "post_displacements");
- cache_data.setPostDisplacements(read_pts);
- }
-
- cache_list.push(cache_data);
- }
-
- var set_index = cache_manager.getIndexByTime(cur_time);
- cache_manager.displacement_cache_table[set_index] = cache_list;
- }
-
- cache_manager.makeAllReady();
-};
-
-CreatureModuleUtils.FillUVSwapCache = function(json_obj, key, start_time, end_time, cache_manager)
-{
- var base_obj = json_obj[key];
-
- cache_manager.init(start_time, end_time);
-
- for (var cur_time in base_obj)
- {
- var cur_node = base_obj[cur_time];
-
- var cache_list = [];
-
- for (var cur_name in cur_node)
- {
- var uv_node = cur_node[cur_name];
-
- var cache_data = new MeshUVWarpCache(cur_name);
- var use_uv = CreatureModuleUtils.ReadBoolJSON(uv_node, "enabled"); //GetJSONNodeFromKey(*uv_node, "enabled")->value.toBool();
- cache_data.setEnabled(use_uv);
- if(use_uv == true) {
- var local_offset = CreatureModuleUtils.ReadVector2JSON(uv_node, "local_offset"); //ReadJSONVec2(*uv_node, "local_offset");
- var global_offset = CreatureModuleUtils.ReadVector2JSON(uv_node, "global_offset"); //ReadJSONVec2(*uv_node, "global_offset");
- var scale = CreatureModuleUtils.ReadVector2JSON(uv_node, "scale"); //ReadJSONVec2(*uv_node, "scale");
- cache_data.setUvWarpLocalOffset(local_offset);
- cache_data.setUvWarpGlobalOffset(global_offset);
- cache_data.setUvWarpScale(scale);
- }
-
- cache_list.push(cache_data);
- }
-
- var set_index = cache_manager.getIndexByTime(cur_time);
- cache_manager.uv_cache_table[set_index] = cache_list;
- }
-
- cache_manager.makeAllReady();
-};
-
-// Creature
-function Creature(load_data)
-{
- this.total_num_pts = 0;
- this.total_num_indices = 0;
- this.global_indices = null;
- this.global_pts = null;
- this.global_uvs = null;
- this.render_pts = null;
- this.render_colours = null;
- this.render_composition = null;
- this.boundary_indices = [];
- this.boundary_min = vec2.create();
- this.boundary_max = vec2.create();
-
- this.LoadFromData(load_data);
-};
-
-// Fills entire mesh with (r,g,b,a) colours
-Creature.prototype.FillRenderColours = function(r, g, b, a)
-{
- for(var i = 0; i < this.total_num_pts; i++)
- {
- var cur_colour_index = i * 4;
- this.render_colours[0 + cur_colour_index] = r;
- this.render_colours[1 + cur_colour_index] = g;
- this.render_colours[2 + cur_colour_index] = b;
- this.render_colours[3 + cur_colour_index] = a;
- }
-};
-
-// Compute boundary indices
-
-Creature.prototype.ComputeBoundaryIndices = function()
-{
- var freq_table = {};
- for(var i = 0; i < this.total_num_pts; i++)
- {
- freq_table[i] = 0;
- }
-
- var cur_regions = this.render_composition.getRegions();
- for(var i = 0; i < this.global_indices.length; i++)
- {
- var cur_idx = this.global_indices[i];
- var is_found = false;
- for(var j = 0; j < cur_regions.length; j++)
- {
- var cur_region = cur_regions[j];
- var cur_start_index = cur_region.getStartPtIndex();
- var cur_end_index = cur_region.getEndPtIndex();
-
- if(cur_idx >= cur_start_index && cur_idx <= cur_end_index)
- {
- is_found = true;
- break;
- }
- }
-
-
- if(is_found)
- {
- freq_table[cur_idx]++;
- }
- }
-
- // now find the boundary indices who have <= 5 referenced triangles
- this.boundary_indices = [];
- for(var i = 0; i < this.total_num_pts; i++)
- {
- if(freq_table[i] <=5)
- {
- this.boundary_indices.push(i);
- }
- }
-};
-
-// Compute min and max bounds of the animated mesh
-Creature.prototype.ComputeBoundaryMinMax = function()
-{
-
- if(this.boundary_indices.length <= 0)
- {
- this.ComputeBoundaryIndices();
- }
-
-
- var firstIdx = this.boundary_indices[0] * 3;
- var minPt = vec2.fromValues(this.render_pts[firstIdx + 0], this.render_pts[firstIdx + 1]);
- var maxPt = vec2.fromValues(minPt[0], minPt[1]);
-
-
- for(var i = 0; i < this.boundary_indices.length; i++)
- {
- var ref_idx = this.boundary_indices[i] * 3;
- var ref_x = this.render_pts[ref_idx];
- var ref_y = this.render_pts[ref_idx + 1];
-
- if(minPt[0] > ref_x)
- {
- minPt[0] = ref_x;
- }
-
- if(minPt[1] > ref_y)
- {
- minPt[1] = ref_y;
- }
-
- if(maxPt[0] < ref_x)
- {
- maxPt[0] = ref_x;
- }
-
- if(maxPt[1] < ref_y)
- {
- maxPt[1] = ref_y;
- }
- }
-
- this.boundary_min = minPt;
- this.boundary_max = maxPt;
-};
-
-
-// Load data
-Creature.prototype.LoadFromData = function(load_data)
-{
- // Load points and topology
- var json_mesh = load_data["mesh"];
-
- this.global_pts = CreatureModuleUtils.ReadFloatArray3DJSON(json_mesh, "points");
- this.total_num_pts = this.global_pts.length / 3;
-
- this.global_indices = CreatureModuleUtils.ReadIntArrayJSON (json_mesh, "indices");
- this.total_num_indices = this.global_indices.length;
-
- this.global_uvs = CreatureModuleUtils.ReadFloatArrayJSON (json_mesh, "uvs");
-
-
- this.render_colours = [];
- for(var i = 0; i < this.total_num_pts * 4; i++)
- {
- this.render_colours.push(0);
- }
- this.FillRenderColours(1, 1, 1, 1);
-
- this.render_pts = [];
-
- // Load bones
- var root_bone = CreatureModuleUtils.CreateBones(load_data, "skeleton");
-
-
- // Load regions
- var regions = CreatureModuleUtils.CreateRegions(json_mesh,
- "regions",
- this.global_indices,
- this.global_pts,
- this.global_uvs);
-
- // Add into composition
- this.render_composition = new MeshRenderBoneComposition();
- this.render_composition.setRootBone(root_bone);
- this.render_composition.getRootBone().computeRestParentTransforms();
-
- for(var i = 0; i < regions.length; i++) {
- var cur_region = regions[i];
- cur_region.setMainBoneKey(root_bone.getKey());
- cur_region.determineMainBone(root_bone);
- this.render_composition.addRegion(cur_region);
- }
-
- this.render_composition.initBoneMap();
- this.render_composition.initRegionsMap();
-
- for(var i = 0; i < regions.length; i++) {
- var cur_region = regions[i];
- cur_region.initFastNormalWeightMap(this.render_composition.bones_map);
- }
-
- this.render_composition.resetToWorldRestPts();
-};
-
-// CreatureAnimation
-function CreatureAnimation(load_data, name_in)
-{
- this.name = name_in;
- this.bones_cache = new MeshBoneCacheManager();
- this.displacement_cache = new MeshDisplacementCacheManager();
- this.uv_warp_cache = new MeshUVWarpCacheManager();
- this.cache_pts = [];
- this.fill_cache_pts = [];
-
- this.LoadFromData(name_in, load_data);
-};
-
-CreatureAnimation.prototype.LoadFromData = function(name_in, load_data)
-{
- var json_anim_base = load_data["animation"];
- var json_clip = json_anim_base[name_in];
-
- var start_end_times = CreatureModuleUtils.GetStartEndTimes(json_clip, "bones");
- this.start_time = start_end_times.first;
- this.end_time = start_end_times.second;
-
- // bone animation
- CreatureModuleUtils.FillBoneCache(json_clip,
- "bones",
- this.start_time,
- this.end_time,
- this.bones_cache);
-
- // mesh deformation animation
- CreatureModuleUtils.FillDeformationCache(json_clip,
- "meshes",
- this.start_time,
- this.end_time,
- this.displacement_cache);
-
- // uv swapping animation
- CreatureModuleUtils.FillUVSwapCache(json_clip,
- "uv_swaps",
- this.start_time,
- this.end_time,
- this.uv_warp_cache);
-};
-
-CreatureAnimation.prototype.getIndexByTime = function(time_in)
-{
- var retval = time_in - this.start_time;
- retval = Utils.clamp(retval, 0, (this.cache_pts.length) - 1);
-
- return retval;
-};
-
-CreatureAnimation.prototype.verifyFillCache = function()
-{
- if(this.fill_cache_pts.length == (this.end_time - this.start_time + 1))
- {
- // ready to switch over
- this.cache_pts = this.fill_cache_pts;
- }
-};
-
-CreatureAnimation.prototype.poseFromCachePts = function(time_in, target_pts, num_pts)
-{
- var cur_floor_time = this.getIndexByTime(Math.floor(time_in));
- var cur_ceil_time = this.getIndexByTime(Math.ceil(time_in));
- var cur_ratio = time_in - Math.floor(time_in);
-
- var set_pt = target_pts;
- var floor_pts = this.cache_pts[cur_floor_time];
- var ceil_pts = this.cache_pts[cur_ceil_time];
-
- var set_idx = 0;
- var floor_idx = 0;
- var ceil_idx = 0;
-
- for(var i = 0; i < num_pts; i++)
- {
- set_pt[set_idx + 0] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 0]) + (cur_ratio * ceil_pts[ceil_idx + 0]);
- set_pt[set_idx + 1] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 1]) + (cur_ratio * ceil_pts[ceil_idx + 1]);
- set_pt[set_idx + 2] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 2]) + (cur_ratio * ceil_pts[ceil_idx + 2]);
-
- set_idx += 3;
- floor_idx += 3;
- ceil_idx += 3;
- }
-};
-
-// CreatureManager
-function CreatureManager(target_creature_in)
-{
- this.target_creature = target_creature_in;
- this.is_playing = false;
- this.run_time = 0;
- this.time_scale = 30.0;
- this.blending_factor = 0;
- this.should_loop = true;
- this.use_custom_time_range = false;
- this.custom_start_time = 0;
- this.custom_end_time = 0;
- this.animations = {};
- this.bones_override_callback = null;
-
- this.blend_render_pts = [];
- this.blend_render_pts.push([]);
- this.blend_render_pts.push([]);
- this.do_blending = false;
-
- this.active_blend_animation_names = [];
- this.active_blend_animation_names.push("");
- this.active_blend_animation_names.push("");
-};
-
-// Create an animation
-CreatureManager.prototype.CreateAnimation = function(load_data, name_in)
-{
- var new_animation = new CreatureAnimation(load_data, name_in);
- this.AddAnimation(new_animation);
-};
-
-// Create all animations
-CreatureManager.prototype.CreateAllAnimations = function(load_data)
-{
- var all_animation_names = CreatureModuleUtils.GetAllAnimationNames (load_data);
- for(var i = 0; i < all_animation_names.length; i++)
- {
- var cur_name = all_animation_names[i];
- this.CreateAnimation(load_data, cur_name);
- }
-
- this.SetActiveAnimationName (all_animation_names.get(0));
-};
-
-// Add an animation
-CreatureManager.prototype.AddAnimation = function(animation_in)
-{
- this.animations[animation_in.name] = animation_in;
-};
-
-// Return an animation
-CreatureManager.prototype.GetAnimation = function(name_in)
-{
- return this.animations[name_in];
-};
-
-// Return the creature
-CreatureManager.prototype.GetCreature = function()
-{
- return this.target_creature;
-};
-
-// Returns all the animation names
-CreatureManager.prototype.GetAnimationNames = function()
-{
- var ret_names = [];
- for(var cur_name in animations) {
- ret_names.push(cur_name);
- }
-
- return ret_names;
-};
-
-// Sets the current animation to be active by name
-CreatureManager.prototype.SetActiveAnimationName = function(name_in, check_already_active)
-{
- if (name_in == null || (name_in in this.animations) == false) {
- return false;
- }
-
- if(check_already_active == true)
- {
- if(this.active_animation_name == name_in)
- {
- return false;
- }
- }
-
- this.active_animation_name = name_in;
- var cur_animation = this.animations[this.active_animation_name];
- this.run_time = cur_animation.start_time;
-
- var displacement_cache_manager = cur_animation.displacement_cache;
- var displacement_table =
- displacement_cache_manager.displacement_cache_table[0];
-
- var uv_warp_cache_manager = cur_animation.uv_warp_cache;
- var uv_swap_table =
- uv_warp_cache_manager.uv_cache_table[0];
-
- var render_composition =
- this.target_creature.render_composition;
-
- var all_regions = render_composition.getRegions();
-
- var index = 0;
- for(var i = 0; i < all_regions.length; i++)
- {
- var cur_region = all_regions[i];
- // Setup active or inactive displacements
- var use_local_displacements = !(displacement_table[index].getLocalDisplacements().length == 0);
- var use_post_displacements = !(displacement_table[index].getPostDisplacements().length == 0);
- cur_region.setUseLocalDisplacements(use_local_displacements);
- cur_region.setUsePostDisplacements(use_post_displacements);
-
- // Setup active or inactive uv swaps
- cur_region.setUseUvWarp(uv_swap_table[index].getEnabled());
-
- index++;
- }
-
- return true;
-};
-
-// Returns the name of the currently active animation
-CreatureManager.prototype.GetActiveAnimationName = function()
-{
- return this.active_animation_name;
-};
-
-// Returns the table of all animations
-CreatureManager.prototype.GetAllAnimations = function()
-{
- return this.animations;
-};
-
-// Creates a point cache for the current animation
-CreatureManager.prototype.MakePointCache = function(animation_name_in)
-{
- var store_run_time = this.getRunTime();
- var cur_animation = this.animations[animation_name_in];
- if(cur_animation.length > 0)
- {
- // cache already generated, just exit
- return;
- }
-
- var cache_pts_list = cur_animation.cache_pts;
-
- for(var i = cur_animation.start_time; i <= cur_animation.end_time; i++)
- {
- this.setRunTime(i);
- var new_pts = [];
- for (var j = 0; j < this.target_creature.total_num_pts * 3; j++) new_pts[j] = 0;
- //auto new_pts = new glm::float32[target_creature->GetTotalNumPoints() * 3];
- this.PoseCreature(animation_name_in, new_pts);
-
- cache_pts_list.push(new_pts);
- }
-
- this.setRunTime(store_run_time);
-};
-
-// Fills up a single frame for a point cache animation
-// Point caching is only enabled when the cache is FULLY filled up
-// Remember the new filled cache is Appended onto the end of a list
-// There is no indexing by time here so MAKE SURE this cache is filled up sequentially!
-CreatureManager.prototype.FillSinglePointCacheFrame = function(animation_name_in, time_in)
-{
- var store_run_time = this.getRunTime();
- var cur_animation = this.animations[animation_name_in];
-
- this.setRunTime(time_in);
- var new_pts = [];
- for (var j = 0; j < this.target_creature.total_num_pts * 3; j++) new_pts[j] = 0;
- this.PoseCreature(animation_name_in, new_pts);
-
- cur_animation.fill_cache_pts.push(new_pts);
- cur_animation.verifyFillCache();
-
- this.setRunTime(store_run_time);
-};
-
-// Returns if animation is playing
-CreatureManager.prototype.GetIsPlaying = function()
-{
- return this.is_playing;
-};
-
-// Sets whether to loop the animation
-CreatureManager.prototype.SetShouldLoop = function(flag_in)
-{
- this.should_loop = flag_in;
-};
-
-// Sets whether to use a user defined custom time range for the currently
-// active animation clip
-CreatureManager.prototype.SetUseCustomTimeRange = function(flag_in)
-{
- this.use_custom_time_range = flag_in;
-};
-
-// Sets the user defined custom time range
-CreatureManager.prototype.SetCustomTimeRange = function(start_time_in, end_time_in)
-{
- this.custom_start_time = start_time_in;
- this.custom_end_time = end_time_in;
-};
-
-// Sets whether the animation is playing
-CreatureManager.prototype.SetIsPlaying = function(flag_in)
-{
- this.is_playing = flag_in;
-};
-
-// Resets animation to start time
-CreatureManager.prototype.ResetToStartTimes = function()
-{
- var cur_animation = this.animations[active_animation_name];
- this.run_time = cur_animation.start_time;
-};
-
-// Sets the run time of the animation
-CreatureManager.prototype.setRunTime = function(time_in)
-{
- this.run_time = time_in;
- this.correctTime ();
-};
-
-// Increments the run time of the animation by a delta value
-CreatureManager.prototype.increRunTime = function(delta_in)
-{
- this.run_time += delta_in;
- this.correctTime ();
-};
-
-CreatureManager.prototype.correctTime = function()
-{
- var cur_animation = this.animations[this.active_animation_name];
- var anim_start_time = cur_animation.start_time;
- var anim_end_time = cur_animation.end_time;
-
- if(this.use_custom_time_range)
- {
- anim_start_time = this.custom_start_time;
- anim_end_time = this.custom_end_time;
- }
-
- if(this.run_time > anim_end_time)
- {
- if(this.should_loop)
- {
- this.run_time = anim_start_time;
- }
- else {
- this.run_time = anim_end_time;
- }
- }
- else if(this.run_time < anim_start_time)
- {
- if(this.should_loop)
- {
- this.run_time = anim_end_time;
- }
- else {
- this.run_time = anim_start_time;
- }
- }
-};
-
-// Returns the current run time of the animation
-CreatureManager.prototype.getRunTime = function()
-{
- return this.run_time;
-};
-
-// Runs a single step of the animation for a given delta timestep
-CreatureManager.prototype.Update = function(delta)
-{
- if(!this.is_playing)
- {
- return;
- }
-
- this.increRunTime(delta * this.time_scale);
-
- this.RunCreature ();
-};
-
-CreatureManager.prototype.RunAtTime = function(time_in)
-{
- if(!this.is_playing)
- {
- return;
- }
-
- this.setRunTime(time_in);
- this.RunCreature ();
-};
-
-CreatureManager.prototype.RunCreature = function()
-{
- if(this.do_blending)
- {
- for(var i = 0; i < 2; i++) {
- var cur_animation = this.animations[this.active_blend_animation_names[i]];
- if(cur_animation.cache_pts.length > 0)
- {
- cur_animation.poseFromCachePts(this.getRunTime(), this.blend_render_pts[i], this.target_creature.total_num_pts);
- }
- else {
- this.PoseCreature(this.active_blend_animation_names[i], this.blend_render_pts[i]);
- }
- }
-
- for(var j = 0; j < this.target_creature.total_num_pts * 3; j++)
- {
- var set_data_index = j;
- var read_data_1 = this.blend_render_pts[0][j];
- var read_data_2 = this.blend_render_pts[1][j];
- /*
- target_creature.render_pts[set_data_index] =
- ((1.0f - blending_factor) * (read_data_1)) +
- (blending_factor * (read_data_2));
- */
- this.target_creature.render_pts.set(set_data_index,
- ((1.0 - blending_factor) * (read_data_1)) +
- (blending_factor * (read_data_2)));
-
- }
- }
- else {
- var cur_animation = this.animations[this.active_animation_name];
- if(cur_animation.cache_pts.length > 0)
- {
- cur_animation.poseFromCachePts(this.getRunTime(), this.target_creature.render_pts, this.target_creature.total_num_pts);
- // cur_animation->poseFromCachePts(getRunTime(), target_creature->GetRenderPts(), target_creature->GetTotalNumPoints());
- }
- else {
- this.PoseCreature(this.active_animation_name, this.target_creature.render_pts);
- }
- }
-};
-
-// Sets scaling for time
-CreatureManager.prototype.SetTimeScale = function(scale_in)
-{
- this.time_scale = scale_in;
-};
-
-// Enables/Disables blending
-CreatureManager.prototype.SetBlending = function(flag_in)
-{
- this.do_blending = flag_in;
-
- if (this.do_blending) {
- if (this.blend_render_pts[0].length == 0) {
- var new_vec = [];
- for(var i = 0; i < target_creature.total_num_pts * 3; i++)
- {
- new_vec.push(0);
- }
-
- this.blend_render_pts.set(0, new_vec);
- }
-
- if (this.blend_render_pts[1].length == 0) {
- var new_vec = [];
- for(var i = 0; i < this.target_creature.total_num_pts * 3; i++)
- {
- new_vec.push(0);
- }
-
- this.blend_render_pts[1] = new_vec;
- }
-
- }
-};
-
-// Sets blending animation names
-CreatureManager.prototype.SetBlendingAnimations = function(name_1, name_2)
-{
- this.active_blend_animation_names[0] = name_1;
- this.active_blend_animation_names[1] = name_2;
-};
-
-// Sets the blending factor
-CreatureManager.prototype.SetBlendingFactor = function(value_in)
-{
- this.blending_factor = value_in;
-};
-
-// Given a set of coordinates in local creature space,
-// see if any bone is in contact
-CreatureManager.prototype.IsContactBone = function(pt_in, radius)
-{
- var cur_bone = this.target_creature.render_composition.getRootBone();
- return this.ProcessContactBone(pt_in, radius, cur_bone);
-};
-
-
-CreatureManager.prototype.PoseCreature = function(animation_name_in, target_pts)
-{
- var cur_animation = this.animations[animation_name_in];
-
- var bone_cache_manager = cur_animation.bones_cache;
- var displacement_cache_manager = cur_animation.displacement_cache;
- var uv_warp_cache_manager = cur_animation.uv_warp_cache;
-
- var render_composition =
- this.target_creature.render_composition;
-
- // Extract values from caches
- var bones_map =
- render_composition.getBonesMap();
- var regions_map =
- render_composition.getRegionsMap();
-
- bone_cache_manager.retrieveValuesAtTime(this.getRunTime(),
- bones_map);
-
- if(this.bones_override_callback != null)
- {
- this.bones_override_callback(bones_map);
- }
-
- displacement_cache_manager.retrieveValuesAtTime(this.getRunTime(),
- regions_map);
- uv_warp_cache_manager.retrieveValuesAtTime(this.getRunTime(),
- regions_map);
-
-
- // Do posing, decide if we are blending or not
- var cur_regions =
- render_composition.getRegions();
- var cur_bones =
- render_composition.getBonesMap();
-
- render_composition.updateAllTransforms(false);
- for(var j = 0, l = cur_regions.length; j < l; j++) {
- var cur_region = cur_regions[j];
-
- var cur_pt_index = cur_region.getStartPtIndex();
-
-
- cur_region.poseFinalPts(target_pts,
- cur_pt_index * 3,
- cur_bones);
-
- // add in z offsets for different regions
-
- var start = cur_region.getStartPtIndex() * 3;
- var end = cur_region.getEndPtIndex() * 3;
- for(var k = start;
- k <= end;
- k+=3)
- {
- target_pts[k + 2] = -j * 0.001;
- }
-
- }
-};
-
diff --git a/build/creature.map b/build/creature.map
deleted file mode 100644
index f018483bd..000000000
--- a/build/creature.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["creature.js"],"names":["dualQuat","this","real","quat","create","Q_W","imaginary","tmpQ1","MeshBone","key_in","start_pt_in","end_pt_in","parent_transform","key","world_rest_angle","rest_parent_mat","mat4","rest_parent_inv_mat","rest_world_mat","rest_world_inv_mat","bind_world_mat","bind_world_inv_mat","parent_world_mat","parent_world_inv_mat","local_rest_start_pt","local_rest_end_pt","setRestParentMat","setLocalRestStartPt","setLocalRestEndPt","setParentWorldInvMat","setParentWorldMat","local_binormal_dir","vec3","fromValues","tag_id","children","MeshRenderRegion","indices_in","rest_pts_in","uvs_in","start_pt_index_in","end_pt_index_in","start_index_in","end_index_in","store_indices","store_rest_pts","store_uvs","use_local_displacements","use_post_displacements","use_uv_warp","uv_warp_local_offset","vec2","uv_warp_global_offset","uv_warp_scale","start_pt_index","end_pt_index","start_index","end_index","main_bone","local_displacements","post_displacements","uv_warp_ref_uvs","normal_weight_map","fast_normal_weight_map","fast_bones_map","relevant_bones_indices","use_dq","initUvWarp","MeshRenderBoneComposition","root_bone","bones_map","regions","regions_map","MeshBoneCache","MeshDisplacementCache","MeshUVWarpCache","enabled","MeshBoneCacheManager","is_ready","bone_cache_table","bone_cache_data_ready","MeshDisplacementCacheManager","displacement_cache_table","displacement_cache_data_ready","MeshUVWarpCacheManager","uv_cache_table","uv_cache_data_ready","Creature","load_data","total_num_pts","total_num_indices","global_indices","global_pts","global_uvs","render_pts","render_colours","render_composition","boundary_indices","boundary_min","boundary_max","LoadFromData","CreatureAnimation","name_in","name","bones_cache","displacement_cache","uv_warp_cache","cache_pts","fill_cache_pts","CreatureManager","target_creature_in","target_creature","is_playing","run_time","time_scale","blending_factor","should_loop","use_custom_time_range","custom_start_time","custom_end_time","animations","bones_override_callback","blend_render_pts","push","do_blending","active_blend_animation_names","_global","shim","define","amd","exports","window","GLMAT_EPSILON","GLMAT_ARRAY_TYPE","Float32Array","Array","GLMAT_RANDOM","Math","random","glMatrix","setMatrixArrayType","type","degree","PI","toRadian","a","out","clone","x","y","copy","set","add","b","subtract","sub","multiply","mul","divide","div","min","max","scale","scaleAndAdd","distance","sqrt","dist","squaredDistance","sqrDist","length","len","squaredLength","sqrLen","negate","inverse","normalize","dot","cross","z","lerp","t","ax","ay","r","cos","sin","transformMat2","m","transformMat2d","transformMat3","transformMat4","forEach","vec","stride","offset","count","fn","arg","i","l","str","az","bx","by","bz","zScale","w","transformQuat","q","qx","qy","qz","qw","ix","iy","iz","iw","rotateX","c","p","rotateY","rotateZ","vec4","aw","mat2","identity","transpose","a1","invert","a0","a2","a3","det","adjoint","determinant","b0","b1","b2","b3","rotate","rad","s","v","v0","v1","frob","pow","LDU","L","D","U","mat2d","aa","ab","ac","ad","atx","aty","a4","a5","b4","b5","translate","mat3","fromMat4","a01","a02","a12","a00","a10","a11","a20","a21","a22","b01","b11","b21","b00","b02","b10","b12","b20","b22","fromMat2d","fromQuat","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","axis","abs","fromRotationTranslation","xy","xz","yz","frustum","left","right","bottom","top","near","far","rl","tb","nf","perspective","fovy","aspect","f","tan","ortho","lr","bt","lookAt","eye","center","up","x0","x1","y0","y1","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","rotationTo","tmpvec3","xUnitVec3","yUnitVec3","setAxisAngle","setAxes","matr","view","fromMat3","bw","calculateW","slerp","omega","cosom","sinom","scale0","scale1","acos","invDot","conjugate","fRoot","fTrace","j","k","Q_X","Q_Y","Q_Z","prototype","reset","createFromData","q0","quat_in","real_factor","imaginary_factor","norm","ve","trans","tmpVec1","tmpVec2","tmpVec0","aVec","rot","transform","Utils","setAxisMatrix","xAxis","yAxis","zAxis","retMat","M00","M01","M02","M03","M10","M11","M12","M13","M20","M21","M22","M23","M30","M31","M32","M33","matrixToQuat","mat_in","retQuat","te","m11","m12","m13","m21","m22","m23","m31","m32","m33","trace","rotateVec_90","vec_in","ret_vec","calcRotateMat","dir","pep_dir","cur_tangent","cur_normal","cur_binormal","cur_rotate","getMatTranslate","ret_pos","addMat","mat1","mulMat","factor","clamp","num","newVec1","newVec2","vecInterp","vec1","ratio","retVec","vec2Interp","vec_1","vec_2","transform_in","inverse_in","getLocalRestStartPt","getLocalRestEndPt","world_pt_in","calcRestData","calc","computeDirs","local_rest_dir","first","local_rest_normal_dir","second","computeRestLength","setWorldStartPt","world_start_pt","setWorldEndPt","world_end_pt","fixDQs","ref_dq","world_dq","cur_child","initWorldPts","getWorldRestStartPt","getWorldRestEndPt","tmp_mat","getWorldRestAngle","getWorldRestPos","world_rest_pos","getWorldStartPt","getWorldEndPt","getRestParentMat","getRestWorldMat","getWorldDeltaMat","world_delta_mat","getParentWorldMat","getParentWorldInvMat","getWorldDq","computeRestParentTransforms","cur_translate","cur_final","world_rest_dir","bind_translate","tVec","bind_rotate","cur_bind_final","cur_bone","computeParentTransforms","translate_parent","getWorldEndpt","rotate_parent","final_transform","final_inv_transform","computeWorldDeltaTransforms","cur_quat","tmp_pos","addChild","bone_in","getChildren","hasBone","getChildByKey","search_key","ret_data","result","getKey","getAllBoneKeys","append_data","concat","getAllChildren","getBoneDepth","depth","ret_val","isLeaf","deleteChildren","setTagId","value_in","getTagId","start_pt","end_pt","tangent","normal","retData","tmp_dir","rest_length","getIndicesIndex","getRestPtsIndex","getUVsIndex","getNumPts","getStartPtIndex","getEndPtIndex","getNumIndices","getStartIndex","getEndIndex","accum_dq","accum_mat","final_pt","tmp1","tmp2","poseFinalPts","output_pts","output_start_index","read_pt_index","write_pt_index","boneKeys","Object","keys","cur_rest_pt","curBoneIndices","relevantIndicesLength","idx_lookup","cur_weight_val","cur_im_weight_val","tmp_pt","runUvWarp","setMainBoneKey","main_bone_key","determineMainBone","root_bone_in","setUseDq","flag_in","setName","getName","setUseLocalDisplacements","getUseLocalDisplacements","setUsePostDisplacements","getUsePostDisplacements","getRestLocalPt","index_in","return_pt","getLocalIndex","read_index","clearLocalDisplacements","clearPostDisplacements","setUseUvWarp","restoreRefUv","getUseUvWarp","setUvWarpLocalOffset","setUvWarpGlobalOffset","setUvWarpScale","getUvWarpLocalOffset","getUvWarpGlobalOffset","getUvWarpScale","cur_uvs_index","set_uv","initFastNormalWeightMap","cur_key","values","cutoff_val","curIndicesArray","cur_val","addRegion","region_in","setRootBone","getRootBone","initBoneMap","genBoneMap","initRegionsMap","input_bone","ret_map","all_keys","getBonesMap","getRegionsMap","getRegions","getRegionWithId","id_in","cur_region","resetToWorldRestPts","updateAllTransforms","update_parent_xf","pt_in","setLocalDisplacements","displacements_in","setPostDisplacements","getLocalDisplacements","getPostDisplacements","setEnabled","getEnabled","init","start_time_in","end_time_in","start_time","end_time","num_frames","getStartTime","getEndime","getIndexByTime","time_in","retval","retrieveValuesAtTime","bone_map","base_time","floor","ceil","base_cache","end_cache","base_data","end_data","final_world_start_pt","final_world_end_pt","allReady","ready_cnt","size","makeAllReady","set_region","displacements","interp_val","final_local_offset","final_global_offset","final_scale","CreatureModuleUtils","GetAllAnimationNames","json_data","json_animations","getFloatArray","raw_data","getIntArray","ReadPointsArray2DJSON","data","raw_array","ret_list","num_points","cur_index","ReadFloatArray3DJSON","ReadBoolJSON","val","ReadFloatArrayJSON","ReadIntArrayJSON","ReadMatrixJSON","ReadVector2JSON","ReadVector3JSON","CreateBones","json_obj","base_obj","bone_data","child_set","cur_name","cur_node","cur_id","cur_parent_mat","cur_local_rest_start_pt","cur_local_rest_end_pt","cur_children_ids","new_bone","cur_child_id","cur_data","children_ids","child_bone","CreateRegions","ret_regions","cur_start_pt_index","cur_end_pt_index","cur_start_index","cur_end_index","new_region","weight_map","weight_obj","w_key","GetStartEndTimes","cur_num","parseInt","FillBoneCache","cache_manager","cur_time","cache_list","bone_node","cur_start_pt","cur_end_pt","cache_data","set_index","FillDeformationCache","mesh_node","use_local_displacement","use_post_displacement","read_pts","FillUVSwapCache","uv_node","use_uv","local_offset","global_offset","FillRenderColours","g","cur_colour_index","ComputeBoundaryIndices","freq_table","cur_regions","cur_idx","is_found","ComputeBoundaryMinMax","firstIdx","minPt","maxPt","ref_idx","ref_x","ref_y","json_mesh","json_anim_base","json_clip","start_end_times","verifyFillCache","poseFromCachePts","target_pts","num_pts","cur_floor_time","cur_ceil_time","cur_ratio","set_pt","floor_pts","ceil_pts","set_idx","floor_idx","ceil_idx","CreateAnimation","new_animation","AddAnimation","CreateAllAnimations","all_animation_names","SetActiveAnimationName","get","animation_in","GetAnimation","GetCreature","GetAnimationNames","ret_names","check_already_active","active_animation_name","cur_animation","displacement_cache_manager","displacement_table","uv_warp_cache_manager","uv_swap_table","all_regions","index","GetActiveAnimationName","GetAllAnimations","MakePointCache","animation_name_in","store_run_time","getRunTime","cache_pts_list","setRunTime","new_pts","PoseCreature","FillSinglePointCacheFrame","GetIsPlaying","SetShouldLoop","SetUseCustomTimeRange","SetCustomTimeRange","SetIsPlaying","ResetToStartTimes","correctTime","increRunTime","delta_in","anim_start_time","anim_end_time","Update","delta","RunCreature","RunAtTime","set_data_index","read_data_1","read_data_2","SetTimeScale","scale_in","SetBlending","new_vec","SetBlendingAnimations","name_1","name_2","SetBlendingFactor","IsContactBone","radius","ProcessContactBone","bone_cache_manager","cur_bones","cur_pt_index","start","end"],"mappings":"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","file":"creature.min.js"}
\ No newline at end of file
diff --git a/build/creature.min.js b/build/creature.min.js
deleted file mode 100644
index 69c1dd644..000000000
--- a/build/creature.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Phaser v2.6.1 Creature Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
-
-function dualQuat(){this.real=quat.create(),this.real[Q_W]=0,this.imaginary=quat.create(),this.imaginary[Q_W]=0,this.tmpQ1=quat.create()}function MeshBone(a,b,c,d){this.key=a,this.world_rest_angle=0,this.rest_parent_mat=mat4.create(),this.rest_parent_inv_mat=mat4.create(),this.rest_world_mat=mat4.create(),this.rest_world_inv_mat=mat4.create(),this.bind_world_mat=mat4.create(),this.bind_world_inv_mat=mat4.create(),this.parent_world_mat=mat4.create(),this.parent_world_inv_mat=mat4.create(),this.local_rest_start_pt=null,this.local_rest_end_pt=null,this.setRestParentMat(d,null),this.setLocalRestStartPt(b),this.setLocalRestEndPt(c),this.setParentWorldInvMat(mat4.create()),this.setParentWorldMat(mat4.create()),this.local_binormal_dir=vec3.fromValues(0,0,1),this.tag_id=0,this.children=[]}function MeshRenderRegion(a,b,c,d,e,f,g){this.store_indices=a,this.store_rest_pts=b,this.store_uvs=c,this.use_local_displacements=!1,this.use_post_displacements=!1,this.use_uv_warp=!1,this.uv_warp_local_offset=vec2.fromValues(0,0),this.uv_warp_global_offset=vec2.fromValues(0,0),this.uv_warp_scale=vec2.fromValues(1,1),this.start_pt_index=d,this.end_pt_index=e,this.start_index=f,this.end_index=g,this.main_bone=null,this.local_displacements=[],this.post_displacements=[],this.uv_warp_ref_uvs=[],this.normal_weight_map={},this.fast_normal_weight_map=[],this.fast_bones_map=[],this.relevant_bones_indices=[],this.use_dq=!0,this.tag_id=-1,this.initUvWarp()}function MeshRenderBoneComposition(){this.root_bone=null,this.bones_map={},this.regions=[],this.regions_map={}}function MeshBoneCache(a){this.key=a}function MeshDisplacementCache(a){this.key=a,this.local_displacements=[],this.post_displacements=[]}function MeshUVWarpCache(a){this.uv_warp_global_offset=vec2.create(),this.uv_warp_local_offset=vec2.create(),this.uv_warp_scale=vec2.fromValues(-1,-1),this.key=a,this.enabled=!1}function MeshBoneCacheManager(){this.is_ready=!1,this.bone_cache_table=null,this.bone_cache_data_ready=null,this.bone_cache_table=[],this.bone_cache_data_ready=[]}function MeshDisplacementCacheManager(){this.is_ready=!1,this.displacement_cache_table=null,this.displacement_cache_data_ready=null,this.displacement_cache_table=[],this.displacement_cache_data_ready=[]}function MeshUVWarpCacheManager(){this.is_ready=!1,this.uv_cache_table=null,this.uv_cache_data_ready=null,this.uv_cache_table=[],this.uv_cache_data_ready=[]}function Creature(a){this.total_num_pts=0,this.total_num_indices=0,this.global_indices=null,this.global_pts=null,this.global_uvs=null,this.render_pts=null,this.render_colours=null,this.render_composition=null,this.boundary_indices=[],this.boundary_min=vec2.create(),this.boundary_max=vec2.create(),this.LoadFromData(a)}function CreatureAnimation(a,b){this.name=b,this.bones_cache=new MeshBoneCacheManager,this.displacement_cache=new MeshDisplacementCacheManager,this.uv_warp_cache=new MeshUVWarpCacheManager,this.cache_pts=[],this.fill_cache_pts=[],this.LoadFromData(b,a)}function CreatureManager(a){this.target_creature=a,this.is_playing=!1,this.run_time=0,this.time_scale=30,this.blending_factor=0,this.should_loop=!0,this.use_custom_time_range=!1,this.custom_start_time=0,this.custom_end_time=0,this.animations={},this.bones_override_callback=null,this.blend_render_pts=[],this.blend_render_pts.push([]),this.blend_render_pts.push([]),this.do_blending=!1,this.active_blend_animation_names=[],this.active_blend_animation_names.push(""),this.active_blend_animation_names.push("")}!function(a){"use strict";var b={};"undefined"==typeof exports?"function"==typeof define&&"object"==typeof define.amd&&define.amd?(b.exports={},define(function(){return b.exports})):b.exports="undefined"!=typeof window?window:a:b.exports=exports,function(a){if(!b)var b=1e-6;if(!c)var c="undefined"!=typeof Float32Array?Float32Array:Array;if(!d)var d=Math.random;var e={};e.setMatrixArrayType=function(a){c=a},"undefined"!=typeof a&&(a.glMatrix=e);var f=Math.PI/180;e.toRadian=function(a){return a*f};var g={};g.create=function(){var a=new c(2);return a[0]=0,a[1]=0,a},g.clone=function(a){var b=new c(2);return b[0]=a[0],b[1]=a[1],b},g.fromValues=function(a,b){var d=new c(2);return d[0]=a,d[1]=b,d},g.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},g.set=function(a,b,c){return a[0]=b,a[1]=c,a},g.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},g.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},g.sub=g.subtract,g.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},g.mul=g.multiply,g.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},g.div=g.divide,g.min=function(a,b,c){return a[0]=Math.min(b[0],c[0]),a[1]=Math.min(b[1],c[1]),a},g.max=function(a,b,c){return a[0]=Math.max(b[0],c[0]),a[1]=Math.max(b[1],c[1]),a},g.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},g.scaleAndAdd=function(a,b,c,d){return a[0]=b[0]+c[0]*d,a[1]=b[1]+c[1]*d,a},g.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},g.dist=g.distance,g.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},g.sqrDist=g.squaredDistance,g.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},g.len=g.length,g.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},g.sqrLen=g.squaredLength,g.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},g.inverse=function(a,b){return a[0]=1/b[0],a[1]=1/b[1],a},g.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},g.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},g.cross=function(a,b,c){var d=b[0]*c[1]-b[1]*c[0];return a[0]=a[1]=0,a[2]=d,a},g.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},g.random=function(a,b){b=b||1;var c=2*d()*Math.PI;return a[0]=Math.cos(c)*b,a[1]=Math.sin(c)*b,a},g.transformMat2=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e,a[1]=c[1]*d+c[3]*e,a},g.transformMat2d=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e+c[4],a[1]=c[1]*d+c[3]*e+c[5],a},g.transformMat3=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[3]*e+c[6],a[1]=c[1]*d+c[4]*e+c[7],a},g.transformMat4=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[4]*e+c[12],a[1]=c[1]*d+c[5]*e+c[13],a},g.forEach=function(){var a=g.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=2),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;i>h;h+=c)a[0]=b[h],a[1]=b[h+1],f(a,a,g),b[h]=a[0],b[h+1]=a[1];return b}}(),g.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},"undefined"!=typeof a&&(a.vec2=g);var h={};h.create=function(){var a=new c(3);return a[0]=0,a[1]=0,a[2]=0,a},h.clone=function(a){var b=new c(3);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b},h.fromValues=function(a,b,d){var e=new c(3);return e[0]=a,e[1]=b,e[2]=d,e},h.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=b[2],a},h.set=function(a,b,c,d){return a[0]=b,a[1]=c,a[2]=d,a},h.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a[2]=b[2]+c[2],a},h.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a[2]=b[2]-c[2],a},h.sub=h.subtract,h.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a[2]=b[2]*c[2],a},h.mul=h.multiply,h.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a[2]=b[2]/c[2],a},h.div=h.divide,h.min=function(a,b,c){return a[0]=Math.min(b[0],c[0]),a[1]=Math.min(b[1],c[1]),a[2]=Math.min(b[2],c[2]),a},h.max=function(a,b,c){return a[0]=Math.max(b[0],c[0]),a[1]=Math.max(b[1],c[1]),a[2]=Math.max(b[2],c[2]),a},h.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a[2]=b[2]*c,a},h.scaleAndAdd=function(a,b,c,d){return a[0]=b[0]+c[0]*d,a[1]=b[1]+c[1]*d,a[2]=b[2]+c[2]*d,a},h.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1],e=b[2]-a[2];return Math.sqrt(c*c+d*d+e*e)},h.dist=h.distance,h.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1],e=b[2]-a[2];return c*c+d*d+e*e},h.sqrDist=h.squaredDistance,h.length=function(a){var b=a[0],c=a[1],d=a[2];return Math.sqrt(b*b+c*c+d*d)},h.len=h.length,h.squaredLength=function(a){var b=a[0],c=a[1],d=a[2];return b*b+c*c+d*d},h.sqrLen=h.squaredLength,h.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a[2]=-b[2],a},h.inverse=function(a,b){return a[0]=1/b[0],a[1]=1/b[1],a[2]=1/b[2],a},h.normalize=function(a,b){var c=b[0],d=b[1],e=b[2],f=c*c+d*d+e*e;return f>0&&(f=1/Math.sqrt(f),a[0]=b[0]*f,a[1]=b[1]*f,a[2]=b[2]*f),a},h.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]},h.cross=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[0],h=c[1],i=c[2];return a[0]=e*i-f*h,a[1]=f*g-d*i,a[2]=d*h-e*g,a},h.lerp=function(a,b,c,d){var e=b[0],f=b[1],g=b[2];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a[2]=g+d*(c[2]-g),a},h.random=function(a,b){b=b||1;var c=2*d()*Math.PI,e=2*d()-1,f=Math.sqrt(1-e*e)*b;return a[0]=Math.cos(c)*f,a[1]=Math.sin(c)*f,a[2]=e*b,a},h.transformMat4=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[3]*d+c[7]*e+c[11]*f+c[15];return g=g||1,a[0]=(c[0]*d+c[4]*e+c[8]*f+c[12])/g,a[1]=(c[1]*d+c[5]*e+c[9]*f+c[13])/g,a[2]=(c[2]*d+c[6]*e+c[10]*f+c[14])/g,a},h.transformMat3=function(a,b,c){var d=b[0],e=b[1],f=b[2];return a[0]=d*c[0]+e*c[3]+f*c[6],a[1]=d*c[1]+e*c[4]+f*c[7],a[2]=d*c[2]+e*c[5]+f*c[8],a},h.transformQuat=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[0],h=c[1],i=c[2],j=c[3],k=j*d+h*f-i*e,l=j*e+i*d-g*f,m=j*f+g*e-h*d,n=-g*d-h*e-i*f;return a[0]=k*j+n*-g+l*-i-m*-h,a[1]=l*j+n*-h+m*-g-k*-i,a[2]=m*j+n*-i+k*-h-l*-g,a},h.rotateX=function(a,b,c,d){var e=[],f=[];return e[0]=b[0]-c[0],e[1]=b[1]-c[1],e[2]=b[2]-c[2],f[0]=e[0],f[1]=e[1]*Math.cos(d)-e[2]*Math.sin(d),f[2]=e[1]*Math.sin(d)+e[2]*Math.cos(d),a[0]=f[0]+c[0],a[1]=f[1]+c[1],a[2]=f[2]+c[2],a},h.rotateY=function(a,b,c,d){var e=[],f=[];return e[0]=b[0]-c[0],e[1]=b[1]-c[1],e[2]=b[2]-c[2],f[0]=e[2]*Math.sin(d)+e[0]*Math.cos(d),f[1]=e[1],f[2]=e[2]*Math.cos(d)-e[0]*Math.sin(d),a[0]=f[0]+c[0],a[1]=f[1]+c[1],a[2]=f[2]+c[2],a},h.rotateZ=function(a,b,c,d){var e=[],f=[];return e[0]=b[0]-c[0],e[1]=b[1]-c[1],e[2]=b[2]-c[2],f[0]=e[0]*Math.cos(d)-e[1]*Math.sin(d),f[1]=e[0]*Math.sin(d)+e[1]*Math.cos(d),f[2]=e[2],a[0]=f[0]+c[0],a[1]=f[1]+c[1],a[2]=f[2]+c[2],a},h.forEach=function(){var a=h.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=3),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;i>h;h+=c)a[0]=b[h],a[1]=b[h+1],a[2]=b[h+2],f(a,a,g),b[h]=a[0],b[h+1]=a[1],b[h+2]=a[2];return b}}(),h.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"},"undefined"!=typeof a&&(a.vec3=h);var i={};i.create=function(){var a=new c(4);return a[0]=0,a[1]=0,a[2]=0,a[3]=0,a},i.clone=function(a){var b=new c(4);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b},i.fromValues=function(a,b,d,e){var f=new c(4);return f[0]=a,f[1]=b,f[2]=d,f[3]=e,f},i.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a},i.set=function(a,b,c,d,e){return a[0]=b,a[1]=c,a[2]=d,a[3]=e,a},i.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a[2]=b[2]+c[2],a[3]=b[3]+c[3],a},i.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a[2]=b[2]-c[2],a[3]=b[3]-c[3],a},i.sub=i.subtract,i.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a[2]=b[2]*c[2],a[3]=b[3]*c[3],a},i.mul=i.multiply,i.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a[2]=b[2]/c[2],a[3]=b[3]/c[3],a},i.div=i.divide,i.min=function(a,b,c){return a[0]=Math.min(b[0],c[0]),a[1]=Math.min(b[1],c[1]),a[2]=Math.min(b[2],c[2]),a[3]=Math.min(b[3],c[3]),a},i.max=function(a,b,c){return a[0]=Math.max(b[0],c[0]),a[1]=Math.max(b[1],c[1]),a[2]=Math.max(b[2],c[2]),a[3]=Math.max(b[3],c[3]),a},i.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a[2]=b[2]*c,a[3]=b[3]*c,a},i.scaleAndAdd=function(a,b,c,d){return a[0]=b[0]+c[0]*d,a[1]=b[1]+c[1]*d,a[2]=b[2]+c[2]*d,a[3]=b[3]+c[3]*d,a},i.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1],e=b[2]-a[2],f=b[3]-a[3];return Math.sqrt(c*c+d*d+e*e+f*f)},i.dist=i.distance,i.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1],e=b[2]-a[2],f=b[3]-a[3];return c*c+d*d+e*e+f*f},i.sqrDist=i.squaredDistance,i.length=function(a){var b=a[0],c=a[1],d=a[2],e=a[3];return Math.sqrt(b*b+c*c+d*d+e*e)},i.len=i.length,i.squaredLength=function(a){var b=a[0],c=a[1],d=a[2],e=a[3];return b*b+c*c+d*d+e*e},i.sqrLen=i.squaredLength,i.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a[2]=-b[2],a[3]=-b[3],a},i.inverse=function(a,b){return a[0]=1/b[0],a[1]=1/b[1],a[2]=1/b[2],a[3]=1/b[3],a},i.normalize=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=c*c+d*d+e*e+f*f;return g>0&&(g=1/Math.sqrt(g),a[0]=b[0]*g,a[1]=b[1]*g,a[2]=b[2]*g,a[3]=b[3]*g),a},i.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]},i.lerp=function(a,b,c,d){var e=b[0],f=b[1],g=b[2],h=b[3];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a[2]=g+d*(c[2]-g),a[3]=h+d*(c[3]-h),a},i.random=function(a,b){return b=b||1,a[0]=d(),a[1]=d(),a[2]=d(),a[3]=d(),i.normalize(a,a),i.scale(a,a,b),a},i.transformMat4=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3];return a[0]=c[0]*d+c[4]*e+c[8]*f+c[12]*g,a[1]=c[1]*d+c[5]*e+c[9]*f+c[13]*g,a[2]=c[2]*d+c[6]*e+c[10]*f+c[14]*g,a[3]=c[3]*d+c[7]*e+c[11]*f+c[15]*g,a},i.transformQuat=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[0],h=c[1],i=c[2],j=c[3],k=j*d+h*f-i*e,l=j*e+i*d-g*f,m=j*f+g*e-h*d,n=-g*d-h*e-i*f;return a[0]=k*j+n*-g+l*-i-m*-h,a[1]=l*j+n*-h+m*-g-k*-i,a[2]=m*j+n*-i+k*-h-l*-g,a},i.forEach=function(){var a=i.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=4),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;i>h;h+=c)a[0]=b[h],a[1]=b[h+1],a[2]=b[h+2],a[3]=b[h+3],f(a,a,g),b[h]=a[0],b[h+1]=a[1],b[h+2]=a[2],b[h+3]=a[3];return b}}(),i.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"},"undefined"!=typeof a&&(a.vec4=i);var j={};j.create=function(){var a=new c(4);return a[0]=1,a[1]=0,a[2]=0,a[3]=1,a},j.clone=function(a){var b=new c(4);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b},j.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a},j.identity=function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=1,a},j.transpose=function(a,b){if(a===b){var c=b[1];a[1]=b[2],a[2]=c}else a[0]=b[0],a[1]=b[2],a[2]=b[1],a[3]=b[3];return a},j.invert=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=c*f-e*d;return g?(g=1/g,a[0]=f*g,a[1]=-d*g,a[2]=-e*g,a[3]=c*g,a):null},j.adjoint=function(a,b){var c=b[0];return a[0]=b[3],a[1]=-b[1],a[2]=-b[2],a[3]=c,a},j.determinant=function(a){return a[0]*a[3]-a[2]*a[1]},j.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=c[0],i=c[1],j=c[2],k=c[3];return a[0]=d*h+f*i,a[1]=e*h+g*i,a[2]=d*j+f*k,a[3]=e*j+g*k,a},j.mul=j.multiply,j.rotate=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=Math.sin(c),i=Math.cos(c);return a[0]=d*i+f*h,a[1]=e*i+g*h,a[2]=d*-h+f*i,a[3]=e*-h+g*i,a},j.scale=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=c[0],i=c[1];return a[0]=d*h,a[1]=e*h,a[2]=f*i,a[3]=g*i,a},j.str=function(a){return"mat2("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"},j.frob=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2))},j.LDU=function(a,b,c,d){return a[2]=d[2]/d[0],c[0]=d[0],c[1]=d[1],c[3]=d[3]-a[2]*c[1],[a,b,c]},"undefined"!=typeof a&&(a.mat2=j);var k={};k.create=function(){var a=new c(6);return a[0]=1,a[1]=0,a[2]=0,a[3]=1,a[4]=0,a[5]=0,a},k.clone=function(a){var b=new c(6);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b},k.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[4]=b[4],a[5]=b[5],a},k.identity=function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=1,a[4]=0,a[5]=0,a},k.invert=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=c*f-d*e;return i?(i=1/i,a[0]=f*i,a[1]=-d*i,a[2]=-e*i,a[3]=c*i,a[4]=(e*h-f*g)*i,a[5]=(d*g-c*h)*i,a):null},k.determinant=function(a){return a[0]*a[3]-a[1]*a[2]},k.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=c[0],k=c[1],l=c[2],m=c[3],n=c[4],o=c[5];return a[0]=d*j+f*k,a[1]=e*j+g*k,a[2]=d*l+f*m,a[3]=e*l+g*m,a[4]=d*n+f*o+h,a[5]=e*n+g*o+i,a},k.mul=k.multiply,k.rotate=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=Math.sin(c),k=Math.cos(c);return a[0]=d*k+f*j,a[1]=e*k+g*j,a[2]=d*-j+f*k,a[3]=e*-j+g*k,a[4]=h,a[5]=i,a},k.scale=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=c[0],k=c[1];return a[0]=d*j,a[1]=e*j,a[2]=f*k,a[3]=g*k,a[4]=h,a[5]=i,a},k.translate=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=c[0],k=c[1];return a[0]=d,a[1]=e,a[2]=f,a[3]=g,a[4]=d*j+f*k+h,a[5]=e*j+g*k+i,a},k.str=function(a){return"mat2d("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+")"},k.frob=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2)+Math.pow(a[4],2)+Math.pow(a[5],2)+1)},"undefined"!=typeof a&&(a.mat2d=k);var l={};l.create=function(){var a=new c(9);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=1,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},l.fromMat4=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[4],a[4]=b[5],a[5]=b[6],a[6]=b[8],a[7]=b[9],a[8]=b[10],a},l.clone=function(a){var b=new c(9);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8],b},l.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[8]=b[8],a},l.identity=function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=1,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},l.transpose=function(a,b){if(a===b){var c=b[1],d=b[2],e=b[5];a[1]=b[3],a[2]=b[6],a[3]=c,a[5]=b[7],a[6]=d,a[7]=e}else a[0]=b[0],a[1]=b[3],a[2]=b[6],a[3]=b[1],a[4]=b[4],a[5]=b[7],a[6]=b[2],a[7]=b[5],a[8]=b[8];return a},l.invert=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=b[6],j=b[7],k=b[8],l=k*g-h*j,m=-k*f+h*i,n=j*f-g*i,o=c*l+d*m+e*n;return o?(o=1/o,a[0]=l*o,a[1]=(-k*d+e*j)*o,a[2]=(h*d-e*g)*o,a[3]=m*o,a[4]=(k*c-e*i)*o,a[5]=(-h*c+e*f)*o,a[6]=n*o,a[7]=(-j*c+d*i)*o,a[8]=(g*c-d*f)*o,a):null},l.adjoint=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=b[6],j=b[7],k=b[8];return a[0]=g*k-h*j,a[1]=e*j-d*k,a[2]=d*h-e*g,a[3]=h*i-f*k,a[4]=c*k-e*i,a[5]=e*f-c*h,a[6]=f*j-g*i,a[7]=d*i-c*j,a[8]=c*g-d*f,a},l.determinant=function(a){var b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],i=a[7],j=a[8];return b*(j*f-g*i)+c*(-j*e+g*h)+d*(i*e-f*h)},l.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=b[6],k=b[7],l=b[8],m=c[0],n=c[1],o=c[2],p=c[3],q=c[4],r=c[5],s=c[6],t=c[7],u=c[8];return a[0]=m*d+n*g+o*j,a[1]=m*e+n*h+o*k,a[2]=m*f+n*i+o*l,a[3]=p*d+q*g+r*j,a[4]=p*e+q*h+r*k,a[5]=p*f+q*i+r*l,a[6]=s*d+t*g+u*j,a[7]=s*e+t*h+u*k,a[8]=s*f+t*i+u*l,a},l.mul=l.multiply,l.translate=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=b[6],k=b[7],l=b[8],m=c[0],n=c[1];return a[0]=d,a[1]=e,a[2]=f,a[3]=g,a[4]=h,a[5]=i,a[6]=m*d+n*g+j,a[7]=m*e+n*h+k,a[8]=m*f+n*i+l,a},l.rotate=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=b[6],k=b[7],l=b[8],m=Math.sin(c),n=Math.cos(c);return a[0]=n*d+m*g,a[1]=n*e+m*h,a[2]=n*f+m*i,a[3]=n*g-m*d,a[4]=n*h-m*e,a[5]=n*i-m*f,a[6]=j,a[7]=k,a[8]=l,a},l.scale=function(a,b,c){var d=c[0],e=c[1];return a[0]=d*b[0],a[1]=d*b[1],a[2]=d*b[2],a[3]=e*b[3],a[4]=e*b[4],a[5]=e*b[5],a[6]=b[6],a[7]=b[7],a[8]=b[8],a},l.fromMat2d=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=0,a[3]=b[2],a[4]=b[3],a[5]=0,a[6]=b[4],a[7]=b[5],a[8]=1,a},l.fromQuat=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=c+c,h=d+d,i=e+e,j=c*g,k=d*g,l=d*h,m=e*g,n=e*h,o=e*i,p=f*g,q=f*h,r=f*i;return a[0]=1-l-o,a[3]=k-r,a[6]=m+q,a[1]=k+r,a[4]=1-j-o,a[7]=n-p,a[2]=m-q,a[5]=n+p,a[8]=1-j-l,a},l.normalFromMat4=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=b[6],j=b[7],k=b[8],l=b[9],m=b[10],n=b[11],o=b[12],p=b[13],q=b[14],r=b[15],s=c*h-d*g,t=c*i-e*g,u=c*j-f*g,v=d*i-e*h,w=d*j-f*h,x=e*j-f*i,y=k*p-l*o,z=k*q-m*o,A=k*r-n*o,B=l*q-m*p,C=l*r-n*p,D=m*r-n*q,E=s*D-t*C+u*B+v*A-w*z+x*y;return E?(E=1/E,a[0]=(h*D-i*C+j*B)*E,a[1]=(i*A-g*D-j*z)*E,a[2]=(g*C-h*A+j*y)*E,a[3]=(e*C-d*D-f*B)*E,a[4]=(c*D-e*A+f*z)*E,a[5]=(d*A-c*C-f*y)*E,a[6]=(p*x-q*w+r*v)*E,a[7]=(q*u-o*x-r*t)*E,a[8]=(o*w-p*u+r*s)*E,a):null},l.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"},l.frob=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2)+Math.pow(a[4],2)+Math.pow(a[5],2)+Math.pow(a[6],2)+Math.pow(a[7],2)+Math.pow(a[8],2))},"undefined"!=typeof a&&(a.mat3=l);var m={};m.create=function(){var a=new c(16);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a},m.clone=function(a){var b=new c(16);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8],b[9]=a[9],b[10]=a[10],b[11]=a[11],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15],b},m.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[8]=b[8],a[9]=b[9],a[10]=b[10],a[11]=b[11],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15],a},m.identity=function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a},m.transpose=function(a,b){if(a===b){var c=b[1],d=b[2],e=b[3],f=b[6],g=b[7],h=b[11];a[1]=b[4],a[2]=b[8],a[3]=b[12],a[4]=c,a[6]=b[9],a[7]=b[13],a[8]=d,a[9]=f,a[11]=b[14],a[12]=e,a[13]=g,a[14]=h}else a[0]=b[0],a[1]=b[4],a[2]=b[8],a[3]=b[12],a[4]=b[1],a[5]=b[5],a[6]=b[9],a[7]=b[13],a[8]=b[2],a[9]=b[6],a[10]=b[10],a[11]=b[14],a[12]=b[3],a[13]=b[7],a[14]=b[11],a[15]=b[15];return a},m.invert=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=b[6],j=b[7],k=b[8],l=b[9],m=b[10],n=b[11],o=b[12],p=b[13],q=b[14],r=b[15],s=c*h-d*g,t=c*i-e*g,u=c*j-f*g,v=d*i-e*h,w=d*j-f*h,x=e*j-f*i,y=k*p-l*o,z=k*q-m*o,A=k*r-n*o,B=l*q-m*p,C=l*r-n*p,D=m*r-n*q,E=s*D-t*C+u*B+v*A-w*z+x*y;return E?(E=1/E,a[0]=(h*D-i*C+j*B)*E,a[1]=(e*C-d*D-f*B)*E,a[2]=(p*x-q*w+r*v)*E,a[3]=(m*w-l*x-n*v)*E,a[4]=(i*A-g*D-j*z)*E,a[5]=(c*D-e*A+f*z)*E,a[6]=(q*u-o*x-r*t)*E,a[7]=(k*x-m*u+n*t)*E,a[8]=(g*C-h*A+j*y)*E,a[9]=(d*A-c*C-f*y)*E,a[10]=(o*w-p*u+r*s)*E,a[11]=(l*u-k*w-n*s)*E,a[12]=(h*z-g*B-i*y)*E,a[13]=(c*B-d*z+e*y)*E,a[14]=(p*t-o*v-q*s)*E,a[15]=(k*v-l*t+m*s)*E,a):null},m.adjoint=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=b[6],j=b[7],k=b[8],l=b[9],m=b[10],n=b[11],o=b[12],p=b[13],q=b[14],r=b[15];return a[0]=h*(m*r-n*q)-l*(i*r-j*q)+p*(i*n-j*m),a[1]=-(d*(m*r-n*q)-l*(e*r-f*q)+p*(e*n-f*m)),a[2]=d*(i*r-j*q)-h*(e*r-f*q)+p*(e*j-f*i),a[3]=-(d*(i*n-j*m)-h*(e*n-f*m)+l*(e*j-f*i)),a[4]=-(g*(m*r-n*q)-k*(i*r-j*q)+o*(i*n-j*m)),a[5]=c*(m*r-n*q)-k*(e*r-f*q)+o*(e*n-f*m),a[6]=-(c*(i*r-j*q)-g*(e*r-f*q)+o*(e*j-f*i)),a[7]=c*(i*n-j*m)-g*(e*n-f*m)+k*(e*j-f*i),a[8]=g*(l*r-n*p)-k*(h*r-j*p)+o*(h*n-j*l),a[9]=-(c*(l*r-n*p)-k*(d*r-f*p)+o*(d*n-f*l)),a[10]=c*(h*r-j*p)-g*(d*r-f*p)+o*(d*j-f*h),a[11]=-(c*(h*n-j*l)-g*(d*n-f*l)+k*(d*j-f*h)),a[12]=-(g*(l*q-m*p)-k*(h*q-i*p)+o*(h*m-i*l)),a[13]=c*(l*q-m*p)-k*(d*q-e*p)+o*(d*m-e*l),a[14]=-(c*(h*q-i*p)-g*(d*q-e*p)+o*(d*i-e*h)),a[15]=c*(h*m-i*l)-g*(d*m-e*l)+k*(d*i-e*h),a},m.determinant=function(a){var b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],i=a[7],j=a[8],k=a[9],l=a[10],m=a[11],n=a[12],o=a[13],p=a[14],q=a[15],r=b*g-c*f,s=b*h-d*f,t=b*i-e*f,u=c*h-d*g,v=c*i-e*g,w=d*i-e*h,x=j*o-k*n,y=j*p-l*n,z=j*q-m*n,A=k*p-l*o,B=k*q-m*o,C=l*q-m*p;return r*C-s*B+t*A+u*z-v*y+w*x},m.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],o=b[11],p=b[12],q=b[13],r=b[14],s=b[15],t=c[0],u=c[1],v=c[2],w=c[3];return a[0]=t*d+u*h+v*l+w*p,a[1]=t*e+u*i+v*m+w*q,a[2]=t*f+u*j+v*n+w*r,a[3]=t*g+u*k+v*o+w*s,t=c[4],u=c[5],v=c[6],w=c[7],a[4]=t*d+u*h+v*l+w*p,a[5]=t*e+u*i+v*m+w*q,a[6]=t*f+u*j+v*n+w*r,a[7]=t*g+u*k+v*o+w*s,t=c[8],u=c[9],v=c[10],w=c[11],a[8]=t*d+u*h+v*l+w*p,a[9]=t*e+u*i+v*m+w*q,a[10]=t*f+u*j+v*n+w*r,a[11]=t*g+u*k+v*o+w*s,t=c[12],u=c[13],v=c[14],w=c[15],a[12]=t*d+u*h+v*l+w*p,a[13]=t*e+u*i+v*m+w*q,a[14]=t*f+u*j+v*n+w*r,a[15]=t*g+u*k+v*o+w*s,a},m.mul=m.multiply,m.translate=function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p=c[0],q=c[1],r=c[2];return b===a?(a[12]=b[0]*p+b[4]*q+b[8]*r+b[12],a[13]=b[1]*p+b[5]*q+b[9]*r+b[13],a[14]=b[2]*p+b[6]*q+b[10]*r+b[14],a[15]=b[3]*p+b[7]*q+b[11]*r+b[15]):(d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],o=b[11],a[0]=d,a[1]=e,a[2]=f,a[3]=g,a[4]=h,a[5]=i,a[6]=j,a[7]=k,a[8]=l,a[9]=m,a[10]=n,a[11]=o,a[12]=d*p+h*q+l*r+b[12],a[13]=e*p+i*q+m*r+b[13],a[14]=f*p+j*q+n*r+b[14],a[15]=g*p+k*q+o*r+b[15]),a},m.scale=function(a,b,c){var d=c[0],e=c[1],f=c[2];return a[0]=b[0]*d,a[1]=b[1]*d,a[2]=b[2]*d,a[3]=b[3]*d,a[4]=b[4]*e,a[5]=b[5]*e,a[6]=b[6]*e,a[7]=b[7]*e,a[8]=b[8]*f,a[9]=b[9]*f,a[10]=b[10]*f,a[11]=b[11]*f,a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15],a},m.rotate=function(a,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D=e[0],E=e[1],F=e[2],G=Math.sqrt(D*D+E*E+F*F);return Math.abs(G)g?(h.cross(a,b,e),h.length(a)<1e-6&&h.cross(a,c,e),h.normalize(a,a),n.setAxisAngle(d,a,Math.PI),d):g>.999999?(d[0]=0,d[1]=0,d[2]=0,d[3]=1,d):(h.cross(a,e,f),d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=1+g,n.normalize(d,d))}}(),n.setAxes=function(){var a=l.create();return function(b,c,d,e){return a[0]=d[0],a[3]=d[1],a[6]=d[2],a[1]=e[0],a[4]=e[1],a[7]=e[2],a[2]=-c[0],a[5]=-c[1],a[8]=-c[2],n.normalize(b,n.fromMat3(b,a))}}(),n.clone=i.clone,n.fromValues=i.fromValues,n.copy=i.copy,n.set=i.set,n.identity=function(a){return a[0]=0,a[1]=0,a[2]=0,a[3]=1,a},n.setAxisAngle=function(a,b,c){c=.5*c;var d=Math.sin(c);return a[0]=d*b[0],a[1]=d*b[1],a[2]=d*b[2],a[3]=Math.cos(c),a},n.add=i.add,n.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=c[0],i=c[1],j=c[2],k=c[3];return a[0]=d*k+g*h+e*j-f*i,a[1]=e*k+g*i+f*h-d*j,a[2]=f*k+g*j+d*i-e*h,a[3]=g*k-d*h-e*i-f*j,a},n.mul=n.multiply,n.scale=i.scale,n.rotateX=function(a,b,c){c*=.5;var d=b[0],e=b[1],f=b[2],g=b[3],h=Math.sin(c),i=Math.cos(c);return a[0]=d*i+g*h,a[1]=e*i+f*h,a[2]=f*i-e*h,a[3]=g*i-d*h,a},n.rotateY=function(a,b,c){c*=.5;var d=b[0],e=b[1],f=b[2],g=b[3],h=Math.sin(c),i=Math.cos(c);return a[0]=d*i-f*h,a[1]=e*i+g*h,a[2]=f*i+d*h,a[3]=g*i-e*h,a},n.rotateZ=function(a,b,c){c*=.5;var d=b[0],e=b[1],f=b[2],g=b[3],h=Math.sin(c),i=Math.cos(c);return a[0]=d*i+e*h,a[1]=e*i-d*h,a[2]=f*i+g*h,a[3]=g*i-f*h,a},n.calculateW=function(a,b){var c=b[0],d=b[1],e=b[2];return a[0]=c,a[1]=d,a[2]=e,a[3]=Math.sqrt(Math.abs(1-c*c-d*d-e*e)),a},n.dot=i.dot,n.lerp=i.lerp,n.slerp=function(a,b,c,d){var e,f,g,h,i,j=b[0],k=b[1],l=b[2],m=b[3],n=c[0],o=c[1],p=c[2],q=c[3];return f=j*n+k*o+l*p+m*q,0>f&&(f=-f,n=-n,o=-o,p=-p,q=-q),1-f>1e-6?(e=Math.acos(f),g=Math.sin(e),h=Math.sin((1-d)*e)/g,i=Math.sin(d*e)/g):(h=1-d,i=d),a[0]=h*j+i*n,a[1]=h*k+i*o,a[2]=h*l+i*p,a[3]=h*m+i*q,a},n.invert=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=c*c+d*d+e*e+f*f,h=g?1/g:0;return a[0]=-c*h,a[1]=-d*h,a[2]=-e*h,a[3]=f*h,a},n.conjugate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a[2]=-b[2],a[3]=b[3],a},n.length=i.length,n.len=n.length,n.squaredLength=i.squaredLength,n.sqrLen=n.squaredLength,n.normalize=i.normalize,n.fromMat3=function(a,b){var c,d=b[0]+b[4]+b[8];if(d>0)c=Math.sqrt(d+1),a[3]=.5*c,c=.5/c,a[0]=(b[5]-b[7])*c,a[1]=(b[6]-b[2])*c,a[2]=(b[1]-b[3])*c;else{var e=0;b[4]>b[0]&&(e=1),b[8]>b[3*e+e]&&(e=2);var f=(e+1)%3,g=(e+2)%3;c=Math.sqrt(b[3*e+e]-b[3*f+f]-b[3*g+g]+1),a[e]=.5*c,c=.5/c,a[3]=(b[3*f+g]-b[3*g+f])*c,a[f]=(b[3*f+e]+b[3*e+f])*c,a[g]=(b[3*g+e]+b[3*e+g])*c}return a},n.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"},"undefined"!=typeof a&&(a.quat=n)}(b.exports)}(this);var Q_X=0,Q_Y=1,Q_Z=2,Q_W=3;dualQuat.prototype.reset=function(){quat.identity(this.real),this.real[Q_W]=0,quat.identity(this.imaginary),this.imaginary[Q_W]=0,quat.identity(this.tmpQ1)},dualQuat.prototype.createFromData=function(a,b){this.real=a,this.imaginary=quat.create(),this.imaginary[Q_W]=-.5*(b[Q_X]*a[Q_X]+b[Q_Y]*a[Q_Y]+b[Q_Z]*a[Q_Z]),this.imaginary[Q_X]=.5*(b[Q_X]*a[Q_W]+b[Q_Y]*a[Q_Z]-b[Q_Z]*a[Q_Y]),this.imaginary[Q_Y]=.5*(-b[Q_X]*a[Q_Z]+b[Q_Y]*a[Q_W]+b[Q_Z]*a[Q_X]),this.imaginary[Q_Z]=.5*(b[Q_X]*a[Q_Y]-b[Q_Y]*a[Q_X]+b[Q_Z]*a[Q_W])},dualQuat.prototype.add=function(a,b,c){quat.copy(this.tmpQ1,a.real),quat.scale(this.tmpQ1,this.tmpQ1,b),quat.add(this.real,this.tmpQ1,this.real),quat.copy(this.tmpQ1,a.imaginary),
-quat.scale(this.tmpQ1,this.tmpQ1,c),quat.add(this.imaginary,this.tmpQ1,this.imaginary)},dualQuat.prototype.normalize=function(){var a=quat.length(this.real);this.real=quat.scale(this.real,this.real,1/a),this.imaginary=quat.scale(this.imaginary,this.imaginary,1/a)};var v0=vec3.create(),ve=vec3.create(),trans=vec3.create(),tmpVec1=vec3.create(),tmpVec2=vec3.create(),tmpVec0=vec3.create(),aVec=vec3.create(),rot=vec3.create();dualQuat.prototype.transform=function(a){return v0[Q_X]=this.real[Q_X],v0[Q_Y]=this.real[Q_Y],v0[Q_Z]=this.real[Q_Z],ve[Q_X]=this.imaginary[Q_X],ve[Q_Y]=this.imaginary[Q_Y],ve[Q_Z]=this.imaginary[Q_Z],tmpVec1=vec3.scale(tmpVec1,v0,this.imaginary[Q_W]),tmpVec2=vec3.cross(tmpVec2,v0,ve),tmpVec0=vec3.scale(tmpVec0,ve,this.real[Q_W]),aVec=vec3.subtract(aVec,tmpVec0,tmpVec1),trans=vec3.add(trans,aVec,tmpVec2),trans=vec3.scale(trans,trans,2),rot=vec3.transformQuat(rot,a,this.real),rot=vec3.add(rot,rot,trans)};var Utils={};Utils.setAxisMatrix=function(a,b,c){var d=mat4.create(),e=0,f=4,g=8,h=12,i=1,j=5,k=9,l=13,m=2,n=6,o=10,p=14,q=3,r=7,s=11,t=15;return d[e]=a[Q_X],d[f]=a[Q_Y],d[g]=a[Q_Z],d[i]=b[Q_X],d[j]=b[Q_Y],d[k]=b[Q_Z],d[m]=c[Q_X],d[n]=c[Q_Y],d[o]=c[Q_Z],d[h]=0,d[l]=0,d[p]=0,d[q]=0,d[r]=0,d[s]=0,d[t]=1,d=mat4.transpose(d,d)},Utils.matrixToQuat=function(a){var b,c=quat.create(),d=a,e=d[0],f=d[4],g=d[8],h=d[1],i=d[5],j=d[9],k=d[2],l=d[6],m=d[10],n=e+i+m;return n>0?(b=.5/Math.sqrt(n+1),c[Q_W]=.25/b,c[Q_X]=(l-j)*b,c[Q_Y]=(g-k)*b,c[Q_Z]=(h-f)*b):e>i&&e>m?(b=2*Math.sqrt(1+e-i-m),c[Q_W]=(l-j)/b,c[Q_X]=.25*b,c[Q_Y]=(f+h)/b,c[Q_Z]=(g+k)/b):i>m?(b=2*Math.sqrt(1+i-e-m),c[Q_W]=(g-k)/b,c[Q_X]=(f+h)/b,c[Q_Y]=.25*b,c[Q_Z]=(j+l)/b):(b=2*Math.sqrt(1+m-e-i),c[Q_W]=(h-f)/b,c[Q_X]=(g+k)/b,c[Q_Y]=(j+l)/b,c[Q_Z]=.25*b),c},Utils.rotateVec_90=function(a){var b=vec3.fromValues(-a[Q_Y],a[Q_X],a[Q_Z]);return b},Utils.calcRotateMat=function(a){var b=vec3.clone(a);b=vec3.normalize(b,b);var c=Utils.rotateVec_90(b),d=vec3.fromValues(b[Q_X],b[Q_Y],0),e=vec3.fromValues(c[Q_X],c[Q_Y],0),f=vec3.fromValues(0,0,1),g=mat4.create();return g=Utils.setAxisMatrix(d,e,f)},Utils.getMatTranslate=function(a){var b=vec3.create();return b[Q_X]=a[12],b[Q_Y]=a[13],b[Q_Z]=a[14],b},Utils.addMat=function(a,b){for(var c=mat4.create(),d=0;16>d;d++)c[d]=a[d]+b[d];return c},Utils.mulMat=function(a,b){for(var c=mat4.create(),d=0;16>d;d++)c[d]=a[d]*b;return c},Utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var newVec1=vec3.create(),newVec2=vec3.create();Utils.vecInterp=function(a,b,c){newVec1=vec3.scale(newVec1,a,1-c),newVec2=vec3.scale(newVec2,b,c);var d=vec3.create();return d=vec3.add(d,newVec1,newVec2)},Utils.vec2Interp=function(a,b,c){var d=vec2.create(),e=vec2.create();d=vec2.scale(d,a,1-c),e=vec2.scale(e,b,c);var f=vec2.create();return f=vec2.add(f,d,e)},MeshBone.prototype.setRestParentMat=function(a,b){this.rest_parent_mat=a,null==b?(this.rest_parent_inv_mat=mat4.clone(this.rest_parent_mat),mat4.invert(this.rest_parent_inv_mat,this.rest_parent_inv_mat)):this.rest_parent_inv_mat=mat4.clone(b)},MeshBone.prototype.setParentWorldMat=function(a){this.parent_world_mat=a},MeshBone.prototype.setParentWorldInvMat=function(a){this.parent_world_inv_mat=a},MeshBone.prototype.getLocalRestStartPt=function(){return this.local_rest_start_pt},MeshBone.prototype.getLocalRestEndPt=function(){return this.local_rest_end_pt},MeshBone.prototype.setLocalRestStartPt=function(a){this.local_rest_start_pt=vec3.create(),this.local_rest_start_pt=vec3.transformMat4(this.local_rest_start_pt,a,this.rest_parent_inv_mat),this.calcRestData()},MeshBone.prototype.setLocalRestEndPt=function(a){this.local_rest_end_pt=vec3.create(),this.local_rest_end_pt=vec3.transformMat4(this.local_rest_end_pt,a,this.rest_parent_inv_mat),this.calcRestData()},MeshBone.prototype.calcRestData=function(){if(null!=this.local_rest_start_pt&&null!=this.local_rest_end_pt){var a=this.computeDirs(this.local_rest_start_pt,this.local_rest_end_pt);this.local_rest_dir=a.first,this.local_rest_normal_dir=a.second,this.computeRestLength()}},MeshBone.prototype.setWorldStartPt=function(a){this.world_start_pt=a},MeshBone.prototype.setWorldEndPt=function(a){this.world_end_pt=a},MeshBone.prototype.fixDQs=function(a){quat.dot(this.world_dq.real,a.real)<0&&(this.world_dq.real=quat.scale(this.world_dq.real,this.world_dq.real,-1),this.world_dq.imaginary=quat.scale(this.world_dq.imaginary,this.world_dq.imaginary,-1));for(var b=0;bf;f++)accum_mat[f]=0;for(var g=Object.keys(c),f=(g.length,0),h=this.getNumPts();h>f;f++){var i=vec3.set(tmp1,this.store_rest_pts[0+d],this.store_rest_pts[1+d],this.store_rest_pts[2+d]);1==this.use_local_displacements&&(i[Q_X]+=this.local_displacements[f][Q_X],i[Q_Y]+=this.local_displacements[f][Q_Y]);for(var j=0;16>j;j++)accum_mat[j]=0;accum_dq.reset();for(var k=this.relevant_bones_indices[f],l=k.length,j=0;l>j;j++){var m=k[j],n=this.fast_bones_map[m],o=this.fast_normal_weight_map[m][f],p=o,q=n.getWorldDq();accum_dq.add(q,o,p)}accum_dq.normalize();var r=vec3.set(tmp2,i[Q_X],i[Q_Y],i[Q_Z]);final_pt=accum_dq.transform(r),1==this.use_post_displacements&&(final_pt[Q_X]+=this.post_displacements[f][Q_X],final_pt[Q_Y]+=this.post_displacements[f][Q_Y]),a[0+e]=final_pt[Q_X],a[1+e]=final_pt[Q_Y],a[2+e]=final_pt[Q_Z],d+=3,e+=3}1==this.use_uv_warp&&this.runUvWarp()},MeshRenderRegion.prototype.setMainBoneKey=function(a){this.main_bone_key=a},MeshRenderRegion.prototype.determineMainBone=function(a){this.main_bone=a.getChildByKey(this.main_bone_key)},MeshRenderRegion.prototype.setUseDq=function(a){this.use_dq=a},MeshRenderRegion.prototype.setName=function(a){this.name=a},MeshRenderRegion.prototype.getName=function(){return this.name},MeshRenderRegion.prototype.setUseLocalDisplacements=function(a){if(this.use_local_displacements=a,this.local_displacements.length!=this.getNumPts()&&this.use_local_displacements){this.local_displacements=[];for(var b=0;bd&&f.push(g)}this.relevant_bones_indices.push(f)}for(var b in a){var i=a[b];this.fast_bones_map.push(i)}},MeshRenderRegion.prototype.initUvWarp=function(){var a=this.getUVsIndex();this.uv_warp_ref_uvs=[];for(var b=0;bd;d++)this.bone_cache_table.push([]),this.bone_cache_data_ready.push(!1);this.is_ready=!1},MeshBoneCacheManager.prototype.getStartTime=function(){return this.start_time},MeshBoneCacheManager.prototype.getEndime=function(){return this.end_time},MeshBoneCacheManager.prototype.getIndexByTime=function(a){var b=a-this.start_time;return b=Utils.clamp(b,0,this.bone_cache_table.length-1)},MeshBoneCacheManager.prototype.retrieveValuesAtTime=function(a,b){var c=this.getIndexByTime(Math.floor(a)),d=this.getIndexByTime(Math.ceil(a)),e=a-Math.floor(a);if(0!=this.bone_cache_data_ready.length&&0!=this.bone_cache_data_ready[c]&&0!=this.bone_cache_data_ready[d])for(var f=this.bone_cache_table[c],g=this.bone_cache_table[d],h=0,i=f.length;i>h;h++){var j=f[h],k=g[h],l=j.getKey(),m=Utils.vecInterp(j.getWorldStartPt(),k.getWorldStartPt(),e),n=Utils.vecInterp(j.getWorldEndPt(),k.getWorldEndPt(),e);b[l].setWorldStartPt(m),b[l].setWorldEndPt(n)}},MeshBoneCacheManager.prototype.allReady=function(){if(this.is_ready)return!0;for(var a=this.end_time-this.start_time+1,b=0,c=0;cd;d++)this.displacement_cache_table.push([]),this.displacement_cache_data_ready.push(!1);this.is_ready=!1},MeshDisplacementCacheManager.prototype.getStartTime=function(){return this.start_time},MeshDisplacementCacheManager.prototype.getEndime=function(){return this.end_time},MeshDisplacementCacheManager.prototype.getIndexByTime=function(a){var b=a-this.start_time;return b=Utils.clamp(b,0,this.displacement_cache_table.length-1)},MeshDisplacementCacheManager.prototype.retrieveValuesAtTime=function(a,b){var c=this.getIndexByTime(Math.floor(a)),d=this.getIndexByTime(Math.ceil(a)),e=a-Math.floor(a);if(0!=this.displacement_cache_data_ready.length&&0!=this.displacement_cache_data_ready[c]&&0!=this.displacement_cache_data_ready[d])for(var f=this.displacement_cache_table[c],g=this.displacement_cache_table[d],h=0;hd;d++)this.uv_cache_table.push([]),this.uv_cache_data_ready.push(!1);this.is_ready=!1},MeshUVWarpCacheManager.prototype.getStartTime=function(){return this.start_time},MeshUVWarpCacheManager.prototype.getEndime=function(){return this.end_time},MeshUVWarpCacheManager.prototype.getIndexByTime=function(a){var b=a-this.start_time;return b=Utils.clamp(b,0,this.uv_cache_table.length-1)},MeshUVWarpCacheManager.prototype.retrieveValuesAtTime=function(a,b){var c=this.getIndexByTime(Math.floor(a)),d=this.getIndexByTime(Math.ceil(a));a-Math.floor(a);if(0!=this.uv_cache_data_ready.length&&0!=this.uv_cache_data_ready[c]&&0!=this.uv_cache_data_ready[d])for(var e=this.uv_cache_table[c],f=this.uv_cache_table[d],g=0;gf;f++){var g=2*f;d.push(vec2.fromValues(c[0+g],c[1+g]))}return d},CreatureModuleUtils.ReadFloatArray3DJSON=function(a,b){for(var c=CreatureModuleUtils.getFloatArray(a[b]),d=[],e=c.length/2,f=0;e>f;f++){var g=2*f;d.push(c[0+g]),d.push(c[1+g]),d.push(0)}return d},CreatureModuleUtils.ReadBoolJSON=function(a,b){var c=a[b];return c},CreatureModuleUtils.ReadFloatArrayJSON=function(a,b){return a[b]},CreatureModuleUtils.ReadIntArrayJSON=function(a,b){return a[b]},CreatureModuleUtils.ReadMatrixJSON=function(a,b){for(var c=CreatureModuleUtils.getFloatArray(a[b]),d=mat4.create(),e=0;16>e;e++)d[e]=c[e];return d},CreatureModuleUtils.ReadVector2JSON=function(a,b){var c=CreatureModuleUtils.getFloatArray(a[b]);return vec2.fromValues(c[0],c[1])},CreatureModuleUtils.ReadVector3JSON=function(a,b){var c=CreatureModuleUtils.getFloatArray(a[b]);return vec3.fromValues(c[0],c[1],0)},CreatureModuleUtils.CreateBones=function(a,b){var c=null,d=a[b],e={},f={};for(var g in d){var h=d[g],i=h.id,j=CreatureModuleUtils.ReadMatrixJSON(h,"restParentMat"),k=CreatureModuleUtils.ReadVector3JSON(h,"localRestStartPt"),l=CreatureModuleUtils.ReadVector3JSON(h,"localRestEndPt"),m=CreatureModuleUtils.ReadIntArrayJSON(h,"children"),n=new MeshBone(g,vec3.create(),vec3.create(),j);n.local_rest_start_pt=k,n.local_rest_end_pt=l,n.calcRestData(),n.setTagId(i),e[i]={first:n,second:m};for(var o=0;od&&(d=h),c>h&&(c=h))}return{first:c,second:d}},CreatureModuleUtils.FillBoneCache=function(a,b,c,d,e){var f=a[b];e.init(c,d);for(var g in f){var h=f[g];cache_list=[];for(var i in h){var j=h[i],k=CreatureModuleUtils.ReadVector3JSON(j,"start_pt"),l=CreatureModuleUtils.ReadVector3JSON(j,"end_pt"),m=new MeshBoneCache(i);m.setWorldStartPt(k),m.setWorldEndPt(l),cache_list.push(m)}var n=e.getIndexByTime(g);e.bone_cache_table[n]=cache_list}e.makeAllReady()},CreatureModuleUtils.FillDeformationCache=function(a,b,c,d,e){var f=a[b];e.init(c,d);for(var g in f){var h=f[g],i=[];for(var j in h){var k=h[j],l=new MeshDisplacementCache(j),m=CreatureModuleUtils.ReadBoolJSON(k,"use_local_displacements"),n=CreatureModuleUtils.ReadBoolJSON(k,"use_post_displacements");if(1==m){var o=CreatureModuleUtils.ReadPointsArray2DJSON(k,"local_displacements");l.setLocalDisplacements(o)}if(1==n){var o=CreatureModuleUtils.ReadPointsArray2DJSON(k,"post_displacements");l.setPostDisplacements(o)}i.push(l)}var p=e.getIndexByTime(g);e.displacement_cache_table[p]=i}e.makeAllReady()},CreatureModuleUtils.FillUVSwapCache=function(a,b,c,d,e){var f=a[b];e.init(c,d);for(var g in f){var h=f[g],i=[];for(var j in h){var k=h[j],l=new MeshUVWarpCache(j),m=CreatureModuleUtils.ReadBoolJSON(k,"enabled");if(l.setEnabled(m),1==m){var n=CreatureModuleUtils.ReadVector2JSON(k,"local_offset"),o=CreatureModuleUtils.ReadVector2JSON(k,"global_offset"),p=CreatureModuleUtils.ReadVector2JSON(k,"scale");l.setUvWarpLocalOffset(n),l.setUvWarpGlobalOffset(o),l.setUvWarpScale(p)}i.push(l)}var q=e.getIndexByTime(g);e.uv_cache_table[q]=i}e.makeAllReady()},Creature.prototype.FillRenderColours=function(a,b,c,d){for(var e=0;e=h&&i>=d){e=!0;break}}e&&a[d]++}this.boundary_indices=[];for(var b=0;bf&&(b[0]=f),b[1]>g&&(b[1]=g),c[0]m;m++)g[j+0]=(1-f)*h[k+0]+f*i[l+0],g[j+1]=(1-f)*h[k+1]+f*i[l+1],g[j+2]=(1-f)*h[k+2]+f*i[l+2],j+=3,k+=3,l+=3},CreatureManager.prototype.CreateAnimation=function(a,b){var c=new CreatureAnimation(a,b);this.AddAnimation(c)},CreatureManager.prototype.CreateAllAnimations=function(a){for(var b=CreatureModuleUtils.GetAllAnimationNames(a),c=0;c0)){for(var d=c.cache_pts,e=c.start_time;e<=c.end_time;e++){this.setRunTime(e);for(var f=[],g=0;g<3*this.target_creature.total_num_pts;g++)f[g]=0;this.PoseCreature(a,f),d.push(f)}this.setRunTime(b)}},CreatureManager.prototype.FillSinglePointCacheFrame=function(a,b){var c=this.getRunTime(),d=this.animations[a];this.setRunTime(b);for(var e=[],f=0;f<3*this.target_creature.total_num_pts;f++)e[f]=0;this.PoseCreature(a,e),d.fill_cache_pts.push(e),d.verifyFillCache(),this.setRunTime(c)},CreatureManager.prototype.GetIsPlaying=function(){return this.is_playing},CreatureManager.prototype.SetShouldLoop=function(a){this.should_loop=a},CreatureManager.prototype.SetUseCustomTimeRange=function(a){this.use_custom_time_range=a},CreatureManager.prototype.SetCustomTimeRange=function(a,b){this.custom_start_time=a,this.custom_end_time=b},CreatureManager.prototype.SetIsPlaying=function(a){this.is_playing=a},CreatureManager.prototype.ResetToStartTimes=function(){var a=this.animations[active_animation_name];this.run_time=a.start_time},CreatureManager.prototype.setRunTime=function(a){this.run_time=a,this.correctTime()},CreatureManager.prototype.increRunTime=function(a){this.run_time+=a,this.correctTime()},CreatureManager.prototype.correctTime=function(){var a=this.animations[this.active_animation_name],b=a.start_time,c=a.end_time;this.use_custom_time_range&&(b=this.custom_start_time,c=this.custom_end_time),this.run_time>c?this.should_loop?this.run_time=b:this.run_time=c:this.run_timea;a++){var b=this.animations[this.active_blend_animation_names[a]];b.cache_pts.length>0?b.poseFromCachePts(this.getRunTime(),this.blend_render_pts[a],this.target_creature.total_num_pts):this.PoseCreature(this.active_blend_animation_names[a],this.blend_render_pts[a])}for(var c=0;c<3*this.target_creature.total_num_pts;c++){var d=c,e=this.blend_render_pts[0][c],f=this.blend_render_pts[1][c];this.target_creature.render_pts.set(d,(1-blending_factor)*e+blending_factor*f)}}else{var b=this.animations[this.active_animation_name];b.cache_pts.length>0?b.poseFromCachePts(this.getRunTime(),this.target_creature.render_pts,this.target_creature.total_num_pts):this.PoseCreature(this.active_animation_name,this.target_creature.render_pts)}},CreatureManager.prototype.SetTimeScale=function(a){this.time_scale=a},CreatureManager.prototype.SetBlending=function(a){if(this.do_blending=a,this.do_blending){if(0==this.blend_render_pts[0].length){for(var b=[],c=0;c<3*target_creature.total_num_pts;c++)b.push(0);this.blend_render_pts.set(0,b)}if(0==this.blend_render_pts[1].length){for(var b=[],c=0;c<3*this.target_creature.total_num_pts;c++)b.push(0);this.blend_render_pts[1]=b}}},CreatureManager.prototype.SetBlendingAnimations=function(a,b){this.active_blend_animation_names[0]=a,this.active_blend_animation_names[1]=b},CreatureManager.prototype.SetBlendingFactor=function(a){this.blending_factor=a},CreatureManager.prototype.IsContactBone=function(a,b){var c=this.target_creature.render_composition.getRootBone();return this.ProcessContactBone(a,b,c)},CreatureManager.prototype.PoseCreature=function(a,b){var c=this.animations[a],d=c.bones_cache,e=c.displacement_cache,f=c.uv_warp_cache,g=this.target_creature.render_composition,h=g.getBonesMap(),i=g.getRegionsMap();d.retrieveValuesAtTime(this.getRunTime(),h),null!=this.bones_override_callback&&this.bones_override_callback(h),e.retrieveValuesAtTime(this.getRunTime(),i),f.retrieveValuesAtTime(this.getRunTime(),i);var j=g.getRegions(),k=g.getBonesMap();g.updateAllTransforms(!1);for(var l=0,m=j.length;m>l;l++){var n=j[l],o=n.getStartPtIndex();n.poseFinalPts(b,3*o,k);for(var p=3*n.getStartPtIndex(),q=3*n.getEndPtIndex(),r=p;q>=r;r+=3)b[r+2]=.001*-l}};
-//# sourceMappingURL=creature.map
\ No newline at end of file
diff --git a/build/custom/p2.map b/build/custom/p2.map
index 703f1d345..8d02ba7fc 100644
--- a/build/custom/p2.map
+++ b/build/custom/p2.map
@@ -1 +1 @@
-{"version":3,"sources":["p2.js"],"names":["e","exports","module","define","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length","1","_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar","2","Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist","3","Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point","4","abs","5","./Polygon","6","name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp","7","AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils","8","Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body","9","NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape","10","Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos","pos0","pos1","pow","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary","11","Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult","12","RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray","13","SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList","14","Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation","15","DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint","16","GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation","17","LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis","18","PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation","19","RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation","20","./Equation","21","computeB","h","GW","Gq","GiMf","computeGiMf","B","22","ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps","23","FrictionEquation","getSlipForce","24","worldVectorA","worldVectorB","25","26","EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target","27","ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material","28","29","PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","30","crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y","31","_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter","32","LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring","33","RotationalSpring","restAngle","34","35","TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint","36","Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World","37","arguments","axes","updateArea","./Convex","./Shape","38","intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1","39","Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint","40","isArray","triangles","polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk","41","key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo","42","raycast_normal","raycast_l0","raycast_l1","raycast_unit_y","43","44","intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir","45","material","sensor","46","GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver","47","equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND","48","destroy","equation","./Pool","49","50","IslandNodePool","IslandNode","../world/IslandNode","51","IslandPool","Island","../world/Island","52","OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils","53","OverlapKeeperRecord","54","record","55","objects","resize","object","56","getKey","dict","57","howmany","P2_ARRAY_TYPE","Float32Array","58","bodyIds","59","IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode","60","61","springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager"],"mappings":"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","file":"p2.min.js"}
\ No newline at end of file
+{"version":3,"sources":["p2.js"],"names":["e","exports","module","define","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length","1","_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar","2","Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist","3","Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point","4","abs","5","./Polygon","6","name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp","7","AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils","8","Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body","9","NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape","10","Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos","pos0","pos1","pow","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary","11","Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult","12","RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray","13","SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList","14","Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation","15","DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint","16","GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation","17","LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis","18","PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation","19","RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation","20","./Equation","21","computeB","h","GW","Gq","GiMf","computeGiMf","B","22","ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps","23","FrictionEquation","getSlipForce","24","worldVectorA","worldVectorB","25","26","EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target","27","ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material","28","29","PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","30","crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y","31","_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter","32","LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring","33","RotationalSpring","restAngle","34","35","TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint","36","Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World","37","arguments","axes","updateArea","./Convex","./Shape","38","intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1","39","Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint","40","isArray","triangles","polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk","41","key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo","42","raycast_normal","raycast_l0","raycast_l1","raycast_unit_y","43","44","intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir","45","material","sensor","46","GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver","47","equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND","48","destroy","equation","./Pool","49","50","IslandNodePool","IslandNode","../world/IslandNode","51","IslandPool","Island","../world/Island","52","OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils","53","OverlapKeeperRecord","54","record","55","objects","resize","object","56","getKey","dict","57","howmany","P2_ARRAY_TYPE","Float32Array","58","bodyIds","59","IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode","60","61","springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager"],"mappings":"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","file":"p2.min.js"}
\ No newline at end of file
diff --git a/build/custom/p2.min.js b/build/custom/p2.min.js
index 9a2a670ff..2838ecd55 100644
--- a/build/custom/p2.min.js
+++ b/build/custom/p2.min.js
@@ -1,7 +1,7 @@
-/* Phaser v2.6.1 P2.JS Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
+/* Phaser v2.6.2 P2.JS Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
-!function(a){if("object"==typeof exports)module.exports=a();else if("function"==typeof define,1){var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.p2=a()}else define(a)}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":4}],2:[function(a,b,c){function d(){}b.exports=d,d.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},d.left=function(a,b,c){return d.area(a,b,c)>0},d.leftOn=function(a,b,c){return d.area(a,b,c)>=0},d.right=function(a,b,c){return d.area(a,b,c)<0},d.rightOn=function(a,b,c){return d.area(a,b,c)<=0};var e=[],f=[];d.collinear=function(a,b,c,g){if(g){var h=e,i=f;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=c[0]-b[0],i[1]=c[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==d.area(a,b,c)},d.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],3:[function(a,b,c){function d(){this.vertices=[]}function e(a,b,c,d,e){e=e||0;var f=b[1]-a[1],g=a[0]-b[0],i=f*a[0]+g*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*g;return h.eq(m,0,e)?[0,0]:[(k*i-g*l)/m,(f*l-j*i)/m]}var f=a("./Line"),g=a("./Point"),h=a("./Scalar");b.exports=d,d.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},d.prototype.first=function(){return this.vertices[0]},d.prototype.last=function(){return this.vertices[this.vertices.length-1]},d.prototype.clear=function(){this.vertices.length=0},d.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},d.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);g.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},d.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},d.prototype.isReflex=function(a){return g.right(this.at(a-1),this.at(a),this.at(a+1))};var i=[],j=[];d.prototype.canSee=function(a,b){var c,d,e=i,h=j;if(g.leftOn(this.at(a+1),this.at(a),this.at(b))&&g.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=g.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&g.leftOn(this.at(a),this.at(b),this.at(k+1))&&g.rightOn(this.at(a),this.at(b),this.at(k))&&(e[0]=this.at(a),e[1]=this.at(b),h[0]=this.at(k),h[1]=this.at(k+1),c=f.lineInt(e,h),g.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},d.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(f.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),g.left(v.at(x+1),v.at(x),v.at(y+1))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=e(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),g.left(v.at(x-1),v.at(x),l)&&(o=g.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,c.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)g.leftOn(v.at(x-1),v.at(x),v.at(y))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=g.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)g.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b,c){function d(){}b.exports=d,d.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b,c){function d(a){this.lowerBound=e.create(),a&&a.lowerBound&&e.copy(this.lowerBound,a.lowerBound),this.upperBound=e.create(),a&&a.upperBound&&e.copy(this.upperBound,a.upperBound)}var e=a("../math/vec2");a("../utils/Utils");b.exports=d;var f=e.create();d.prototype.setFromPoints=function(a,b,c,d){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?e.rotate(g,a[0],c):e.copy(g,a[0]),e.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]i?-1:h>i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b,c){function d(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=d.AABB}var e=a("../math/vec2"),f=a("../objects/Body");b.exports=d,d.AABB=1,d.BOUNDING_CIRCLE=2,d.prototype.setWorld=function(a){this.world=a},d.prototype.getCollisionPairs=function(a){};var g=e.create();d.boundingRadiusCheck=function(a,b){e.sub(g,a.position,b.position);var c=e.squaredLength(g),d=a.boundingRadius+b.boundingRadius;return d*d>=c},d.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},d.prototype.boundingVolumeCheck=function(a,b){var c;switch(this.boundingVolumeType){case d.BOUNDING_CIRCLE:c=d.boundingRadiusCheck(a,b);break;case d.AABB:c=d.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return c},d.canCollide=function(a,b){var c=f.KINEMATIC,d=f.STATIC;return a.type===d&&b.type===d?!1:a.type===c&&b.type===d||a.type===d&&b.type===c?!1:a.type===c&&b.type===c?!1:a.sleepState===f.SLEEPING&&b.sleepState===f.SLEEPING?!1:!(a.sleepState===f.SLEEPING&&b.type===d||b.sleepState===f.SLEEPING&&a.type===d)},d.NAIVE=1,d.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b,c){function d(){e.call(this,e.NAIVE)}var e=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var d=0,f=b.length;d!==f;d++)for(var g=b[d],h=0;d>h;h++){var i=b[h];e.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[];for(var d=a.bodies,e=0;e=r*n)return!1;n=r}return!0}var g=a("../math/vec2"),h=g.sub,i=g.add,j=g.dot,k=(a("../utils/Utils"),a("../utils/ContactEquationPool")),l=a("../utils/FrictionEquationPool"),m=a("../utils/TupleDictionary"),n=a("../equations/Equation"),o=(a("../equations/ContactEquation"),a("../equations/FrictionEquation"),a("../shapes/Circle")),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Box"));b.exports=d;var s=g.fromValues(0,1),t=g.fromValues(0,0),u=g.fromValues(0,0),v=g.fromValues(0,0),w=g.fromValues(0,0),x=g.fromValues(0,0),y=g.fromValues(0,0),z=g.fromValues(0,0),A=g.fromValues(0,0),B=g.fromValues(0,0),C=g.fromValues(0,0),D=g.fromValues(0,0),E=g.fromValues(0,0),F=g.fromValues(0,0),G=g.fromValues(0,0),H=g.fromValues(0,0),I=g.fromValues(0,0),J=g.fromValues(0,0),K=g.fromValues(0,0),L=[],M=g.create(),N=g.create();d.prototype.bodiesOverlap=function(a,b){for(var c=M,d=N,e=0,f=a.shapes.length;e!==f;e++){var g=a.shapes[e];a.toWorldFrame(c,g.position);for(var h=0,i=b.shapes.length;h!==i;h++){var j=b.shapes[h];if(b.toWorldFrame(d,j.position),this[g.type|j.type](a,g,c,g.angle+a.angle,b,j,d,j.angle+b.angle,!0))return!0}}return!1},d.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},d.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}for(var f=this.contactEquations,g=this.frictionEquations,h=0;hp;p++){g.set(m,(0===p?-1:1)*b.length/2,0),g.rotate(m,m,d),g.add(m,m,c);for(var q=0;2>q;q++){g.set(n,(0===q?-1:1)*h.length/2,0),g.rotate(n,n,j),g.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,d,f,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=S;e(s,b);var t=this.convexCapsule(a,s,c,d,f,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}e(s,h);var u=this.convexCapsule(f,s,i,j,a,b,c,d,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},d.prototype[q.LINE|q.LINE]=d.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},d.prototype[q.PLANE|q.LINE]=d.prototype.planeLine=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L,H=0;g.set(n,-f.length/2,0),g.set(o,f.length/2,0),g.rotate(p,n,l),g.rotate(q,o,l),i(p,p,k),i(q,q,k),g.copy(n,p),g.copy(o,q),h(r,o,n),g.normalize(C,r),g.rotate90cw(F,C),g.rotate(E,s,d),G[0]=n,G[1]=o;for(var I=0;IK){if(m)return!0;var M=this.createContactEquation(a,e,b,f);H++,g.copy(M.normalA,E),g.normalize(M.normalA,M.normalA),g.scale(D,E,K),h(M.contactPointA,J,D),h(M.contactPointA,M.contactPointA,a.position),h(M.contactPointB,J,k),i(M.contactPointB,M.contactPointB,k),h(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},d.prototype[q.PARTICLE|q.CAPSULE]=d.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},d.prototype[q.CIRCLE|q.LINE]=d.prototype.circleLine=function(a,b,c,d,e,f,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=t,q=u,r=v,s=w,H=x,I=y,J=z,K=A,M=B,N=C,O=D,P=E,Q=F,R=G,S=L;g.set(K,-f.length/2,0),g.set(M,f.length/2,0),g.rotate(N,K,l),g.rotate(O,M,l),i(N,N,k),i(O,O,k),g.copy(K,N),g.copy(M,O),h(I,M,K),g.normalize(J,I),g.rotate90cw(H,J),h(P,c,K);var T=j(P,H);h(s,K,k),h(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,f);return g.scale(Y.normalA,p,-1),g.normalize(Y.normalA,Y.normalA),g.scale(Y.contactPointA,Y.normalA,o),i(Y.contactPointA,Y.contactPointA,c),h(Y.contactPointA,Y.contactPointA,a.position),h(Y.contactPointB,r,k),i(Y.contactPointB,Y.contactPointB,k),h(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=K,S[1]=M;for(var Z=0;ZQ&&(g.copy(J,B),L=Q,g.scale(A,s,Q),g.add(A,A,B),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,e,b,j);return g.sub(R.normalA,J,c),g.normalize(R.normalA,R.normalA),g.scale(R.contactPointA,R.normalA,n),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,A,k),i(R.contactPointB,R.contactPointB,k),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(I=Q,g.scale(E,s,Q),g.add(E,E,c),g.copy(H,s),L=!0)}if(L){var R=this.createContactEquation(a,e,b,k);return g.scale(R.normalA,H,-1),g.normalize(R.normalA,R.normalA),g.set(R.contactPointA,0,0),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,E,l),i(R.contactPointB,R.contactPointB,l),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},d.prototype[q.CIRCLE]=d.prototype.circleCircle=function(a,b,c,d,e,f,j,k,l,m,n){var o=t,m=m||b.radius,n=n||f.radius;h(o,c,j);var p=m+n;if(g.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,f);return h(q.normalA,j,c),g.normalize(q.normalA,q.normalA),g.scale(q.contactPointA,q.normalA,m),g.scale(q.contactPointB,q.normalA,-n),i(q.contactPointA,q.contactPointA,c),h(q.contactPointA,q.contactPointA,a.position),i(q.contactPointB,q.contactPointB,j),h(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},d.prototype[q.PLANE|q.CONVEX]=d.prototype[q.PLANE|q.BOX]=d.prototype.planeConvex=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=0;g.rotate(o,s,d);for(var r=0;r!==f.vertices.length;r++){var w=f.vertices[r];if(g.rotate(n,w,l),i(n,n,k),h(p,n,c),j(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,f);h(p,n,c),g.copy(x.normalA,o);var y=j(p,x.normalA);g.scale(p,x.normalA,y),h(x.contactPointB,n,e.position),h(x.contactPointA,n,p),h(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},d.prototype[q.PARTICLE|q.PLANE]=d.prototype.particlePlane=function(a,b,c,d,e,f,i,k,l){var m=t,n=u;k=k||0,h(m,c,i),g.rotate(n,s,k);var o=j(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,f,b);return g.copy(p.normalA,n),g.scale(m,p.normalA,o),h(p.contactPointA,c,m),h(p.contactPointA,p.contactPointA,e.position),h(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},d.prototype[q.CIRCLE|q.PARTICLE]=d.prototype.circleParticle=function(a,b,c,d,e,f,j,k,l){var m=t;if(h(m,j,c),g.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,f);return g.copy(n.normalA,m),g.normalize(n.normalA,n.normalA),g.scale(n.contactPointA,n.normalA,b.radius),i(n.contactPointA,n.contactPointA,c),h(n.contactPointA,n.contactPointA,a.position),h(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};var X=new o({radius:1}),Y=g.create(),Z=g.create();g.create();d.prototype[q.PLANE|q.CAPSULE]=d.prototype.planeCapsule=function(a,b,c,d,e,f,h,j,k){var l=Y,m=Z,n=X;g.set(l,-f.length/2,0),g.rotate(l,l,j),i(l,l,h),g.set(m,f.length/2,0),g.rotate(m,m,j),i(m,m,h),n.radius=f.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},d.prototype[q.CIRCLE|q.PLANE]=d.prototype.circlePlane=function(a,b,c,d,e,f,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;h(x,p,r),g.rotate(y,s,w);var A=j(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,f,b);return g.copy(B.normalA,y),g.scale(B.contactPointB,B.normalA,-o.radius),i(B.contactPointB,B.contactPointB,p),h(B.contactPointB,B.contactPointB,n.position),g.scale(z,B.normalA,A),h(B.contactPointA,x,z),i(B.contactPointA,B.contactPointA,r),h(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},d.prototype[q.CONVEX]=d.prototype[q.CONVEX|q.BOX]=d.prototype[q.BOX]=d.prototype.convexConvex=function(a,b,c,e,f,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0,G=d.findSeparatingAxis(b,c,e,k,l,m,p);if(!G)return 0;h(D,l,c),j(p,D)>0&&g.scale(p,p,-1);var H=d.getClosestEdge(b,e,p,!0),I=d.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=c,P=l,Q=e,R=m,S=a,T=f;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];g.rotate(q,W,R),i(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];g.rotate(r,Z,Q),g.rotate(s,$,Q),i(r,r,O),i(s,s,O),h(y,s,r),g.rotate90cw(E,y),g.normalize(E,E),h(D,q,r);var _=j(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var aa=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];g.rotate(r,Z,Q),g.rotate(s,$,Q),i(r,r,O),i(s,s,O),h(y,s,r),g.rotate90cw(aa.normalA,y),g.normalize(aa.normalA,aa.normalA),h(D,q,r);var _=j(aa.normalA,D);g.scale(C,aa.normalA,_),h(aa.contactPointA,q,O),h(aa.contactPointA,aa.contactPointA,C),i(aa.contactPointA,aa.contactPointA,O),h(aa.contactPointA,aa.contactPointA,S.position),h(aa.contactPointB,q,P),i(aa.contactPointB,aa.contactPointB,P),h(aa.contactPointB,aa.contactPointB,T.position),this.contactEquations.push(aa),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(aa))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var $=g.fromValues(0,0);d.projectConvexOntoAxis=function(a,b,c,d,e){var f,h,i=null,k=null,l=$;g.rotate(l,d,-c);for(var m=0;mi)&&(i=h),(null===k||k>h)&&(k=h);if(k>i){var n=k;k=i,i=n}var o=j(b,d);g.set(e,k+o,i+o)};var _=g.fromValues(0,0),aa=g.fromValues(0,0),ba=g.fromValues(0,0),ca=g.fromValues(0,0),da=g.fromValues(0,0),ea=g.fromValues(0,0);d.findSeparatingAxis=function(a,b,c,e,f,i,j){var k=null,l=!1,m=!1,n=_,o=aa,p=ba,q=ca,s=da,t=ea;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?g.set(q,0,1):1===x&&g.set(q,1,0),0!==w&&g.rotate(q,q,w),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){g.rotate(o,v.vertices[x],w),g.rotate(p,v.vertices[(x+1)%v.vertices.length],w),h(n,p,o),g.rotate90cw(q,n),g.normalize(q,q),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}return m};var fa=g.fromValues(0,0),ga=g.fromValues(0,0),ha=g.fromValues(0,0);d.getClosestEdge=function(a,b,c,d){var e=fa,f=ga,i=ha;g.rotate(e,c,-b),d&&g.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){h(f,a.vertices[(n+1)%l],a.vertices[n%l]),g.rotate90cw(i,f),g.normalize(i,i);var o=j(i,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var ia=g.create(),ja=g.create(),ka=g.create(),la=g.create(),ma=g.create(),na=g.create(),oa=g.create();d.prototype[q.CIRCLE|q.HEIGHTFIELD]=d.prototype.circleHeightfield=function(a,b,c,d,e,f,j,k,l,m){var n=f.heights,m=m||b.radius,o=f.elementWidth,p=ja,q=ia,r=ma,s=oa,t=na,u=ka,v=la,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){g.set(u,A*o,n[A]),g.set(v,(A+1)*o,n[A+1]),g.add(u,u,j),g.add(v,v,j),g.sub(t,v,u),g.rotate(t,t,Math.PI/2),g.normalize(t,t),g.scale(q,t,-m),g.add(q,q,c),g.sub(p,q,u);var C=g.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,g.scale(p,t,-C),g.add(r,q,p),g.copy(s,t);var D=this.createContactEquation(e,a,f,b);g.copy(D.normalA,s),g.scale(D.contactPointB,D.normalA,-m),i(D.contactPointB,D.contactPointB,c),h(D.contactPointB,D.contactPointB,a.position),g.copy(D.contactPointA,r),g.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(g.set(u,A*o,n[A]),g.add(u,u,j),g.sub(p,c,u),g.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){g.set(m,u*l,k[u]),g.set(n,(u+1)*l,k[u+1]),g.add(m,m,h),g.add(n,n,h);var w=100;g.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),g.sub(p.vertices[0],n,o),g.sub(p.vertices[1],m,o),g.copy(p.vertices[2],p.vertices[1]),g.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Box":37,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Shape":45,"../utils/ContactEquationPool":48,"../utils/FrictionEquationPool":49,"../utils/TupleDictionary":56,"../utils/Utils":57}],11:[function(a,b,c){function d(a){a=a||{},this.from=a.from?f.fromValues(a.from[0],a.from[1]):f.create(),this.to=a.to?f.fromValues(a.to[0],a.to[1]):f.create(),this.checkCollisionResponse=void 0!==a.checkCollisionResponse?a.checkCollisionResponse:!0,this.skipBackfaces=!!a.skipBackfaces,this.collisionMask=void 0!==a.collisionMask?a.collisionMask:-1,this.collisionGroup=void 0!==a.collisionGroup?a.collisionGroup:-1,this.mode=void 0!==a.mode?a.mode:d.ANY,this.callback=a.callback||function(a){},this.direction=f.create(),this.length=1,this.update()}function e(a,b,c){f.sub(h,c,a);var d=f.dot(h,b);return f.scale(i,b,d),f.add(i,i,a),f.squaredDistance(c,i)}b.exports=d;var f=a("../math/vec2");a("../collision/RaycastResult"),a("../shapes/Shape"),a("../collision/AABB");d.prototype.constructor=d,d.CLOSEST=1,d.ANY=2,d.ALL=4,d.prototype.update=function(){var a=this.direction;f.sub(a,this.to,this.from),this.length=f.length(a),f.normalize(a,a)},d.prototype.intersectBodies=function(a,b){for(var c=0,d=b.length;!a.shouldStop(this)&&d>c;c++){var e=b[c],f=e.getAABB();(f.overlapsRay(this)>=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var g=f.create();d.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=g,e=0,h=b.shapes.length;h>e;e++){var i=b.shapes[e];if((!c||i.collisionResponse)&&0!==(this.collisionGroup&i.collisionMask)&&0!==(i.collisionGroup&this.collisionMask)){f.rotate(d,i.position,b.angle),f.add(d,d,b.position);var j=i.angle+b.angle;if(this.intersectShape(a,i,j,d,b),a.shouldStop(this))break}}},d.prototype.intersectShape=function(a,b,c,d,f){var g=this.from,h=e(g,this.direction,d);h>b.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,d,c),this._currentBody=this._currentShape=null)},d.prototype.getAABB=function(a){var b=this.to,c=this.from;f.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),f.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};f.create();d.prototype.reportIntersection=function(a,b,c,e){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&f.dot(c,this.direction)>0))switch(this.mode){case d.ALL:a.set(c,g,h,b,e),this.callback(a);break;case d.CLOSEST:(bc;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},d.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;d.sortAxisList(a,b)},d.prototype.getCollisionPairs=function(a){var b=this.axisList,c=this.result,d=this.axisIndex;c.length=0;for(var e=b.length;e--;){var g=b[e];g.aabbNeedsUpdate&&g.updateAABB()}this.sortList();for(var h=0,i=0|b.length;h!==i;h++)for(var j=b[h],k=h+1;i>k;k++){var l=b[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;f.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&c.push(j,l)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[],this.sortList();var d=this.axisIndex,e="x";1===d&&(e="y"),2===d&&(e="z");for(var f=this.axisList,g=(b.lowerBound[e],b.upperBound[e],0);gthis.upperLimit&&(f.maxForce=0,f.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)h.scale(e.normalA,j,-1),h.sub(e.contactPointA,k,g.position),h.sub(e.contactPointB,l,i.position),h.scale(o,j,c),h.add(e.contactPointA,e.contactPointA,o),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)h.scale(f.normalA,j,1),h.sub(f.contactPointA,k,g.position),h.sub(f.contactPointB,l,i.position),h.scale(o,j,d),h.sub(f.contactPointB,f.contactPointB,o),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,e.REVOLUTE,c);var d=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=i.create(),this.pivotB=i.create(),c.worldPivot?(i.sub(this.pivotA,c.worldPivot,a.position),i.sub(this.pivotB,c.worldPivot,b.position),i.rotate(this.pivotA,this.pivotA,-a.angle),i.rotate(this.pivotB,this.pivotB,-b.angle)):(i.copy(this.pivotA,c.localPivotA),i.copy(this.pivotB,c.localPivotB));var o=this.equations=[new f(a,b,-d,d),new f(a,b,-d,d)],p=o[0],q=o[1],r=this;p.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,l)},q.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,m)},q.minForce=p.minForce=-d,q.maxForce=p.maxForce=d,this.motorEquation=new g(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new h(a,b),this.lowerLimitEquation=new h(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var e=a("./Constraint"),f=a("../equations/Equation"),g=a("../equations/RotationalVelocityEquation"),h=a("../equations/RotationalLockEquation"),i=a("../math/vec2");b.exports=d;var j=i.create(),k=i.create(),l=i.fromValues(1,0),m=i.fromValues(0,1),n=i.create();d.prototype=new e,d.prototype.constructor=d,d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},d.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],h=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>h)o.angle=h,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}i.rotate(j,c,a.angle),i.rotate(k,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-i.crossLength(j,l),f.G[3]=1,f.G[4]=0,f.G[5]=i.crossLength(k,l),g.G[0]=0,g.G[1]=-1,g.G[2]=-i.crossLength(j,m),g.G[3]=0,g.G[4]=1,g.G[5]=i.crossLength(k,m)},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.motorIsEnabled=function(){return!!this.motorEnabled},d.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},d.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},d.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},d.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b,c){function d(a,b){e.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=f.create(),this.penetrationVec=f.create(),this.contactPointB=f.create(),this.normalA=f.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.bodyA,e=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=e.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=f.crossLength(g,l),o=f.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,f.add(k,j,h),f.sub(k,k,i),f.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=f.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b,c){function d(a,b,c,e){this.minForce="undefined"==typeof c?-Number.MAX_VALUE:c,this.maxForce="undefined"==typeof e?Number.MAX_VALUE:e,this.bodyA=a,this.bodyB=b,this.stiffness=d.DEFAULT_STIFFNESS,this.relaxation=d.DEFAULT_RELAXATION,this.G=new f.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}b.exports=d;var e=a("../math/vec2"),f=a("../utils/Utils");a("../objects/Body");d.prototype.constructor=d,d.DEFAULT_STIFFNESS=1e6,d.DEFAULT_RELAXATION=4,d.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},d.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},d.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var g=e.create(),h=e.create();d.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,g,d,h,e)+this.offset},d.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},d.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var i=e.create(),j=e.create();d.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,d=a.angularForce,f=b.force,g=b.angularForce,h=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return e.scale(i,c,h),e.multiply(i,a.massMultiplier,i),e.scale(j,f,k),e.multiply(j,b.massMultiplier,j),this.gmult(n,i,d*l,j,g*m)},d.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c*a.massMultiplier[0]+g[1]*g[1]*c*a.massMultiplier[1]+g[2]*g[2]*e+g[3]*g[3]*d*b.massMultiplier[0]+g[4]*g[4]*d*b.massMultiplier[1]+g[5]*g[5]*f};var k=e.create(),l=e.create(),m=e.create();e.create(),e.create(),e.create();d.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,d=k,f=l,g=m,h=b.invMassSolve,i=c.invMassSolve,j=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],e.scale(d,f,h*a),e.multiply(d,d,b.massMultiplier),e.add(b.vlambda,b.vlambda,d),b.wlambda+=j*o[2]*a,e.scale(d,g,i*a),e.multiply(d,d,c.massMultiplier),e.add(c.vlambda,c.vlambda,d),c.wlambda+=n*o[5]*a},d.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(a,b,c){function d(a,b,c){f.call(this,a,b,-c,c),this.contactPointA=e.create(),this.contactPointB=e.create(),this.t=e.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}var e=a("../math/vec2"),f=a("./Equation");a("../utils/Utils");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},d.prototype.getSlipForce=function(){return this.maxForce},d.prototype.computeB=function(a,b,c){var d=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-e.crossLength(d,g),h[3]=g[0],h[4]=g[1],h[5]=e.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var d=this.G;d[2]=1,d[5]=-1}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d;var g=f.create(),h=f.create(),i=f.fromValues(1,0),j=f.fromValues(0,1);d.prototype.computeGq=function(){return f.rotate(g,i,this.bodyA.angle+this.angle),f.rotate(h,j,this.bodyB.angle),f.dot(g,h)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b,c){function d(a,b){e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b,c){var d=function(){};b.exports=d,d.prototype={constructor:d,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b,c){function d(a,b,c){if(c=c||{},!(a instanceof e&&b instanceof e))throw new Error("First two arguments must be Material instances.");this.id=d.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof c.friction?Number(c.friction):.3,this.restitution="undefined"!=typeof c.restitution?Number(c.restitution):0,this.stiffness="undefined"!=typeof c.stiffness?Number(c.stiffness):f.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof c.relaxation?Number(c.relaxation):f.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof c.frictionStiffness?Number(c.frictionStiffness):f.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof c.frictionRelaxation?Number(c.frictionRelaxation):f.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof c.surfaceVelocity?Number(c.surfaceVelocity):0,this.contactSkinSize=.005}var e=a("./Material"),f=a("../equations/Equation");b.exports=d,d.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b,c){function d(a){this.id=a||d.idCounter++}b.exports=d,d.idCounter=0},{}],29:[function(a,b,c){var d={};d.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},d.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var c=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(d._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&d._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)c.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return c.push(e[0],e[1],e[2]),c},d._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},d._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=d},{}],30:[function(a,b,c){var d=b.exports={},e=a("../utils/Utils");d.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},d.crossVZ=function(a,b,c){return d.rotate(a,b,-Math.PI/2),d.scale(a,a,c),a},d.crossZV=function(a,b,c){return d.rotate(a,c,Math.PI/2),d.scale(a,a,b),a},d.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},d.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},d.toLocalFrame=function(a,b,c,e){d.copy(a,b),d.sub(a,a,c),d.rotate(a,a,-e)},d.toGlobalFrame=function(a,b,c,e){d.copy(a,b),d.rotate(a,a,e),d.add(a,a,c)},d.vectorToLocalFrame=function(a,b,c){d.rotate(a,b,-c)},d.vectorToGlobalFrame=function(a,b,c){d.rotate(a,b,c)},d.centroid=function(a,b,c,e){return d.add(a,b,c),d.add(a,a,e),d.scale(a,a,1/3),a},d.create=function(){var a=new e.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},d.clone=function(a){var b=new e.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},d.fromValues=function(a,b){var c=new e.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},d.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},d.set=function(a,b,c){return a[0]=b,a[1]=c,a},d.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},d.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},d.sub=d.subtract,d.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},d.mul=d.multiply,d.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},d.div=d.divide,d.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},d.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},d.dist=d.distance,d.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},d.sqrDist=d.squaredDistance,d.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},d.len=d.length,d.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},d.sqrLen=d.squaredLength,d.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},d.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},d.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},d.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},d.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},d.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},d.getLineSegmentsIntersection=function(a,b,c,e,f){var g=d.getLineSegmentsIntersectionFraction(b,c,e,f);return 0>g?!1:(a[0]=b[0]+g*(c[0]-b[0]),a[1]=b[1]+g*(c[1]-b[1]),!0)},d.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&1>=e&&f>=0&&1>=f?f:-1}},{"../utils/Utils":57}],31:[function(a,b,c){function d(a){a=a||{},k.call(this),this.id=a.id||++d._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=e.create(),this.position=e.fromValues(0,0),a.position&&e.copy(this.position,a.position),this.interpolatedPosition=e.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=e.fromValues(0,0),this.previousAngle=0,this.velocity=e.fromValues(0,0),a.velocity&&e.copy(this.velocity,a.velocity),this.vlambda=e.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=e.create(),a.force&&e.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=d.STATIC,"undefined"!=typeof a.type?this.type=a.type:a.mass?this.type=d.DYNAMIC:this.type=d.STATIC,this.boundingRadius=0,this.aabb=new j,this.aabbNeedsUpdate=!0,this.allowSleep=void 0!==a.allowSleep?a.allowSleep:!0,
-this.wantsToSleep=!1,this.sleepState=d.AWAKE,this.sleepSpeedLimit=void 0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void 0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void 0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void 0!==a.collisionResponse?a.collisionResponse:!0,this.idleTime=0,this.timeLastSleepy=0,this.ccdSpeedThreshold=void 0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void 0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var e=a("../math/vec2"),f=a("poly-decomp"),g=a("../shapes/Convex"),h=a("../collision/RaycastResult"),i=a("../collision/Ray"),j=a("../collision/AABB"),k=a("../events/EventEmitter");b.exports=d,d.prototype=new k,d.prototype.constructor=d,d._idCounter=0,d.prototype.updateSolveMassProperties=function(){this.sleepState===d.SLEEPING||this.type===d.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},d.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},d.prototype.getArea=function(){for(var a=0,b=0;bc&&(c=g+h)}this.boundingRadius=c},d.prototype.addShape=function(a,b,c){if(a.body)throw new Error("A shape can only be added to one body.");a.body=this,b?e.copy(a.position,b):e.set(a.position,0,0),a.angle=c||0,this.shapes.push(a),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},d.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0):!1},d.prototype.updateMassProperties=function(){if(this.type===d.STATIC||this.type===d.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,c=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=e.squaredLength(h.position),j=h.computeMomentOfInertia(c);f+=j+c*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass,e.set(this.massMultiplier,this.fixedX?0:1,this.fixedY?0:1)}};e.create();d.prototype.applyForce=function(a,b){if(e.add(this.force,this.force,a),b){var c=e.crossLength(b,a);this.angularForce+=c}};var n=e.create(),o=e.create(),p=e.create();d.prototype.applyForceLocal=function(a,b){b=b||p;var c=n,d=o;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};var q=e.create();d.prototype.applyImpulse=function(a,b){if(this.type===d.DYNAMIC){var c=q;if(e.scale(c,a,this.invMass),e.multiply(c,this.massMultiplier,c),e.add(this.velocity,c,this.velocity),b){var f=e.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};var r=e.create(),s=e.create(),t=e.create();d.prototype.applyImpulseLocal=function(a,b){b=b||t;var c=r,d=s;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyImpulse(c,d)},d.prototype.toLocalFrame=function(a,b){e.toLocalFrame(a,b,this.position,this.angle)},d.prototype.toWorldFrame=function(a,b){e.toGlobalFrame(a,b,this.position,this.angle)},d.prototype.vectorToLocalFrame=function(a,b){e.vectorToLocalFrame(a,b,this.angle)},d.prototype.vectorToWorldFrame=function(a,b){e.vectorToGlobalFrame(a,b,this.angle)},d.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var d=new f.Polygon;if(d.vertices=a,d.makeCCW(),"number"==typeof b.removeCollinearPoints&&d.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!d.isSimple())return!1;this.concavePath=d.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=d.AWAKE):(this.idleTime+=c,this.sleepState=d.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},d.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)};var x=e.create(),y=e.create();d.prototype.integrate=function(a){var b=this.invMass,c=this.force,d=this.position,f=this.velocity;e.copy(this.previousPosition,this.position),this.previousAngle=this.angle,this.fixedRotation||(this.angularVelocity+=this.angularForce*this.invInertia*a),e.scale(x,c,a*b),e.multiply(x,this.massMultiplier,x),e.add(f,x,f),this.integrateToTimeOfImpact(a)||(e.scale(y,f,a),e.add(d,d,y),this.fixedRotation||(this.angle+=this.angularVelocity*a)),this.aabbNeedsUpdate=!0};var z=new h,A=new i({mode:i.ALL}),B=e.create(),C=e.create(),D=e.create(),E=e.create();d.prototype.integrateToTimeOfImpact=function(a){if(this.ccdSpeedThreshold<0||e.squaredLength(this.velocity)=j&&ir;r++){var s=this.radius*(2*r-1);f.set(o,-q,s),f.set(p,q,s),f.toGlobalFrame(o,o,c,d),f.toGlobalFrame(p,p,c,d);var t=f.getLineSegmentsIntersectionFraction(e,g,o,p);if(t>=0&&(f.rotate(n,l,d),f.scale(n,n,2*r-1),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}for(var u=Math.pow(this.radius,2)+Math.pow(q,2),r=0;2>r;r++){f.set(o,q*(2*r-1),0),f.toGlobalFrame(o,o,c,d);var v=Math.pow(g[0]-e[0],2)+Math.pow(g[1]-e[1],2),w=2*((g[0]-e[0])*(e[0]-o[0])+(g[1]-e[1])*(e[1]-o[1])),x=Math.pow(e[0]-o[0],2)+Math.pow(e[1]-o[1],2)-Math.pow(this.radius,2),t=Math.pow(w,2)-4*v*x;if(!(0>t))if(0===t){if(f.lerp(m,e,g,t),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}else{var y=Math.sqrt(t),z=1/(2*v),A=(-w-y)*z,B=(-w+y)*z;if(A>=0&&1>=A&&(f.lerp(m,e,g,A),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,A,n,-1),a.shouldStop(b))))return;if(B>=0&&1>=B&&(f.lerp(m,e,g,B),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,B,n,-1),a.shouldStop(b))))return}}}},{"../math/vec2":30,"./Shape":45}],39:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={radius:arguments[0]},console.warn("The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })")),a=a||{},this.radius=a.radius||1,a.type=e.CIRCLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},d.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},d.prototype.computeAABB=function(a,b,c){var d=this.radius;f.set(a.upperBound,d,d),f.set(a.lowerBound,-d,-d),b&&(f.add(a.lowerBound,a.lowerBound,b),f.add(a.upperBound,a.upperBound,b))};var g=f.create(),h=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,i=b.to,j=this.radius,k=Math.pow(i[0]-e[0],2)+Math.pow(i[1]-e[1],2),l=2*((i[0]-e[0])*(e[0]-c[0])+(i[1]-e[1])*(e[1]-c[1])),m=Math.pow(e[0]-c[0],2)+Math.pow(e[1]-c[1],2)-Math.pow(j,2),n=Math.pow(l,2)-4*k*m,o=g,p=h;if(!(0>n))if(0===n)f.lerp(o,e,i,n),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,n,p,-1);else{var q=Math.sqrt(n),r=1/(2*k),s=(-l-q)*r,t=(-l+q)*r;if(s>=0&&1>=s&&(f.lerp(o,e,i,s),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,s,p,-1),a.shouldStop(b)))return;t>=0&&1>=t&&(f.lerp(o,e,i,t),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,t,p,-1))}}},{"../math/vec2":30,"./Shape":45}],40:[function(a,b,c){function d(a){Array.isArray(arguments[0])&&(a={vertices:arguments[0],axes:arguments[1]},console.warn("The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })")),a=a||{},this.vertices=[];for(var b=void 0!==a.vertices?a.vertices:[],c=0;ce)&&(e=d),(null===g||g>d)&&(g=d);if(g>e){var j=g;g=e,e=j}f.set(b,g,e)},d.prototype.projectOntoWorldAxis=function(a,b,c,d){var e=i;this.projectOntoLocalAxis(a,d),0!==c?f.rotate(e,a,c):e=a;var g=f.dot(b,e);f.set(d,d[0]+g,d[1]+g)},d.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bg;e=g,g++){var h=this.vertices[e],i=this.vertices[g],j=Math.abs(f.crossLength(h,i)),k=f.dot(i,i)+f.dot(i,h)+f.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},d.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=f.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},d.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},d.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,c=0;c!==a.length;c++){var e=a[c],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=d.triangleArea(f,g,h);this.area+=i}},d.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)};var o=f.create(),p=f.create(),q=f.create();d.prototype.raycast=function(a,b,c,d){var e=o,g=p,h=q,i=this.vertices;f.toLocalFrame(e,b.from,c,d),f.toLocalFrame(g,b.to,c,d);for(var j=i.length,k=0;j>k&&!a.shouldStop(b);k++){var l=i[k],m=i[(k+1)%j],n=f.getLineSegmentsIntersectionFraction(e,g,l,m);n>=0&&(f.sub(h,m,l),f.rotate(h,h,-Math.PI/2+d),f.normalize(h,h),b.reportIntersection(a,n,h,k))}}},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(a,b,c){function d(a){if(Array.isArray(arguments[0])){if(a={heights:arguments[0]},"object"==typeof arguments[1])for(var b in arguments[1])a[b]=arguments[1][b];console.warn("The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })")}a=a||{},this.heights=a.heights?a.heights.slice(0):[],this.maxValue=a.maxValue||null,this.minValue=a.minValue||null,this.elementWidth=a.elementWidth||.1,void 0!==a.maxValue&&void 0!==a.minValue||this.updateMaxMinValues(),a.type=e.HEIGHTFIELD,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.updateMaxMinValues=function(){for(var a=this.heights,b=a[0],c=a[0],d=0;d!==a.length;d++){var e=a[d];e>b&&(b=e),c>e&&(c=e)}this.maxValue=b,this.minValue=c},d.prototype.computeMomentOfInertia=function(a){return Number.MAX_VALUE},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.updateArea=function(){for(var a=this.heights,b=0,c=0;cs){var t=r;r=s,s=t}for(var u=0;u=0&&(f.sub(m,o,n),f.rotate(m,m,d+Math.PI/2),f.normalize(m,m),b.reportIntersection(a,v,m,-1),a.shouldStop(b)))return}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={length:arguments[0]},console.warn("The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })")),a=a||{},this.length=a.length||1,a.type=e.LINE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return a*Math.pow(this.length,2)/12},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.length/2};var g=[f.create(),f.create()];d.prototype.computeAABB=function(a,b,c){var d=this.length/2;f.set(g[0],-d,0),f.set(g[1],d,0),a.setFromPoints(g,b,c,0)};var h=(f.create(),f.create()),i=f.create(),j=f.create(),k=f.fromValues(0,1);d.prototype.raycast=function(a,b,c,d){var e=b.from,g=b.to,l=i,m=j,n=this.length/2;f.set(l,-n,0),f.set(m,n,0),f.toGlobalFrame(l,l,c,d),f.toGlobalFrame(m,m,c,d);var o=f.getLineSegmentsIntersectionFraction(l,m,e,g);if(o>=0){var p=h;f.rotate(p,k,d),b.reportIntersection(a,o,p,-1)}}},{"../math/vec2":30,"./Shape":45}],43:[function(a,b,c){function d(a){a=a||{},a.type=e.PARTICLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=0},d.prototype.computeAABB=function(a,b,c){f.copy(a.lowerBound,b),f.copy(a.upperBound,b)}},{"../math/vec2":30,"./Shape":45}],44:[function(a,b,c){function d(a){a=a||{},a.type=e.PLANE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.computeAABB=function(a,b,c){var d=c%(2*Math.PI),e=f.set,g=Number.MAX_VALUE,h=a.lowerBound,i=a.upperBound;0===d?(e(h,-g,-g),e(i,g,0)):d===Math.PI/2?(e(h,0,-g),e(i,g,g)):d===Math.PI?(e(h,-g,0),e(i,g,g)):d===3*Math.PI/2?(e(h,-g,-g),e(i,0,g)):(e(h,-g,-g),e(i,g,g)),f.add(h,h,b),f.add(i,i,b)},d.prototype.updateArea=function(){this.area=Number.MAX_VALUE};var g=f.create(),h=(f.create(),f.create(),f.create()),i=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,j=b.to,k=b.direction,l=g,m=h,n=i;f.set(m,0,1),f.rotate(m,m,d),f.sub(n,e,c);var o=f.dot(n,m);f.sub(n,j,c);var p=f.dot(n,m);if(!(o*p>0||f.squaredDistance(e,j)=w*w)break}for(d.updateMultipliers(k,q,1/a),x=0;x!==l;x++){var z=k[x];if(z instanceof i){for(var A=0,B=0;B!==z.contactEquations.length;B++)A+=z.contactEquations[B].multiplier;A*=z.frictionCoefficient/z.contactEquations.length,z.maxForce=A,z.minForce=-A}}}for(c=0;c!==g;c++){for(w=0,x=0;x!==l;x++){v=k[x];var y=d.iterateEquation(x,v,v.epsilon,u,t,q,p,a,c);w+=Math.abs(y)}if(this.usedIterations++,m>=w*w)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();d.updateMultipliers(k,q,1/a)}},d.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},d.iterateEquation=function(a,b,c,d,e,f,g,h,i){var j=d[a],k=e[a],l=f[a],m=b.computeGWlambda(),n=b.maxForce,o=b.minForce;g&&(j=0);var p=k*(j-m-c*l),q=l+p;return o*h>q?p=o*h-l:q>n*h&&(p=n*h-l),f[a]+=p,b.addToWlambda(p),p}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(a,b,c){function d(a,b){a=a||{},e.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var e=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.solve=function(a,b){throw new Error("Solver.solve should be implemented by subclasses!")};var f={bodies:[]};d.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),f.bodies.length=0,b.getBodies(f.bodies),f.bodies.length&&this.solve(a,f))},d.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},d.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},d.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},d.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},d.prototype.removeAllEquations=function(){this.equations.length=0},d.GS=1,d.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/ContactEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/FrictionEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/IslandNode"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/IslandNode":60,"./Pool":55}],51:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/Island"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/Island":58,"./Pool":55}],52:[function(a,b,c){function d(){this.overlappingShapesLastState=new e,this.overlappingShapesCurrentState=new e,this.recordPool=new f({size:16}),this.tmpDict=new e,this.tmpArray1=[]}var e=a("./TupleDictionary"),f=(a("./OverlapKeeperRecord"),a("./OverlapKeeperRecordPool"));a("./Utils");b.exports=d,d.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){var d=a.keys[c],e=a.getByKey(d);b.getByKey(d);e&&this.recordPool.release(e)}a.reset(),a.copy(b),b.reset()},d.prototype.setOverlapping=function(a,b,c,d){var e=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!e.get(b.id,d.id)){var f=this.recordPool.get();f.set(a,b,c,d),e.set(b.id,d.id,f)}},d.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},d.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},d.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},d.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},d.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},d.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b}},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(a,b,c){function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}b.exports=d,d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{}],54:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("./OverlapKeeperRecord"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=a.shapeA=a.shapeB=null,this}},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(a,b,c){function d(a){a=a||{},this.objects=[],void 0!==a.size&&this.resize(a.size)}b.exports=d,d.prototype.resize=function(a){for(var b=this.objects;b.length>a;)b.pop();for(;b.length(0|b)?a<<16|65535&b:b<<16|65535&a)},d.prototype.getByKey=function(a){return a=0|a,this.data[a]},d.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},d.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},d.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},d.prototype.copy=function(a){this.reset(),e.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":57}],57:[function(a,b,c){function d(){}b.exports=d,d.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},d.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},"undefined"!=typeof P2_ARRAY_TYPE?d.ARRAY_TYPE=P2_ARRAY_TYPE:"undefined"!=typeof Float32Array?d.ARRAY_TYPE=Float32Array:d.ARRAY_TYPE=Array,d.extend=function(a,b){for(var c in b)a[c]=b[c]},d.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],58:[function(a,b,c){function d(){this.equations=[],this.bodies=[]}var e=a("../objects/Body");b.exports=d,d.prototype.reset=function(){this.equations.length=this.bodies.length=0};var f=[];d.prototype.getBodies=function(a){var b=a||[],c=this.equations;f.length=0;for(var d=0;d!==c.length;d++){var e=c[d];-1===f.indexOf(e.bodyA.id)&&(b.push(e.bodyA),f.push(e.bodyA.id)),-1===f.indexOf(e.bodyB.id)&&(b.push(e.bodyB),f.push(e.bodyB.id))}return b},d.prototype.wantsToSleep=function(){for(var a=0;a=a&&c>d;)this.internalStep(a),this.time+=a,this.accumulator-=a,d++;for(var e=this.accumulator%a/a,g=0;g!==this.bodies.length;g++){var h=this.bodies[g];f.lerp(h.interpolatedPosition,h.previousPosition,h.position,e),h.interpolatedAngle=h.previousAngle+e*(h.angle-h.previousAngle)}}};var y=[];d.prototype.internalStep=function(a){this.stepping=!0;var b=this.springs.length,c=this.springs,e=this.bodies,g=this.gravity,h=this.solver,i=this.bodies.length,j=this.broadphase,k=this.narrowphase,l=this.constraints,n=v,o=(f.scale,f.add),p=(f.rotate,this.islandManager);if(this.overlapKeeper.tick(),this.lastTimeStep=a,this.useWorldGravityAsFrictionGravity){var q=f.length(this.gravity);0===q&&this.useFrictionGravityOnZeroGravity||(this.frictionGravity=q)}if(this.applyGravity)for(var r=0;r!==i;r++){var t=e[r],u=t.force;t.type===m.DYNAMIC&&t.sleepState!==m.SLEEPING&&(f.scale(n,g,t.mass*t.gravityScale),o(u,u,n))}if(this.applySpringForces)for(var r=0;r!==b;r++){var w=c[r];w.applyForce()}if(this.applyDamping)for(var r=0;r!==i;r++){var t=e[r];t.type===m.DYNAMIC&&t.applyDamping(a)}for(var x=j.getCollisionPairs(this),z=this.disabledBodyCollisionPairs,r=z.length-2;r>=0;r-=2)for(var A=x.length-2;A>=0;A-=2)(z[r]===x[A]&&z[r+1]===x[A+1]||z[r+1]===x[A]&&z[r]===x[A+1])&&x.splice(A,2);var B=l.length;for(r=0;r!==B;r++){var C=l[r];if(!C.collideConnected)for(var A=x.length-2;A>=0;A-=2)(C.bodyA===x[A]&&C.bodyB===x[A+1]||C.bodyB===x[A]&&C.bodyA===x[A+1])&&x.splice(A,2)}this.postBroadphaseEvent.pairs=x,this.emit(this.postBroadphaseEvent),this.postBroadphaseEvent.pairs=null,k.reset(this);for(var r=0,D=x.length;r!==D;r+=2)for(var E=x[r],F=x[r+1],G=0,H=E.shapes.length;G!==H;G++)for(var I=E.shapes[G],J=I.position,K=I.angle,L=0,M=F.shapes.length;L!==M;L++){var N=F.shapes[L],O=N.position,P=N.angle,Q=this.defaultContactMaterial;if(I.material&&N.material){var R=this.getContactMaterial(I.material,N.material);R&&(Q=R)}this.runNarrowphase(k,E,I,J,K,F,N,O,P,Q,this.frictionGravity)}for(var r=0;r!==i;r++){var S=e[r];S._wakeUpAfterNarrowphase&&(S.wakeUp(),S._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(y);for(var T=this.endContactEvent,L=y.length;L--;){var U=y[L];T.shapeA=U.shapeA,T.shapeB=U.shapeB,T.bodyA=U.bodyA,T.bodyB=U.bodyB,this.emit(T)}y.length=0}var V=this.preSolveEvent;V.contactEquations=k.contactEquations,V.frictionEquations=k.frictionEquations,this.emit(V),V.contactEquations=V.frictionEquations=null;var B=l.length;for(r=0;r!==B;r++)l[r].update();if(k.contactEquations.length||k.frictionEquations.length||B)if(this.islandSplit){for(p.equations.length=0,s.appendArray(p.equations,k.contactEquations),s.appendArray(p.equations,k.frictionEquations),r=0;r!==B;r++)s.appendArray(p.equations,l[r].equations);p.split(this);for(var r=0;r!==p.islands.length;r++){var W=p.islands[r];W.equations.length&&h.solveIsland(a,W)}}else{for(h.addEquations(k.contactEquations),h.addEquations(k.frictionEquations),r=0;r!==B;r++)h.addEquations(l[r].equations);this.solveConstraints&&h.solve(a,this),h.removeAllEquations()}for(var r=0;r!==i;r++){var S=e[r];S.integrate(a)}for(var r=0;r!==i;r++)e[r].setZeroForce();if(this.emitImpactEvent&&this.has("impact"))for(var X=this.impactEvent,r=0;r!==k.contactEquations.length;r++){var Y=k.contactEquations[r];Y.firstImpact&&(X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.contactEquation=Y,this.emit(X))}if(this.sleepMode===d.BODY_SLEEPING)for(r=0;r!==i;r++)e[r].sleepTick(this.time,!1,a);else if(this.sleepMode===d.ISLAND_SLEEPING&&this.islandSplit){for(r=0;r!==i;r++)e[r].sleepTick(this.time,!0,a);for(var r=0;r0,a.frictionCoefficient=k.friction;var p;p=b.type===m.STATIC||b.type===m.KINEMATIC?g.mass:g.type===m.STATIC||g.type===m.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*l*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize,a.enabledEquations=b.collisionResponse&&g.collisionResponse&&c.collisionResponse&&h.collisionResponse;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*y&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===m.DYNAMIC&&g.sleepState===m.SLEEPING&&b.sleepState===m.AWAKE&&b.type!==m.STATIC){var z=f.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),A=Math.pow(b.sleepSpeedLimit,2);z>=2*A&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var B=this.beginContactEvent;if(B.shapeA=c,B.shapeB=h,B.bodyA=b,B.bodyB=g,B.contactEquations.length=0,"number"==typeof r)for(var C=a.contactEquations.length-r;C1)for(var C=a.frictionEquations.length-u;C=0;b--)this.removeConstraint(a[b]);for(var c=this.bodies,b=c.length-1;b>=0;b--)this.removeBody(c[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);d.apply(this)};var z=f.create(),A=(f.fromValues(0,0),f.fromValues(0,0));d.prototype.hitTest=function(a,b,c){c=c||0;var d=new m({position:a}),e=new k,l=a,n=0,o=z,p=A;d.addShape(e);for(var q=this.narrowphase,r=[],s=0,t=b.length;s!==t;s++)for(var u=b[s],v=0,w=u.shapes.length;v!==w;v++){var x=u.shapes[v];f.rotate(o,x.position,u.angle),f.add(o,o,u.position);var y=x.angle+u.angle;(x instanceof g&&q.circleParticle(u,x,o,y,d,e,l,n,!0)||x instanceof h&&q.particleConvex(d,e,l,n,u,x,o,y,!0)||x instanceof i&&q.particlePlane(d,e,l,n,u,x,o,y,!0)||x instanceof j&&q.particleCapsule(d,e,l,n,u,x,o,y,!0)||x instanceof k&&f.squaredLength(f.sub(p,o,a))=0&&i<=1&&j>=0&&j<=1}},{"./Scalar":4}],2:[function(a,b,c){function d(){}b.exports=d,d.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},d.left=function(a,b,c){return d.area(a,b,c)>0},d.leftOn=function(a,b,c){return d.area(a,b,c)>=0},d.right=function(a,b,c){return d.area(a,b,c)<0},d.rightOn=function(a,b,c){return d.area(a,b,c)<=0};var e=[],f=[];d.collinear=function(a,b,c,g){if(g){var h=e,i=f;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=c[0]-b[0],i[1]=c[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return ma.vertices.length)throw new Error("lol2");if(b<0)throw new Error("lol3");for(var d=b;db[a][0])&&(a=c);g.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},d.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},d.prototype.isReflex=function(a){return g.right(this.at(a-1),this.at(a),this.at(a+1))};var i=[],j=[];d.prototype.canSee=function(a,b){var c,d,e=i,h=j;if(g.leftOn(this.at(a+1),this.at(a),this.at(b))&&g.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=g.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&g.leftOn(this.at(a),this.at(b),this.at(k+1))&&g.rightOn(this.at(a),this.at(b),this.at(k))&&(e[0]=this.at(a),e[1]=this.at(b),h[0]=this.at(k),h[1]=this.at(k+1),c=f.lineInt(e,h),g.sqdist(this.at(a),c)0?this.slice(a):[this]},d.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;ch)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xq&&(q+=this.vertices.length),p=Number.MAX_VALUE,q3&&c>=0;--c)g.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b,c){function d(){}b.exports=d,d.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b,c){function d(a){this.lowerBound=e.create(),a&&a.lowerBound&&e.copy(this.lowerBound,a.lowerBound),this.upperBound=e.create(),a&&a.upperBound&&e.copy(this.upperBound,a.upperBound)}var e=a("../math/vec2");a("../utils/Utils");b.exports=d;var f=e.create();d.prototype.setFromPoints=function(a,b,c,d){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?e.rotate(g,a[0],c):e.copy(g,a[0]),e.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;kh[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b,c){function d(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=d.AABB}var e=a("../math/vec2"),f=a("../objects/Body");b.exports=d,d.AABB=1,d.BOUNDING_CIRCLE=2,d.prototype.setWorld=function(a){this.world=a},d.prototype.getCollisionPairs=function(a){};var g=e.create();d.boundingRadiusCheck=function(a,b){e.sub(g,a.position,b.position);var c=e.squaredLength(g),d=a.boundingRadius+b.boundingRadius;return c<=d*d},d.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},d.prototype.boundingVolumeCheck=function(a,b){var c;switch(this.boundingVolumeType){case d.BOUNDING_CIRCLE:c=d.boundingRadiusCheck(a,b);break;case d.AABB:c=d.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return c},d.canCollide=function(a,b){var c=f.KINEMATIC,d=f.STATIC;return(a.type!==d||b.type!==d)&&(!(a.type===c&&b.type===d||a.type===d&&b.type===c)&&((a.type!==c||b.type!==c)&&((a.sleepState!==f.SLEEPING||b.sleepState!==f.SLEEPING)&&!(a.sleepState===f.SLEEPING&&b.type===d||b.sleepState===f.SLEEPING&&a.type===d))))},d.NAIVE=1,d.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b,c){function d(){e.call(this,e.NAIVE)}var e=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var d=0,f=b.length;d!==f;d++)for(var g=b[d],h=0;hW&&V0)for(var N=0;NMath.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,f);return h(q.normalA,j,c),g.normalize(q.normalA,q.normalA),g.scale(q.contactPointA,q.normalA,m),g.scale(q.contactPointB,q.normalA,-n),i(q.contactPointA,q.contactPointA,c),h(q.contactPointA,q.contactPointA,a.position),i(q.contactPointB,q.contactPointB,j),h(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},d.prototype[q.PLANE|q.CONVEX]=d.prototype[q.PLANE|q.BOX]=d.prototype.planeConvex=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=0;g.rotate(o,s,d);for(var r=0;r!==f.vertices.length;r++){var w=f.vertices[r];if(g.rotate(n,w,l),i(n,n,k),h(p,n,c),j(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,f);h(p,n,c),g.copy(x.normalA,o);var y=j(p,x.normalA);g.scale(p,x.normalA,y),h(x.contactPointB,n,e.position),h(x.contactPointA,n,p),h(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},d.prototype[q.PARTICLE|q.PLANE]=d.prototype.particlePlane=function(a,b,c,d,e,f,i,k,l){var m=t,n=u;k=k||0,h(m,c,i),g.rotate(n,s,k);var o=j(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,f,b);return g.copy(p.normalA,n),g.scale(m,p.normalA,o),h(p.contactPointA,c,m),h(p.contactPointA,p.contactPointA,e.position),h(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},d.prototype[q.CIRCLE|q.PARTICLE]=d.prototype.circleParticle=function(a,b,c,d,e,f,j,k,l){var m=t;if(h(m,j,c),g.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,f);return g.copy(n.normalA,m),g.normalize(n.normalA,n.normalA),g.scale(n.contactPointA,n.normalA,b.radius),i(n.contactPointA,n.contactPointA,c),h(n.contactPointA,n.contactPointA,a.position),h(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};var X=new o({radius:1}),Y=g.create(),Z=g.create();g.create();d.prototype[q.PLANE|q.CAPSULE]=d.prototype.planeCapsule=function(a,b,c,d,e,f,h,j,k){var l=Y,m=Z,n=X;g.set(l,-f.length/2,0),g.rotate(l,l,j),i(l,l,h),g.set(m,f.length/2,0),g.rotate(m,m,j),i(m,m,h),n.radius=f.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},d.prototype[q.CIRCLE|q.PLANE]=d.prototype.circlePlane=function(a,b,c,d,e,f,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;h(x,p,r),g.rotate(y,s,w);var A=j(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,f,b);return g.copy(B.normalA,y),g.scale(B.contactPointB,B.normalA,-o.radius),i(B.contactPointB,B.contactPointB,p),h(B.contactPointB,B.contactPointB,n.position),g.scale(z,B.normalA,A),h(B.contactPointA,x,z),i(B.contactPointA,B.contactPointA,r),h(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},d.prototype[q.CONVEX]=d.prototype[q.CONVEX|q.BOX]=d.prototype[q.BOX]=d.prototype.convexConvex=function(a,b,c,e,f,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0,G=d.findSeparatingAxis(b,c,e,k,l,m,p);if(!G)return 0;h(D,l,c),j(p,D)>0&&g.scale(p,p,-1);var H=d.getClosestEdge(b,e,p,!0),I=d.getClosestEdge(k,m,p);if(H===-1||I===-1)return 0;for(var J=0;J<2;J++){var K=H,L=I,M=b,N=k,O=c,P=l,Q=e,R=m,S=a,T=f;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;V=3){if(n)return!0;var aa=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];g.rotate(r,Z,Q),g.rotate(s,$,Q),i(r,r,O),i(s,s,O),h(y,s,r),g.rotate90cw(aa.normalA,y),g.normalize(aa.normalA,aa.normalA),h(D,q,r);var _=j(aa.normalA,D);g.scale(C,aa.normalA,_),h(aa.contactPointA,q,O),h(aa.contactPointA,aa.contactPointA,C),i(aa.contactPointA,aa.contactPointA,O),h(aa.contactPointA,aa.contactPointA,S.position),h(aa.contactPointB,q,P),i(aa.contactPointB,aa.contactPointB,P),h(aa.contactPointB,aa.contactPointB,T.position),this.contactEquations.push(aa),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(aa))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var $=g.fromValues(0,0);d.projectConvexOntoAxis=function(a,b,c,d,e){var f,h,i=null,k=null,l=$;g.rotate(l,d,-c);for(var m=0;mi)&&(i=h),(null===k||hi){var n=k;k=i,i=n}var o=j(b,d);g.set(e,k+o,i+o)};var _=g.fromValues(0,0),aa=g.fromValues(0,0),ba=g.fromValues(0,0),ca=g.fromValues(0,0),da=g.fromValues(0,0),ea=g.fromValues(0,0);d.findSeparatingAxis=function(a,b,c,e,f,i,j){var k=null,l=!1,m=!1,n=_,o=aa,p=ba,q=ca,s=da,t=ea;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?g.set(q,0,1):1===x&&g.set(q,1,0),0!==w&&g.rotate(q,q,w),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=B<=0,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){g.rotate(o,v.vertices[x],w),g.rotate(p,v.vertices[(x+1)%v.vertices.length],w),h(n,p,o),g.rotate90cw(q,n),g.normalize(q,q),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=B<=0,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}return m};var fa=g.fromValues(0,0),ga=g.fromValues(0,0),ha=g.fromValues(0,0);d.getClosestEdge=function(a,b,c,d){var e=fa,f=ga,i=ha;g.rotate(e,c,-b),d&&g.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){h(f,a.vertices[(n+1)%l],a.vertices[n%l]),g.rotate90cw(i,f),g.normalize(i,i);var o=j(i,e);(k===-1||o>m)&&(k=n%l,m=o)}return k};var ia=g.create(),ja=g.create(),ka=g.create(),la=g.create(),ma=g.create(),na=g.create(),oa=g.create();d.prototype[q.CIRCLE|q.HEIGHTFIELD]=d.prototype.circleHeightfield=function(a,b,c,d,e,f,j,k,l,m){var n=f.heights,m=m||b.radius,o=f.elementWidth,p=ja,q=ia,r=ma,s=oa,t=na,u=ka,v=la,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);w<0&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;Ay&&(y=n[A]);if(c[1]-m>y)return!l&&0;for(var B=!1,A=w;A=u[0]&&q[0]0)for(var A=w;A<=x;A++)if(g.set(u,A*o,n[A]),g.add(u,u,j),g.sub(p,c,u),g.squaredLength(p)=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;us&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return!j&&0;for(var v=0,u=q;u=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var g=f.create();d.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=g,e=0,h=b.shapes.length;eb.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,d,c),this._currentBody=this._currentShape=null)},d.prototype.getAABB=function(a){var b=this.to,c=this.from;f.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),f.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};f.create();d.prototype.reportIntersection=function(a,b,c,e){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&f.dot(c,this.direction)>0))switch(this.mode){case d.ALL:a.set(c,g,h,b,e),this.callback(a);break;case d.CLOSEST:(b=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},d.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;d.sortAxisList(a,b)},d.prototype.getCollisionPairs=function(a){var b=this.axisList,c=this.result,d=this.axisIndex;c.length=0;for(var e=b.length;e--;){var g=b[e];g.aabbNeedsUpdate&&g.updateAABB()}this.sortList();for(var h=0,i=0|b.length;h!==i;h++)for(var j=b[h],k=h+1;kthis.upperLimit&&(f.maxForce=0,f.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)h.scale(e.normalA,j,-1),h.sub(e.contactPointA,k,g.position),h.sub(e.contactPointB,l,i.position),h.scale(o,j,c),h.add(e.contactPointA,e.contactPointA,o),a.indexOf(e)===-1&&a.push(e);else{var u=a.indexOf(e);u!==-1&&a.splice(u,1)}if(this.lowerLimitEnabled&&sh)o.angle=h,e.indexOf(o)===-1&&e.push(o);else{var r=e.indexOf(o);r!==-1&&e.splice(r,1)}if(this.lowerLimitEnabled&&q>1;if(b<3)return[];for(var c=[],e=[],f=0;f3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(d._convex(k,l,m,n,o,p)){q=!0;for(var r=0;r3*g)break}return c.push(e[0],e[1],e[2]),c},d._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&u+v<1},d._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=d},{}],30:[function(a,b,c){var d=b.exports={},e=a("../utils/Utils");d.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},d.crossVZ=function(a,b,c){return d.rotate(a,b,-Math.PI/2),d.scale(a,a,c),a},d.crossZV=function(a,b,c){return d.rotate(a,c,Math.PI/2),d.scale(a,a,b),a},d.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},d.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},d.toLocalFrame=function(a,b,c,e){d.copy(a,b),d.sub(a,a,c),d.rotate(a,a,-e)},d.toGlobalFrame=function(a,b,c,e){d.copy(a,b),d.rotate(a,a,e),d.add(a,a,c)},d.vectorToLocalFrame=function(a,b,c){d.rotate(a,b,-c)},d.vectorToGlobalFrame=function(a,b,c){d.rotate(a,b,c)},d.centroid=function(a,b,c,e){return d.add(a,b,c),d.add(a,a,e),d.scale(a,a,1/3),a},d.create=function(){var a=new e.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},d.clone=function(a){var b=new e.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},d.fromValues=function(a,b){var c=new e.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},d.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},d.set=function(a,b,c){return a[0]=b,a[1]=c,a},d.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},d.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},d.sub=d.subtract,d.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},d.mul=d.multiply,d.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},d.div=d.divide,d.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},d.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},d.dist=d.distance,d.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},d.sqrDist=d.squaredDistance,d.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},d.len=d.length,d.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},d.sqrLen=d.squaredLength,d.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},d.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},d.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},d.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},d.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},d.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},d.getLineSegmentsIntersection=function(a,b,c,e,f){var g=d.getLineSegmentsIntersectionFraction(b,c,e,f);return!(g<0)&&(a[0]=b[0]+g*(c[0]-b[0]),a[1]=b[1]+g*(c[1]-b[1]),!0)},d.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&e<=1&&f>=0&&f<=1?f:-1}},{"../utils/Utils":57}],31:[function(a,b,c){function d(a){a=a||{},k.call(this),this.id=a.id||++d._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=e.create(),this.position=e.fromValues(0,0),a.position&&e.copy(this.position,a.position),this.interpolatedPosition=e.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=e.fromValues(0,0),this.previousAngle=0,this.velocity=e.fromValues(0,0),a.velocity&&e.copy(this.velocity,a.velocity),this.vlambda=e.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=e.create(),a.force&&e.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=d.STATIC,"undefined"!=typeof a.type?this.type=a.type:a.mass?this.type=d.DYNAMIC:this.type=d.STATIC,this.boundingRadius=0,this.aabb=new j,this.aabbNeedsUpdate=!0,this.allowSleep=void 0===a.allowSleep||a.allowSleep,
+this.wantsToSleep=!1,this.sleepState=d.AWAKE,this.sleepSpeedLimit=void 0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void 0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void 0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void 0===a.collisionResponse||a.collisionResponse,this.idleTime=0,this.timeLastSleepy=0,this.ccdSpeedThreshold=void 0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void 0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var e=a("../math/vec2"),f=a("poly-decomp"),g=a("../shapes/Convex"),h=a("../collision/RaycastResult"),i=a("../collision/Ray"),j=a("../collision/AABB"),k=a("../events/EventEmitter");b.exports=d,d.prototype=new k,d.prototype.constructor=d,d._idCounter=0,d.prototype.updateSolveMassProperties=function(){this.sleepState===d.SLEEPING||this.type===d.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},d.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},d.prototype.getArea=function(){for(var a=0,b=0;bc&&(c=g+h)}this.boundingRadius=c},d.prototype.addShape=function(a,b,c){if(a.body)throw new Error("A shape can only be added to one body.");a.body=this,b?e.copy(a.position,b):e.set(a.position,0,0),a.angle=c||0,this.shapes.push(a),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},d.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return b!==-1&&(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0)},d.prototype.updateMassProperties=function(){if(this.type===d.STATIC||this.type===d.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,c=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;g0?1/f:0}this.invMass=1/this.mass,e.set(this.massMultiplier,this.fixedX?0:1,this.fixedY?0:1)}};e.create();d.prototype.applyForce=function(a,b){if(e.add(this.force,this.force,a),b){var c=e.crossLength(b,a);this.angularForce+=c}};var n=e.create(),o=e.create(),p=e.create();d.prototype.applyForceLocal=function(a,b){b=b||p;var c=n,d=o;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};var q=e.create();d.prototype.applyImpulse=function(a,b){if(this.type===d.DYNAMIC){var c=q;if(e.scale(c,a,this.invMass),e.multiply(c,this.massMultiplier,c),e.add(this.velocity,c,this.velocity),b){var f=e.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};var r=e.create(),s=e.create(),t=e.create();d.prototype.applyImpulseLocal=function(a,b){b=b||t;var c=r,d=s;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyImpulse(c,d)},d.prototype.toLocalFrame=function(a,b){e.toLocalFrame(a,b,this.position,this.angle)},d.prototype.toWorldFrame=function(a,b){e.toGlobalFrame(a,b,this.position,this.angle)},d.prototype.vectorToLocalFrame=function(a,b){e.vectorToLocalFrame(a,b,this.angle)},d.prototype.vectorToWorldFrame=function(a,b){e.vectorToGlobalFrame(a,b,this.angle)},d.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var d=new f.Polygon;if(d.vertices=a,d.makeCCW(),"number"==typeof b.removeCollinearPoints&&d.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!d.isSimple())return!1;this.concavePath=d.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=d.AWAKE):(this.idleTime+=c,this.sleepState=d.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},d.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)};var x=e.create(),y=e.create();d.prototype.integrate=function(a){var b=this.invMass,c=this.force,d=this.position,f=this.velocity;e.copy(this.previousPosition,this.position),this.previousAngle=this.angle,this.fixedRotation||(this.angularVelocity+=this.angularForce*this.invInertia*a),e.scale(x,c,a*b),e.multiply(x,this.massMultiplier,x),e.add(f,x,f),this.integrateToTimeOfImpact(a)||(e.scale(y,f,a),e.add(d,d,y),this.fixedRotation||(this.angle+=this.angularVelocity*a)),this.aabbNeedsUpdate=!0};var z=new h,A=new i({mode:i.ALL}),B=e.create(),C=e.create(),D=e.create(),E=e.create();d.prototype.integrateToTimeOfImpact=function(a){if(this.ccdSpeedThreshold<0||e.squaredLength(this.velocity)=j&&i=0&&(f.rotate(n,l,d),f.scale(n,n,2*r-1),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}for(var u=Math.pow(this.radius,2)+Math.pow(q,2),r=0;r<2;r++){f.set(o,q*(2*r-1),0),f.toGlobalFrame(o,o,c,d);var v=Math.pow(g[0]-e[0],2)+Math.pow(g[1]-e[1],2),w=2*((g[0]-e[0])*(e[0]-o[0])+(g[1]-e[1])*(e[1]-o[1])),x=Math.pow(e[0]-o[0],2)+Math.pow(e[1]-o[1],2)-Math.pow(this.radius,2),t=Math.pow(w,2)-4*v*x;if(!(t<0))if(0===t){if(f.lerp(m,e,g,t),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}else{var y=Math.sqrt(t),z=1/(2*v),A=(-w-y)*z,B=(-w+y)*z;if(A>=0&&A<=1&&(f.lerp(m,e,g,A),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,A,n,-1),a.shouldStop(b))))return;if(B>=0&&B<=1&&(f.lerp(m,e,g,B),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,B,n,-1),a.shouldStop(b))))return}}}},{"../math/vec2":30,"./Shape":45}],39:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={radius:arguments[0]},console.warn("The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })")),a=a||{},this.radius=a.radius||1,a.type=e.CIRCLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},d.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},d.prototype.computeAABB=function(a,b,c){var d=this.radius;f.set(a.upperBound,d,d),f.set(a.lowerBound,-d,-d),b&&(f.add(a.lowerBound,a.lowerBound,b),f.add(a.upperBound,a.upperBound,b))};var g=f.create(),h=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,i=b.to,j=this.radius,k=Math.pow(i[0]-e[0],2)+Math.pow(i[1]-e[1],2),l=2*((i[0]-e[0])*(e[0]-c[0])+(i[1]-e[1])*(e[1]-c[1])),m=Math.pow(e[0]-c[0],2)+Math.pow(e[1]-c[1],2)-Math.pow(j,2),n=Math.pow(l,2)-4*k*m,o=g,p=h;if(!(n<0))if(0===n)f.lerp(o,e,i,n),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,n,p,-1);else{var q=Math.sqrt(n),r=1/(2*k),s=(-l-q)*r,t=(-l+q)*r;if(s>=0&&s<=1&&(f.lerp(o,e,i,s),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,s,p,-1),a.shouldStop(b)))return;t>=0&&t<=1&&(f.lerp(o,e,i,t),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,t,p,-1))}}},{"../math/vec2":30,"./Shape":45}],40:[function(a,b,c){function d(a){Array.isArray(arguments[0])&&(a={vertices:arguments[0],axes:arguments[1]},console.warn("The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })")),a=a||{},this.vertices=[];for(var b=void 0!==a.vertices?a.vertices:[],c=0;ce)&&(e=d),(null===g||de){var j=g;g=e,e=j}f.set(b,g,e)},d.prototype.projectOntoWorldAxis=function(a,b,c,d){var e=i;this.projectOntoLocalAxis(a,d),0!==c?f.rotate(e,a,c):e=a;var g=f.dot(b,e);f.set(d,d[0]+g,d[1]+g)},d.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bb&&(b=d)}this.boundingRadius=Math.sqrt(b)},d.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},d.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,c=0;c!==a.length;c++){var e=a[c],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=d.triangleArea(f,g,h);this.area+=i}},d.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)};var o=f.create(),p=f.create(),q=f.create();d.prototype.raycast=function(a,b,c,d){var e=o,g=p,h=q,i=this.vertices;f.toLocalFrame(e,b.from,c,d),f.toLocalFrame(g,b.to,c,d);for(var j=i.length,k=0;k=0&&(f.sub(h,m,l),f.rotate(h,h,-Math.PI/2+d),f.normalize(h,h),b.reportIntersection(a,n,h,k))}}},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(a,b,c){function d(a){if(Array.isArray(arguments[0])){if(a={heights:arguments[0]},"object"==typeof arguments[1])for(var b in arguments[1])a[b]=arguments[1][b];console.warn("The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })")}a=a||{},this.heights=a.heights?a.heights.slice(0):[],this.maxValue=a.maxValue||null,this.minValue=a.minValue||null,this.elementWidth=a.elementWidth||.1,void 0!==a.maxValue&&void 0!==a.minValue||this.updateMaxMinValues(),a.type=e.HEIGHTFIELD,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.updateMaxMinValues=function(){for(var a=this.heights,b=a[0],c=a[0],d=0;d!==a.length;d++){var e=a[d];e>b&&(b=e),es){var t=r;r=s,s=t}for(var u=0;u=0&&(f.sub(m,o,n),f.rotate(m,m,d+Math.PI/2),f.normalize(m,m),b.reportIntersection(a,v,m,-1),a.shouldStop(b)))return}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={length:arguments[0]},console.warn("The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })")),a=a||{},this.length=a.length||1,a.type=e.LINE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return a*Math.pow(this.length,2)/12},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.length/2};var g=[f.create(),f.create()];d.prototype.computeAABB=function(a,b,c){var d=this.length/2;f.set(g[0],-d,0),f.set(g[1],d,0),a.setFromPoints(g,b,c,0)};var h=(f.create(),f.create()),i=f.create(),j=f.create(),k=f.fromValues(0,1);d.prototype.raycast=function(a,b,c,d){var e=b.from,g=b.to,l=i,m=j,n=this.length/2;f.set(l,-n,0),f.set(m,n,0),f.toGlobalFrame(l,l,c,d),f.toGlobalFrame(m,m,c,d);var o=f.getLineSegmentsIntersectionFraction(l,m,e,g);if(o>=0){var p=h;f.rotate(p,k,d),b.reportIntersection(a,o,p,-1)}}},{"../math/vec2":30,"./Shape":45}],43:[function(a,b,c){function d(a){a=a||{},a.type=e.PARTICLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=0},d.prototype.computeAABB=function(a,b,c){f.copy(a.lowerBound,b),f.copy(a.upperBound,b)}},{"../math/vec2":30,"./Shape":45}],44:[function(a,b,c){function d(a){a=a||{},a.type=e.PLANE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.computeAABB=function(a,b,c){var d=c%(2*Math.PI),e=f.set,g=Number.MAX_VALUE,h=a.lowerBound,i=a.upperBound;0===d?(e(h,-g,-g),e(i,g,0)):d===Math.PI/2?(e(h,0,-g),e(i,g,g)):d===Math.PI?(e(h,-g,0),e(i,g,g)):d===3*Math.PI/2?(e(h,-g,-g),e(i,0,g)):(e(h,-g,-g),e(i,g,g)),f.add(h,h,b),f.add(i,i,b)},d.prototype.updateArea=function(){this.area=Number.MAX_VALUE};var g=f.create(),h=(f.create(),f.create(),f.create()),i=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,j=b.to,k=b.direction,l=g,m=h,n=i;f.set(m,0,1),f.rotate(m,m,d),f.sub(n,e,c);var o=f.dot(n,m);f.sub(n,j,c);var p=f.dot(n,m);if(!(o*p>0||f.squaredDistance(e,j)n*h&&(p=n*h-l),f[a]+=p,b.addToWlambda(p),p}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(a,b,c){function d(a,b){a=a||{},e.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var e=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.solve=function(a,b){throw new Error("Solver.solve should be implemented by subclasses!")};var f={bodies:[]};d.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),f.bodies.length=0,b.getBodies(f.bodies),f.bodies.length&&this.solve(a,f))},d.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},d.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},d.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},d.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);b!==-1&&this.equations.splice(b,1)},d.prototype.removeAllEquations=function(){this.equations.length=0},d.GS=1,d.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/ContactEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/FrictionEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/IslandNode"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/IslandNode":60,"./Pool":55}],51:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/Island"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/Island":58,"./Pool":55}],52:[function(a,b,c){function d(){this.overlappingShapesLastState=new e,this.overlappingShapesCurrentState=new e,this.recordPool=new f({size:16}),this.tmpDict=new e,this.tmpArray1=[]}var e=a("./TupleDictionary"),f=(a("./OverlapKeeperRecord"),a("./OverlapKeeperRecordPool"));a("./Utils");b.exports=d,d.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){var d=a.keys[c],e=a.getByKey(d);b.getByKey(d);e&&this.recordPool.release(e)}a.reset(),a.copy(b),b.reset()},d.prototype.setOverlapping=function(a,b,c,d){var e=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!e.get(b.id,d.id)){var f=this.recordPool.get();f.set(a,b,c,d),e.set(b.id,d.id,f)}},d.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},d.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},d.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},d.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},d.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},d.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b}},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(a,b,c){function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}b.exports=d,d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{}],54:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("./OverlapKeeperRecord"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=a.shapeA=a.shapeB=null,this}},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(a,b,c){function d(a){a=a||{},this.objects=[],void 0!==a.size&&this.resize(a.size)}b.exports=d,d.prototype.resize=function(a){for(var b=this.objects;b.length>a;)b.pop();for(;b.length(0|b)?a<<16|65535&b:b<<16|65535&a)},d.prototype.getByKey=function(a){return a=0|a,this.data[a]},d.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},d.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},d.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},d.prototype.copy=function(a){this.reset(),e.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":57}],57:[function(a,b,c){function d(){}b.exports=d,d.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},d.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;d=a&&d=0;r-=2)for(var A=x.length-2;A>=0;A-=2)(z[r]===x[A]&&z[r+1]===x[A+1]||z[r+1]===x[A]&&z[r]===x[A+1])&&x.splice(A,2);var B=l.length;for(r=0;r!==B;r++){var C=l[r];if(!C.collideConnected)for(var A=x.length-2;A>=0;A-=2)(C.bodyA===x[A]&&C.bodyB===x[A+1]||C.bodyB===x[A]&&C.bodyA===x[A+1])&&x.splice(A,2)}this.postBroadphaseEvent.pairs=x,this.emit(this.postBroadphaseEvent),this.postBroadphaseEvent.pairs=null,k.reset(this);for(var r=0,D=x.length;r!==D;r+=2)for(var E=x[r],F=x[r+1],G=0,H=E.shapes.length;G!==H;G++)for(var I=E.shapes[G],J=I.position,K=I.angle,L=0,M=F.shapes.length;L!==M;L++){var N=F.shapes[L],O=N.position,P=N.angle,Q=this.defaultContactMaterial;if(I.material&&N.material){var R=this.getContactMaterial(I.material,N.material);R&&(Q=R)}this.runNarrowphase(k,E,I,J,K,F,N,O,P,Q,this.frictionGravity)}for(var r=0;r!==i;r++){var S=e[r];S._wakeUpAfterNarrowphase&&(S.wakeUp(),S._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(y);for(var T=this.endContactEvent,L=y.length;L--;){var U=y[L];T.shapeA=U.shapeA,T.shapeB=U.shapeB,T.bodyA=U.bodyA,T.bodyB=U.bodyB,this.emit(T)}y.length=0}var V=this.preSolveEvent;V.contactEquations=k.contactEquations,V.frictionEquations=k.frictionEquations,this.emit(V),V.contactEquations=V.frictionEquations=null;var B=l.length;for(r=0;r!==B;r++)l[r].update();if(k.contactEquations.length||k.frictionEquations.length||B)if(this.islandSplit){for(p.equations.length=0,s.appendArray(p.equations,k.contactEquations),s.appendArray(p.equations,k.frictionEquations),r=0;r!==B;r++)s.appendArray(p.equations,l[r].equations);p.split(this);for(var r=0;r!==p.islands.length;r++){var W=p.islands[r];W.equations.length&&h.solveIsland(a,W)}}else{for(h.addEquations(k.contactEquations),h.addEquations(k.frictionEquations),r=0;r!==B;r++)h.addEquations(l[r].equations);this.solveConstraints&&h.solve(a,this),h.removeAllEquations()}for(var r=0;r!==i;r++){var S=e[r];S.integrate(a)}for(var r=0;r!==i;r++)e[r].setZeroForce();if(this.emitImpactEvent&&this.has("impact"))for(var X=this.impactEvent,r=0;r!==k.contactEquations.length;r++){var Y=k.contactEquations[r];Y.firstImpact&&(X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.contactEquation=Y,this.emit(X))}if(this.sleepMode===d.BODY_SLEEPING)for(r=0;r!==i;r++)e[r].sleepTick(this.time,!1,a);else if(this.sleepMode===d.ISLAND_SLEEPING&&this.islandSplit){for(r=0;r!==i;r++)e[r].sleepTick(this.time,!0,a);for(var r=0;r0,a.frictionCoefficient=k.friction;var p;p=b.type===m.STATIC||b.type===m.KINEMATIC?g.mass:g.type===m.STATIC||g.type===m.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*l*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize,a.enabledEquations=b.collisionResponse&&g.collisionResponse&&c.collisionResponse&&h.collisionResponse;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*y&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===m.DYNAMIC&&g.sleepState===m.SLEEPING&&b.sleepState===m.AWAKE&&b.type!==m.STATIC){var z=f.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),A=Math.pow(b.sleepSpeedLimit,2);z>=2*A&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var B=this.beginContactEvent;if(B.shapeA=c,B.shapeB=h,B.bodyA=b,B.bodyB=g,B.contactEquations.length=0,"number"==typeof r)for(var C=a.contactEquations.length-r;C1)for(var C=a.frictionEquations.length-u;C=0;b--)this.removeConstraint(a[b]);for(var c=this.bodies,b=c.length-1;b>=0;b--)this.removeBody(c[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);d.apply(this)};var z=f.create(),A=(f.fromValues(0,0),f.fromValues(0,0));d.prototype.hitTest=function(a,b,c){c=c||0;var d=new m({position:a}),e=new k,l=a,n=0,o=z,p=A;d.addShape(e);for(var q=this.narrowphase,r=[],s=0,t=b.length;s!==t;s++)for(var u=b[s],v=0,w=u.shapes.length;v!==w;v++){var x=u.shapes[v];f.rotate(o,x.position,u.angle),f.add(o,o,u.position);var y=x.angle+u.angle;(x instanceof g&&q.circleParticle(u,x,o,y,d,e,l,n,!0)||x instanceof h&&q.particleConvex(d,e,l,n,u,x,o,y,!0)||x instanceof i&&q.particlePlane(d,e,l,n,u,x,o,y,!0)||x instanceof j&&q.particleCapsule(d,e,l,n,u,x,o,y,!0)||x instanceof k&&f.squaredLength(f.sub(p,o,a))
+* @author Pete Baron
+* @copyright 2016 Photon Storm Ltd.
+* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
+*/
+
+/**
+* Tilemap - constructor
+*
+* @param {Array} layer - layer data from the map, arranged in mapheight lists of mapwidth Phaser.Tile objects (2d array)
+*
+*/
+PIXI.Tilemap = function(texture, mapwidth, mapheight, tilewidth, tileheight, layer) {
+
+ PIXI.DisplayObjectContainer.call(this);
+
+ /**
+ * The texture of the Tilemap
+ *
+ * @property texture
+ * @type Texture
+ */
+ this.texture = texture;
+
+ // faster access to the tile dimensions
+ this.tileWide = tilewidth;
+ this.tileHigh = tileheight;
+ this.mapWide = mapwidth;
+ this.mapHigh = mapheight;
+
+ // TODO: switch here to create DisplayObjectContainer at correct size for the render mode
+ this.width = this.mapWide * this.tileWide;
+ this.height = this.mapHigh * this.tileHigh;
+
+ this.layer = layer;
+
+ // store the list of batch drawing instructions (for use with WebGL rendering)
+ this.glBatch = null;
+
+ /**
+ * Remember last tile drawn to avoid unnecessary set-up
+ *
+ * @type Integer
+ */
+ this.lastTile = -1;
+
+ /**
+ * Whether the Tilemap is dirty or not
+ *
+ * @property dirty
+ * @type Boolean
+ */
+ this.dirty = true;
+
+ /**
+ * The blend mode to be applied to the tilemap. Set to PIXI.blendModes.NORMAL to remove any blend mode.
+ *
+ * @property blendMode
+ * @type Number
+ * @default PIXI.blendModes.NORMAL;
+ */
+ this.blendMode = PIXI.blendModes.NORMAL;
+
+ /**
+ * The size of a single data element in the batch drawing.
+ * Each tile requires two triangles, each specified as:
+ * float left, bottom, right, top - screen coordinates
+ * float u, v, wide, high - source texture coordinates
+ *
+ * @type {Number}
+ */
+ this.batchDataElement = 16;
+
+ // calculate total batch data size
+ var dataSize = mapwidth * mapheight * this.batchDataElement;
+
+ // create buffer data for the webgl rendering of this tile
+ this.buffer = new PIXI.Float32Array( dataSize );
+
+};
+
+// constructor, this class extends PIXI.DisplayObjectContainer
+PIXI.Tilemap.prototype = Object.create(PIXI.DisplayObjectContainer.prototype);
+PIXI.Tilemap.prototype.constructor = PIXI.Tilemap;
+
+// unused methods overridden to prevent default behavior
+PIXI.Tilemap.prototype.update = function () {};
+PIXI.Tilemap.prototype.postUpdate = function () {};
+
+// override PIXI.DisplayObjectContainer _renderWebGL
+PIXI.Tilemap.prototype._renderWebGL = function (renderSession) {
+
+ // if the sprite is not visible or the alpha is 0 then no need to render this element
+ if (!this.visible || this.alpha <= 0)
+ {
+ return;
+ }
+
+ // stop current render session batch drawing
+ renderSession.spriteBatch.stop();
+
+ if (!this._vertexBuffer)
+ {
+ this._initWebGL(renderSession);
+ }
+
+ renderSession.shaderManager.setShader(renderSession.shaderManager.tilemapShader);
+
+ this._renderWholeTilemap(renderSession);
+
+ // restart batch drawing now that this Tile layer has been rendered
+ renderSession.spriteBatch.start();
+
+};
+
+PIXI.Tilemap.prototype._initWebGL = function (renderSession) {
+
+ var gl = renderSession.gl;
+
+ this._vertexBuffer = gl.createBuffer();
+ this._indexBuffer = gl.createBuffer();
+ this._uvBuffer = gl.createBuffer();
+ this._colorBuffer = gl.createBuffer();
+
+ // create a GL buffer to transfer all the vertex position data through
+ this.positionBuffer = gl.createBuffer();
+
+ // bind the buffer to the RAM resident positionBuffer
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.positionBuffer);
+ gl.bufferData(gl.ARRAY_BUFFER, this.buffer, gl.STATIC_DRAW);
+
+};
+
+
+PIXI.Tilemap.prototype._renderBatch = function (renderSession) {
+
+ if (this.glBatch)
+ {
+ var gl = renderSession.gl;
+
+ // TODO: should probably use destination buffer dimensions (halved)
+ var screenWide2 = this.game.width * 0.5;
+ var screenHigh2 = this.game.height * 0.5;
+
+ // size of one pixel in the source texture
+ var iTextureWide = 1.0 / this.texture.width;
+ var iTextureHigh = 1.0 / this.texture.height;
+
+ // size of one tile in the source texture
+ var srcWide = this.tileWide * iTextureWide;
+ var srcHigh = this.tileHigh * iTextureHigh;
+
+ // pre-calculate inverse half-buffer dimensions
+ var iWide = 1.0 / screenWide2;
+ var iHigh = 1.0 / screenHigh2;
+
+ var wide = this.tileWide * 0.5 / screenWide2;
+ var high = this.tileHigh * 0.5 / screenHigh2;
+
+ var buffer = this.buffer;
+ var oldR, oldT, uvl, uvt;
+
+ // process entire glBatch into a single webGl draw buffer for a TRIANGLE_STRIP blit
+ var c = 0;
+ var degenerate = false;
+
+ for (var i = 0, l = this.glBatch.length; i < l; i++)
+ {
+ // sx: this.drawCoords[coordIndex],
+ // sy: this.drawCoords[coordIndex + 1],
+ // sw: this.tileWidth,
+ // sh: this.tileHeight,
+ // dx: x,
+ // dy: y,
+ // dw: this.tileWidth,
+ // dh: this.tileHeight
+
+ var t = this.glBatch[i];
+
+ if (!t)
+ {
+ // insert a degenerate triangle when null is found in the list of batch objects
+ degenerate = true;
+
+ // skip to end of loop, degenerate will be inserted when no more null objects are found
+ continue;
+ }
+
+ var x = t.dx * iWide - 1;
+ var y = 1 - t.dy * iHigh;
+
+ var lft = x - wide;
+ var bot = y + high;
+
+ var uvl = t.sx * iTextureWide;
+ var uvt = t.sy * iTextureHigh;
+
+ // insert a degenerate triangle to separate the tiles
+ if (degenerate)
+ {
+ // add a degenerate triangle: repeat the last vertex
+ buffer[ c ] = oldR;
+ buffer[ c + 1 ] = oldT;
+ // then repeat the next vertex
+ buffer[ c + 4 ] = lft;
+ buffer[ c + 5 ] = bot;
+ // pad with texture coordinates (probably not needed)
+ buffer[ c + 2 ] = buffer[ c + 6 ] = uvl;
+ buffer[ c + 3 ] = buffer[ c + 7 ] = uvt;
+
+ // advance the buffer index for one single degenerate triangle
+ c += 8;
+ degenerate = false;
+ }
+
+ // calculate the destination location of the tile in screen units (-1..1)
+ buffer[ c ] = buffer[ c + 4 ] = lft;
+ buffer[ c + 1 ] = buffer[ c + 9 ] = bot;
+ buffer[ c + 8 ] = buffer[ c + 12] = oldR = x + wide;
+ buffer[ c + 5 ] = buffer[ c + 13] = oldT = y - high;
+
+ // calculate the uv coordinates of the tile source image
+ buffer[ c + 2 ] = buffer[ c + 6 ] = uvl;
+ buffer[ c + 3 ] = buffer[ c + 11] = uvt;
+ buffer[ c + 10] = buffer[ c + 14] = uvl + srcWide;
+ buffer[ c + 7 ] = buffer[ c + 15] = uvt + srcHigh;
+
+ // advance the buffer index
+ c += 16;
+ }
+
+ // if there's anything to draw...
+ if (c > 0)
+ {
+ var shader = renderSession.shaderManager.tilemapShader;
+
+ // upload the VBO
+ gl.bufferData( gl.ARRAY_BUFFER, buffer, gl.STATIC_DRAW );
+
+ // prepare the shader attributes
+ gl.vertexAttribPointer( shader.aPosition, 4, gl.FLOAT, false, 0, 0 );
+
+ // draw the entire VBO in one call
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, Math.floor(c / 4));
+ }
+ }
+
+};
+
+/**
+* render the entire tilemap using a fast webgl batched tile render
+*
+* @param {[type]} renderSession [description]
+*/
+PIXI.Tilemap.prototype._renderWholeTilemap = function (renderSession) {
+
+ var gl = renderSession.gl;
+
+ var shader = renderSession.shaderManager.tilemapShader;
+
+ renderSession.blendModeManager.setBlendMode(this.blendMode);
+
+ // set the uniforms and texture
+
+ // set the offset in screen units to the center of the screen
+ // and flip the GL y coordinate to be zero at the top
+ gl.uniform2f(shader.uCentreOffset, 1, -1);
+
+ // alpha value for whole batch
+ gl.uniform1f(shader.uAlpha, this.alpha);
+
+ // scale factors for whole batch
+ gl.uniform2f(shader.uScale, this.worldScale.x, this.worldScale.y);
+
+ // source texture unit
+ gl.activeTexture(gl.TEXTURE0);
+
+ // check if a texture is dirty..
+ if(this.texture.baseTexture._dirty[gl.id])
+ {
+ renderSession.renderer.updateTexture(this.texture.baseTexture);
+ }
+ else
+ {
+ // bind the current texture
+ gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]);
+ }
+
+ // bind the source buffer
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.positionBuffer);
+
+ // draw the batched tile list
+ this._renderBatch(renderSession);
+
+};
+
+/**
+ * When the texture is updated, this event will fire to update the scale and frame
+ *
+ * @method onTextureUpdate
+ * @param event
+ * @private
+ */
+PIXI.Tilemap.prototype.onTextureUpdate = function () {
+
+ this.updateFrame = true;
+
+};
+
+/**
+ * Returns the bounds of the map as a rectangle. The bounds calculation takes the worldTransform into account.
+ *
+ * @method getBounds
+ * @param matrix {Matrix} the transformation matrix of the sprite
+ * @return {Rectangle} the framing rectangle
+ */
+PIXI.Tilemap.prototype.getBounds = function (matrix) {
+
+ var worldTransform = matrix || this.worldTransform;
+
+ var a = worldTransform.a;
+ var b = worldTransform.b;
+ var c = worldTransform.c;
+ var d = worldTransform.d;
+ var tx = worldTransform.tx;
+ var ty = worldTransform.ty;
+
+ var maxX = -Infinity;
+ var maxY = -Infinity;
+
+ var minX = Infinity;
+ var minY = Infinity;
+
+ var vertices = [
+ 0, 0,
+ this.mapWide * this.tileWide, 0,
+ this.mapWide * this.tileWide, this.mapHigh * this.tileHigh,
+ 0, this.mapHigh * this.tileHigh
+ ];
+
+ for (var i = 0, n = vertices.length; i < n; i += 2)
+ {
+ var rawX = vertices[i], rawY = vertices[i + 1];
+ var x = (a * rawX) + (c * rawY) + tx;
+ var y = (d * rawY) + (b * rawX) + ty;
+
+ minX = x < minX ? x : minX;
+ minY = y < minY ? y : minY;
+
+ maxX = x > maxX ? x : maxX;
+ maxY = y > maxY ? y : maxY;
+ }
+
+ if (minX === -Infinity || maxY === Infinity)
+ {
+ return PIXI.EmptyRectangle;
+ }
+
+ var bounds = this._bounds;
+
+ bounds.x = minX;
+ bounds.width = maxX - minX;
+
+ bounds.y = minY;
+ bounds.height = maxY - minY;
+
+ // store a reference so that if this function gets called again in the render cycle we do not have to recalculate
+ this._currentBounds = bounds;
+
+ return bounds;
+
+};
+
+/**
+* @author Richard Davey
+* @author Pete Baron
+* @copyright 2016 Photon Storm Ltd.
+* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
+*/
+
+/**
+* This shader is used to render a batch of tiles stored as a tri-strip with
+* degenerate triangles at the end of each row, or group of tiles (A group is a
+* row of tiles with content followed by one or more empty tiles which are not
+* drawn).
+*
+* Settings available are:
+*
+* uAlpha - the alpha blending factor for a batch draw
+* uCentreOffset - the offset to the center of the drawing area, in WebGL units (-1...1)
+* uScale - the scaling factor for a batch draw
+* uImageSampler - the source texture containing the tile images
+* aPosition - the attribute set by the batch data for drawing location
+*
+* @class TilemapShader
+* @constructor
+* @param gl {WebGLContext} the current WebGL drawing context
+*/
+PIXI.TilemapShader = function (gl) {
+
+ /**
+ * @property _UID
+ * @type Number
+ * @private
+ */
+ this._UID = PIXI._UID++;
+
+ /**
+ * @property gl
+ * @type WebGLContext
+ */
+ this.gl = gl;
+
+ /**
+ * The WebGL program.
+ * @property program
+ * @type Any
+ */
+ this.program = null;
+
+ this.fragmentSrc = [
+ " precision lowp float;",
+ " uniform sampler2D uImageSampler;",
+ " uniform float uAlpha;",
+ " varying vec2 vTexCoord;",
+ " void main(void) {",
+ " gl_FragColor = texture2D(uImageSampler, vTexCoord) * uAlpha;",
+ " }"
+ ];
+
+ this.vertexSrc = [
+ " precision lowp float;",
+ " uniform vec2 uCentreOffset;",
+ " uniform vec2 uScale;",
+ " attribute vec4 aPosition;",
+ " varying vec2 vTexCoord;",
+ " void main(void) {",
+ " gl_Position.zw = vec2(1, 1);",
+ " gl_Position.xy = (aPosition.xy + uCentreOffset) * uScale - uCentreOffset;",
+ " vTexCoord = aPosition.zw;",
+ " }"
+ ];
+
+ /**
+ * A local texture counter for multi-texture shaders.
+ * @property textureCount
+ * @type Number
+ */
+ this.textureCount = 0;
+
+ this.init();
+};
+
+PIXI.TilemapShader.prototype.constructor = PIXI.TilemapShader;
+
+/**
+* Initialises the shader.
+*
+* @method init
+*/
+PIXI.TilemapShader.prototype.init = function () {
+
+ var gl = this.gl;
+
+ var program = PIXI.compileProgram(gl, this.vertexSrc, this.fragmentSrc);
+ gl.useProgram(program);
+
+ // get and store the attributes
+ this.aPosition = gl.getAttribLocation(program, 'aPosition');
+ this.uSampler = gl.getUniformLocation(program, 'uImageSampler');
+ this.uCentreOffset = gl.getUniformLocation(program, 'uCentreOffset');
+ this.uAlpha = gl.getUniformLocation(program, 'uAlpha');
+ this.uScale = gl.getUniformLocation(program, 'uScale');
+
+ this.attributes = [this.aPosition];
+ this.uniforms = [this.uCentreOffset, this.uAlpha, this.uScale, this.uSampler];
+
+ this.program = program;
+
+};
+
+/**
+* Destroys the shader.
+*
+* @method destroy
+*/
+PIXI.TilemapShader.prototype.destroy = function () {
+
+ this.gl.deleteProgram(this.program);
+ this.gl = null;
+
+ this.uniforms = null;
+ this.attributes = null;
+
+};
+
/**
* @author Richard Davey
* @copyright 2016 Photon Storm Ltd.
@@ -75109,6 +75698,7 @@ Phaser.Tile = function (layer, index, x, y, width, height) {
/**
* @property {number} alpha - The alpha value at which this tile is drawn to the canvas.
+ * TODO: currently unused for both Canvas and WebGL renderers
*/
this.alpha = 1;
@@ -75537,7 +76127,12 @@ Phaser.Tilemap = function (game, key, tileWidth, tileHeight, width, height) {
* @property {array} tilesets - An array of Tilesets.
*/
this.tilesets = data.tilesets;
-
+
+ /**
+ * @property {array} tilesetLayers - An array of internal layers used to separate multiple tilesets from a single map layer.
+ */
+ this.tilesetLayers = null;
+
/**
* @property {array} imagecollections - An array of Image Collections.
*/
@@ -75748,6 +76343,20 @@ Phaser.Tilemap.prototype = {
if (this.tilesets[idx])
{
this.tilesets[idx].setImage(img);
+
+ // create an empty layer for the map parts corresponding to this tileset
+ // if ( !this.tilesetLayers )
+ // {
+ // // for the first tileset, don't create a layer because createLayer will be called to do that
+ // this.tilesetLayers = [];
+ // }
+ // else
+ // {
+ // // for all the rest, go ahead and make a (currently) blank layer
+ // // name, width, height, tileWidth, tileHeight, group
+ // this.tilesetLayers.push( this.createBlankLayer( "_internal" + this.tilesetLayers.length.toString() ) );
+ // }
+
return this.tilesets[idx];
}
else
@@ -75796,6 +76405,17 @@ Phaser.Tilemap.prototype = {
}
}
+ // create an empty layer for the map parts corresponding to this tileset
+ // if ( !this.tilesetLayers )
+ // {
+ // this.tilesetLayers = [];
+ // }
+ // else
+ // {
+ // // name, width, height, tileWidth, tileHeight, group
+ // this.tilesetLayers.push( this.createBlankLayer( "_internal" + this.tilesetLayers.length.toString() ) );
+ // }
+
return newSet;
}
@@ -75998,10 +76618,9 @@ Phaser.Tilemap.prototype = {
* @param {number} [width] - The rendered width of the layer, should never be wider than Game.width. If not given it will be set to Game.width.
* @param {number} [height] - The rendered height of the layer, should never be wider than Game.height. If not given it will be set to Game.height.
* @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group.
- * @param {boolean} [pixiTest] - Temporary additional flag to enable tests of the PIXI.Tilemap renderer
* @return {Phaser.TilemapLayer} The TilemapLayer object. This is an extension of Phaser.Sprite and can be moved around the display list accordingly.
*/
- createLayer: function (layer, width, height, group, pixiTest) {
+ createLayer: function (layer, width, height, group) {
// Add Buffer support for the left of the canvas
@@ -76022,8 +76641,17 @@ Phaser.Tilemap.prototype = {
return;
}
- if ( pixiTest )
+ // create the internal layers for different tilesets using this one as a base description
+ for (var i = 1, l = this.tilesets.length; i < l; i++)
{
+ var ts = this.tilesets[i];
+ var li = this.layers[index];
+ this.createInternalLayer( "_internal" + i.toString(), ts, li.width, li.height, ts.tileWidth, ts.tileHeight, group );
+ }
+
+ if ( this.game.renderType === Phaser.WEBGL )
+ {
+ // use WebGL variant of TilemapLayer
return group.add(new Phaser.TilemapLayerGL(this.game, this, index, width, height));
}
@@ -76031,6 +76659,121 @@ Phaser.Tilemap.prototype = {
},
+ /**
+ * Creates a new internal layer on this Tilemap.
+ *
+ * Internal layers are used when a Tilemap contains multiple Tilesets with different sized tiles. The tilesets
+ * each get a separate layer which is only ever referenced internally by the renderer. This approach permits us
+ * to handle large tiles at screen edges, and with the correct offset relative to the 'base' tileset regardless
+ * of size differences between the tiles.
+ *
+ * For WebGL rendering, this approach also permits us to batch the drawing calls efficiently.
+ *
+ * By default TilemapLayers are fixed to the camera.
+ *
+ * @method Phaser.Tilemap#createInternalLayer
+ * @param {string} name - The name of this layer. Must be unique within the map.
+ * @param {Phaser.Tileset} tileset - The tileset whose data is to be added to this layer.
+ * @param {number} width - The width of the layer in tiles.
+ * @param {number} height - The height of the layer in tiles.
+ * @param {number} tileWidth - The width of the tiles the layer uses for calculations.
+ * @param {number} tileHeight - The height of the tiles the layer uses for calculations.
+ * @param {Phaser.Group} [group] - Optional Group to add the layer to. If not specified it will be added to the World group.
+ * @return {Phaser.TilemapLayer} The TilemapLayer object. This is an extension of Phaser.Image and can be moved around the display list accordingly.
+ */
+ createInternalLayer: function (name, tileset, width, height, tileWidth, tileHeight, group) {
+
+ if (group === undefined) { group = this.game.world; }
+
+ if (this.getLayerIndex(name) !== null)
+ {
+ console.warn('Tilemap.createBlankLayer: Layer with matching name already exists');
+ return;
+ }
+
+ var layer = {
+
+ name: name,
+ x: 0,
+ y: 0,
+ width: width,
+ height: height,
+ widthInPixels: width * tileWidth,
+ heightInPixels: height * tileHeight,
+ alpha: 1,
+ visible: true,
+ properties: {},
+ indexes: [],
+ callbacks: [],
+ bodies: [],
+ data: null,
+ tileset: tileset
+
+ };
+
+ var row;
+ var output = [];
+
+ for (var y = 0; y < height; y++)
+ {
+ row = [];
+ for (var x = 0; x < width; x++)
+ {
+ // get the equivalent tile from this Tilemap
+ var tile = this.layers[0].data[y][x];
+ // find out which tileset it is in
+ var setIndex = this.tiles[tile.index] && this.tiles[tile.index][2];
+ var ts = this.tilesets[setIndex];
+ // is it one of the ones we want to move?
+ if ( ts == tileset )
+ {
+ // move the tile to this new layer
+ row.push( tile );
+ // erase it from the original (mixed tileset) layer
+ this.layers[0].data[y][x] = new Phaser.Tile(layer, -1, x, y, tileWidth, tileHeight);
+ }
+ else
+ {
+ // add an empty tile
+ row.push(new Phaser.Tile(layer, -1, x, y, tileWidth, tileHeight));
+ }
+ }
+
+ output.push(row);
+ }
+
+ layer.data = output;
+
+ this.layers.push(layer);
+
+ var w = layer.widthInPixels;
+ var h = layer.heightInPixels;
+
+ if (w > this.game.width)
+ {
+ w = this.game.width;
+ }
+
+ if (h > this.game.height)
+ {
+ h = this.game.height;
+ }
+
+ var output;
+ if ( this.game.renderType === Phaser.WEBGL )
+ {
+ output = new Phaser.TilemapLayerGL(this.game, this, this.layers.length - 1, w, h);
+ }
+ else
+ {
+ output = new Phaser.TilemapLayer(this.game, this, this.layers.length - 1, w, h);
+ }
+ output.name = name;
+
+ return group.add(output);
+
+ },
+
/**
* Creates a new and empty layer on this Tilemap. By default TilemapLayers are fixed to the camera.
*
@@ -76107,7 +76850,15 @@ Phaser.Tilemap.prototype = {
h = this.game.height;
}
- var output = new Phaser.TilemapLayer(this.game, this, this.layers.length - 1, w, h);
+ var output;
+ if ( this.game.renderType === Phaser.WEBGL )
+ {
+ output = new Phaser.TilemapLayerGL(this.game, this, this.layers.length - 1, w, h);
+ }
+ else
+ {
+ output = new Phaser.TilemapLayer(this.game, this, this.layers.length - 1, w, h);
+ }
output.name = name;
return group.add(output);
@@ -76436,6 +77187,10 @@ Phaser.Tilemap.prototype = {
{
layer = layer.index;
}
+ else if (layer instanceof Phaser.TilemapLayerGL)
+ {
+ layer = layer.index;
+ }
return layer;
@@ -78704,6 +79459,914 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", {
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
+/**
+* A TilemapLayerGL is a PIXI.Tilemap that renders a specific TileLayer of a Tilemap using the PIXI WebGL renderer.
+*
+* NOTE: This is a close duplicate of Phaser.TilemapLayer class, modified to support WebGL rendering, it may be possible to merge the two classes
+* although that will probably incur performance penalties due to some fundamental differences in the set-up before rendering.
+*
+* Since a PIXI.Tilemap is a PIXI.DisplayObjectContainer it can be moved around the display list, added to other groups, or display objects, etc.
+*
+* By default TilemapLayers have fixedToCamera set to `true`. Changing this will break Camera follow and scrolling behavior.
+*
+* @class Phaser.TilemapLayerGL
+* @extends Phaser.Sprite
+* @constructor
+* @param {Phaser.Game} game - Game reference to the currently running game.
+* @param {Phaser.Tilemap} tilemap - The tilemap to which this layer belongs.
+* @param {integer} index - The index of the TileLayer to render within the Tilemap.
+* @param {integer} width - Width of the renderable area of the layer (in pixels).
+* @param {integer} height - Height of the renderable area of the layer (in pixels).
+*/
+Phaser.TilemapLayerGL = function (game, tilemap, index, width, height) {
+
+ this.game = game;
+
+ width |= 0;
+ height |= 0;
+
+ /**
+ * The Tilemap to which this layer is bound.
+ * @property {Phaser.Tilemap} map
+ * @protected
+ * @readonly
+ */
+ this.map = tilemap;
+
+ /**
+ * The index of this layer within the Tilemap.
+ * @property {number} index
+ * @protected
+ * @readonly
+ */
+ this.index = index;
+
+ /**
+ * The layer object within the Tilemap that this layer represents.
+ * @property {object} layer
+ * @protected
+ * @readonly
+ */
+ this.layer = tilemap.layers[index];
+
+ /**
+ * The const type of this object.
+ * @property {number} type
+ * @readonly
+ * @protected
+ * @default Phaser.TILEMAPLAYER
+ */
+ this.type = Phaser.TILEMAPLAYER;
+
+ /**
+ * @property {number} physicsType - The const physics body type of this object.
+ * @readonly
+ */
+ this.physicsType = Phaser.TILEMAPLAYER;
+
+ /**
+ * Settings that control standard (non-diagnostic) rendering.
+ *
+ * @property {boolean} [enableScrollDelta=true] - Delta scroll rendering only draws tiles/edges as they come into view.
+ * This can greatly improve scrolling rendering performance, especially when there are many small tiles.
+ * It should only be disabled in rare cases.
+ *
+ * @property {?DOMCanvasElement} [copyCanvas=(auto)] - [Internal] If set, force using a separate (shared) copy canvas.
+ * Using a canvas bitblt/copy when the source and destinations region overlap produces unexpected behavior
+ * in some browsers, notably Safari.
+ *
+ * @default
+ */
+ this.renderSettings = {
+ enableScrollDelta: false,
+ overdrawRatio: 0.20,
+ copyCanvas: null
+ };
+
+ /**
+ * Enable an additional "debug rendering" pass to display collision information.
+ *
+ * @property {boolean} debug
+ * @default
+ */
+ this.debug = false;
+
+ /**
+ * @property {boolean} exists - Controls if the core game loop and physics update this game object or not.
+ */
+ this.exists = true;
+
+ /**
+ * Settings used for debugging and diagnostics.
+ *
+ * @property {?string} missingImageFill - A tile is rendered as a rectangle using the following fill if a valid tileset/image cannot be found. A value of `null` prevents additional rendering for tiles without a valid tileset image. _This takes effect even when debug rendering for the layer is not enabled._
+ *
+ * @property {?string} debuggedTileOverfill - If a Tile has `Tile#debug` true then, after normal tile image rendering, a rectangle with the following fill is drawn above/over it. _This takes effect even when debug rendering for the layer is not enabled._
+ *
+ * @property {boolean} forceFullRedraw - When debug rendering (`debug` is true), and this option is enabled, the a full redraw is forced and rendering optimization is suppressed.
+ *
+ * @property {number} debugAlpha - When debug rendering (`debug` is true), the tileset is initially rendered with this alpha level. This can make the tile edges clearer.
+ *
+ * @property {?string} facingEdgeStroke - When debug rendering (`debug` is true), this color/stroke is used to draw "face" edges. A value of `null` disables coloring facing edges.
+ *
+ * @property {?string} collidingTileOverfill - When debug rendering (`debug` is true), this fill is used for tiles that are collidable. A value of `null` disables applying the additional overfill.
+ *
+ */
+ this.debugSettings = {
+
+ missingImageFill: 'rgb(255,255,255)',
+ debuggedTileOverfill: 'rgba(0,255,0,0.4)',
+
+ forceFullRedraw: true,
+
+ debugAlpha: 0.5,
+ facingEdgeStroke: 'rgba(0,255,0,1)',
+ collidingTileOverfill: 'rgba(0,255,0,0.2)'
+
+ };
+
+ /**
+ * Speed at which this layer scrolls horizontally, relative to the camera (e.g. scrollFactorX of 0.5 scrolls half as quickly as the 'normal' camera-locked layers do).
+ * @property {number} scrollFactorX
+ * @public
+ * @default
+ */
+ this.scrollFactorX = 1;
+
+ /**
+ * Speed at which this layer scrolls vertically, relative to the camera (e.g. scrollFactorY of 0.5 scrolls half as quickly as the 'normal' camera-locked layers do)
+ * @property {number} scrollFactorY
+ * @public
+ * @default
+ */
+ this.scrollFactorY = 1;
+
+ /**
+ * If true tiles will be force rendered, even if such is not believed to be required.
+ * @property {boolean} dirty
+ * @protected
+ */
+ this.dirty = true;
+
+ /**
+ * When ray-casting against tiles this is the number of steps it will jump. For larger tile sizes you can increase this to improve performance.
+ * @property {integer} rayStepRate
+ * @default
+ */
+ this.rayStepRate = 4;
+
+ /**
+ * Flag controlling if the layer tiles wrap at the edges.
+ * @property {boolean} _wrap
+ * @private
+ */
+ this._wrap = false;
+
+ /**
+ * Local map data and calculation cache.
+ * @property {object} _mc
+ * @private
+ */
+ var tileset = this.layer.tileset || this.map.tilesets[0];
+ this._mc = {
+
+ // Used to bypass rendering without reliance on `dirty` and detect changes.
+ scrollX: 0,
+ scrollY: 0,
+ renderWidth: 0,
+ renderHeight: 0,
+
+ // dimensions of tiles in the original tilemap (the one holding all the tile indices)
+ tileWidth: tilemap.tileWidth,
+ tileHeight: tilemap.tileHeight,
+
+ // Collision width/height (pixels)
+ // What purpose do these have? Most things use tile width/height directly.
+ // This also only extends collisions right and down.
+
+ // dimensions of tiles in this tileset (may not match the original tilemap)
+ cw: tileset.tileWidth,
+ ch: tileset.tileHeight,
+
+ // the tileset for this layer
+ tileset: tileset,
+
+ // Cached tilesets from index -> Tileset
+ tilesets: []
+ };
+
+ /**
+ * The rendering mode (used by PIXI.Tilemap). Modes are: 0 - render entire screen of tiles, 1 - render entire map of tiles
+ * TODO: make some constants for the rendering modes
+ * @property {number} _renderMode
+ * @private
+ */
+ this._renderMode = 0;
+
+ /**
+ * The current canvas left after scroll is applied.
+ * @property {number} _scrollX
+ * @private
+ */
+ this._scrollX = 0;
+
+ /**
+ * The current canvas top after scroll is applied.
+ * @propety {number} _scrollY
+ * @private
+ */
+ this._scrollY = 0;
+
+ /**
+ * Used for caching the tiles / array of tiles.
+ * @property {Phaser.Tile[]} _results
+ * @private
+ */
+ this._results = [];
+
+ // get PIXI textures for each tileset source image
+ var baseTexture = new PIXI.BaseTexture( tileset.image );
+ PIXI.Tilemap.call(this, new PIXI.Texture(baseTexture), this.map.width, this.map.height, this._mc.tileset.tileWidth, this._mc.tileset.tileHeight, this.layer);
+
+ Phaser.Component.Core.init.call(this, game, 0, 0, null, null);
+
+ // must be set *after* the Core.init
+ this.fixedToCamera = true;
+};
+
+
+// constructor: extends PIXI.Tilemap
+Phaser.TilemapLayerGL.prototype = Object.create(PIXI.Tilemap.prototype);
+Phaser.TilemapLayerGL.prototype.constructor = Phaser.TilemapLayerGL;
+
+
+// only one Phaser component used
+Phaser.Component.Core.install.call(Phaser.TilemapLayerGL.prototype, [
+ 'FixedToCamera'
+]);
+
+
+// redirect method prototypes (TODO: not needed? I'm not sure...)
+Phaser.TilemapLayerGL.prototype.preUpdateCore = Phaser.Component.Core.preUpdate;
+Phaser.TileSprite.prototype.preUpdatePhysics = Phaser.Component.PhysicsBody.preUpdate;
+Phaser.TileSprite.prototype.preUpdateLifeSpan = Phaser.Component.LifeSpan.preUpdate;
+Phaser.TileSprite.prototype.preUpdateInWorld = Phaser.Component.InWorld.preUpdate;
+Phaser.TileSprite.prototype.preUpdateCore = Phaser.Component.Core.preUpdate;
+
+
+/**
+* Automatically called by World.preUpdate.
+*
+* @method Phaser.TilemapLayerGL#preUpdate
+*/
+Phaser.TilemapLayerGL.prototype.preUpdate = function() {
+
+ return this.preUpdateCore();
+
+};
+
+/**
+* Automatically called by World.postUpdate. Handles camera scrolling.
+*
+* @method Phaser.TilemapLayerGL#postUpdate
+* @protected
+*/
+Phaser.TilemapLayerGL.prototype.postUpdate = function () {
+
+ Phaser.Component.FixedToCamera.postUpdate.call(this);
+
+ // Stops you being able to auto-scroll the camera if it's not following a sprite
+ var camera = this.game.camera;
+
+ this.scrollX = camera.x * this.scrollFactorX / this.scale.x;
+ this.scrollY = camera.y * this.scrollFactorY / this.scale.y;
+
+ this.render();
+
+};
+
+/**
+* Destroys this TilemapLayerGL.
+*
+* @method Phaser.TilemapLayerGL#destroy
+*/
+Phaser.TilemapLayerGL.prototype.destroy = function() {
+
+ PIXI.CanvasPool.remove(this);
+
+ Phaser.Component.Destroy.prototype.destroy.call(this);
+
+};
+
+/**
+* Resizes the internal dimensions and texture frame used by this TilemapLayerGL.
+*
+* This is an expensive call, so don't bind it to a window resize event! But instead call it at carefully
+* selected times.
+*
+* Be aware that no validation of the new sizes takes place and the current map scroll coordinates are not
+* modified either. You will have to handle both of these things from your game code if required.
+*
+* @method Phaser.TilemapLayerGL#resize
+* @param {number} width - The new width of the TilemapLayerGL
+* @param {number} height - The new height of the TilemapLayerGL
+*/
+Phaser.TilemapLayerGL.prototype.resize = function (width, height) {
+
+ this.texture.frame.resize(width, height);
+
+ this.texture.width = width;
+ this.texture.height = height;
+
+ this.texture.crop.width = width;
+ this.texture.crop.height = height;
+
+ this.texture.baseTexture.width = width;
+ this.texture.baseTexture.height = height;
+
+ this.texture.baseTexture.dirty();
+ this.texture.requiresUpdate = true;
+
+ this.texture._updateUvs();
+
+ this.dirty = true;
+
+};
+
+/**
+* Sets the world size to match the size of this layer.
+*
+* @method Phaser.TilemapLayerGL#resizeWorld
+* @public
+*/
+Phaser.TilemapLayerGL.prototype.resizeWorld = function () {
+
+ this.game.world.setBounds(0, 0, this.layer.widthInPixels * this.scale.x, this.layer.heightInPixels * this.scale.y);
+
+};
+
+/**
+* Take an x coordinate that doesn't account for scrollFactorX and 'fix' it into a scrolled local space.
+*
+* @method Phaser.TilemapLayerGL#_fixX
+* @private
+* @param {number} x - x coordinate in camera space
+* @return {number} x coordinate in scrollFactor-adjusted dimensions
+*/
+Phaser.TilemapLayerGL.prototype._fixX = function (x) {
+
+ if (x < 0)
+ {
+ x = 0;
+ }
+
+ if (this.scrollFactorX === 1)
+ {
+ return x;
+ }
+
+ return this._scrollX + (x - (this._scrollX / this.scrollFactorX));
+
+};
+
+/**
+* Take an x coordinate that _does_ account for scrollFactorX and 'unfix' it back to camera space.
+*
+* @method Phaser.TilemapLayerGL#_unfixX
+* @private
+* @param {number} x - x coordinate in scrollFactor-adjusted dimensions
+* @return {number} x coordinate in camera space
+*/
+Phaser.TilemapLayerGL.prototype._unfixX = function (x) {
+
+ if (this.scrollFactorX === 1)
+ {
+ return x;
+ }
+
+ return (this._scrollX / this.scrollFactorX) + (x - this._scrollX);
+
+};
+
+/**
+* Take a y coordinate that doesn't account for scrollFactorY and 'fix' it into a scrolled local space.
+*
+* @method Phaser.TilemapLayerGL#_fixY
+* @private
+* @param {number} y - y coordinate in camera space
+* @return {number} y coordinate in scrollFactor-adjusted dimensions
+*/
+Phaser.TilemapLayerGL.prototype._fixY = function (y) {
+
+ if (y < 0)
+ {
+ y = 0;
+ }
+
+ if (this.scrollFactorY === 1)
+ {
+ return y;
+ }
+
+ return this._scrollY + (y - (this._scrollY / this.scrollFactorY));
+
+};
+
+/**
+* Take a y coordinate that _does_ account for scrollFactorY and 'unfix' it back to camera space.
+*
+* @method Phaser.TilemapLayerGL#_unfixY
+* @private
+* @param {number} y - y coordinate in scrollFactor-adjusted dimensions
+* @return {number} y coordinate in camera space
+*/
+Phaser.TilemapLayerGL.prototype._unfixY = function (y) {
+
+ if (this.scrollFactorY === 1)
+ {
+ return y;
+ }
+
+ return (this._scrollY / this.scrollFactorY) + (y - this._scrollY);
+
+};
+
+/**
+* Convert a pixel value to a tile coordinate.
+*
+* @method Phaser.TilemapLayerGL#getTileX
+* @public
+* @param {number} x - X position of the point in target tile (in pixels).
+* @return {integer} The X map location of the tile.
+*/
+Phaser.TilemapLayerGL.prototype.getTileX = function (x) {
+
+ // var tileWidth = this.tileWidth * this.scale.x;
+ return Math.floor(this._fixX(x) / this._mc.tileWidth);
+
+};
+
+/**
+* Convert a pixel value to a tile coordinate.
+*
+* @method Phaser.TilemapLayerGL#getTileY
+* @public
+* @param {number} y - Y position of the point in target tile (in pixels).
+* @return {integer} The Y map location of the tile.
+*/
+Phaser.TilemapLayerGL.prototype.getTileY = function (y) {
+
+ // var tileHeight = this.tileHeight * this.scale.y;
+ return Math.floor(this._fixY(y) / this._mc.tileHeight);
+
+};
+
+/**
+* Convert a pixel coordinate to a tile coordinate.
+*
+* @method Phaser.TilemapLayerGL#getTileXY
+* @public
+* @param {number} x - X position of the point in target tile (in pixels).
+* @param {number} y - Y position of the point in target tile (in pixels).
+* @param {(Phaser.Point|object)} point - The Point/object to update.
+* @return {(Phaser.Point|object)} A Point/object with its `x` and `y` properties set.
+*/
+Phaser.TilemapLayerGL.prototype.getTileXY = function (x, y, point) {
+
+ point.x = this.getTileX(x);
+ point.y = this.getTileY(y);
+
+ return point;
+
+};
+
+/**
+* Gets all tiles that intersect with the given line.
+*
+* @method Phaser.TilemapLayerGL#getRayCastTiles
+* @public
+* @param {Phaser.Line} line - The line used to determine which tiles to return.
+* @param {integer} [stepRate=(rayStepRate)] - How many steps through the ray will we check? Defaults to `rayStepRate`.
+* @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
+* @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
+* @return {Phaser.Tile[]} An array of Phaser.Tiles.
+*/
+Phaser.TilemapLayerGL.prototype.getRayCastTiles = function (line, stepRate, collides, interestingFace) {
+
+ if (!stepRate) { stepRate = this.rayStepRate; }
+ if (collides === undefined) { collides = false; }
+ if (interestingFace === undefined) { interestingFace = false; }
+
+ // First get all tiles that touch the bounds of the line
+ var tiles = this.getTiles(line.x, line.y, line.width, line.height, collides, interestingFace);
+
+ if (tiles.length === 0)
+ {
+ return [];
+ }
+
+ // Now we only want the tiles that intersect with the points on this line
+ var coords = line.coordinatesOnLine(stepRate);
+ var results = [];
+
+ for (var i = 0; i < tiles.length; i++)
+ {
+ for (var t = 0; t < coords.length; t++)
+ {
+ var tile = tiles[i];
+ var coord = coords[t];
+ if (tile.containsPoint(coord[0], coord[1]))
+ {
+ results.push(tile);
+ break;
+ }
+ }
+ }
+
+ return results;
+
+};
+
+/**
+* Get all tiles that exist within the given area, defined by the top-left corner, width and height. Values given are in pixels, not tiles.
+*
+* @method Phaser.TilemapLayerGL#getTiles
+* @public
+* @param {number} x - X position of the top left corner (in pixels).
+* @param {number} y - Y position of the top left corner (in pixels).
+* @param {number} width - Width of the area to get (in pixels).
+* @param {number} height - Height of the area to get (in pixels).
+* @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
+* @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
+* @return {array} An array of Tiles.
+*/
+Phaser.TilemapLayerGL.prototype.getTiles = function (x, y, width, height, collides, interestingFace) {
+
+ // Should we only get tiles that have at least one of their collision flags set? (true = yes, false = no just get them all)
+ if (collides === undefined) { collides = false; }
+ if (interestingFace === undefined) { interestingFace = false; }
+
+ var fetchAll = !(collides || interestingFace);
+
+ // Adjust the x,y coordinates for scrollFactor
+ x = this._fixX(x);
+ y = this._fixY(y);
+
+ // Convert the pixel values into tile coordinates
+ var tx = Math.floor(x / (this._mc.cw * this.scale.x));
+ var ty = Math.floor(y / (this._mc.ch * this.scale.y));
+ // Don't just use ceil(width/cw) to allow account for x/y diff within cell
+ var tw = Math.ceil((x + width) / (this._mc.cw * this.scale.x)) - tx;
+ var th = Math.ceil((y + height) / (this._mc.ch * this.scale.y)) - ty;
+
+ // Discard old results before storing the new ones
+ this._results = [];
+
+ for (var wy = ty; wy < ty + th; wy++)
+ {
+ for (var wx = tx; wx < tx + tw; wx++)
+ {
+ var row = this.layer.data[wy];
+
+ if (row && row[wx])
+ {
+ if (fetchAll || row[wx].isInteresting(collides, interestingFace))
+ {
+ this._results.push(row[wx]);
+ }
+ }
+ }
+ }
+
+ return this._results.slice();
+
+};
+
+/**
+* The TilemapLayerGL caches tileset look-ups.
+*
+* Call this method of clear the cache if tilesets have been added or updated after the layer has been rendered.
+*
+* @method Phaser.TilemapLayerGL#resetTilesetCache
+* @public
+*/
+Phaser.TilemapLayerGL.prototype.resetTilesetCache = function () {
+
+ this._mc.tilesets = [];
+};
+
+/**
+ * This method will set the scale of the tilemap as well as update the underlying block data of this layer.
+ *
+ * @method Phaser.TilemapLayerGL#setScale
+ * @param {number} [xScale=1] - The scale factor along the X-plane
+ * @param {number} [yScale] - The scale factor along the Y-plane
+ */
+Phaser.TilemapLayerGL.prototype.setScale = function (xScale, yScale) {
+
+ xScale = xScale || 1;
+ yScale = yScale || xScale;
+
+ for (var y = 0; y < this.layer.data.length; y++)
+ {
+ var row = this.layer.data[y];
+
+ for (var x = 0; x < row.length; x++)
+ {
+ var tile = row[x];
+
+ tile.width = this.map.tileWidth * xScale;
+ tile.height = this.map.tileHeight * yScale;
+
+ tile.worldX = tile.x * tile.width;
+ tile.worldY = tile.y * tile.height;
+ }
+ }
+
+ this.scale.setTo(xScale, yScale);
+
+};
+
+/**
+* Render tiles in the given area given by the virtual tile coordinates biased by the given scroll factor.
+* This will constrain the tile coordinates based on wrapping but not physical coordinates.
+*
+* @method Phaser.TilemapLayerGL#renderRegion
+* @private
+* @param {integer} scrollX - Render x offset/scroll.
+* @param {integer} scrollY - Render y offset/scroll.
+* @param {integer} left - Leftmost column to render.
+* @param {integer} top - Topmost row to render.
+* @param {integer} right - Rightmost column to render.
+* @param {integer} bottom - Bottommost row to render.
+*/
+Phaser.TilemapLayerGL.prototype.renderRegion = function (scrollX, scrollY, left, top, right, bottom, offx, offy) {
+
+ var width = this.layer.width;
+ var height = this.layer.height;
+ var tw = this._mc.tileWidth;
+ var th = this._mc.tileHeight;
+
+ // var lastAlpha = NaN;
+
+ offx = offx || 0;
+ offy = offy || 0;
+
+ if (!this._wrap)
+ {
+ if (left <= right) // Only adjust if going to render
+ {
+ left = Math.max(0, left);
+ right = Math.min(width - 1, right);
+ }
+ if (top <= bottom)
+ {
+ top = Math.max(0, top);
+ bottom = Math.min(height - 1, bottom);
+ }
+ }
+
+ // top-left pixel of top-left cell
+ var baseX = (left * tw) - scrollX;
+ var baseY = (top * th) - scrollY;
+
+ // Fix normStartX/normStartY such it is normalized [0..width/height). This allows a simple conditional and decrement to always keep in range [0..width/height) during the loop. The major offset bias is to take care of negative values.
+ var normStartX = (left + ((1 << 20) * width)) % width;
+ var normStartY = (top + ((1 << 20) * height)) % height;
+
+ // tx/ty - are pixel coordinates where tile is drawn
+ // x/y - is cell location, normalized [0..width/height) in loop
+ // xmax/ymax - remaining cells to render on column/row
+ var tx, ty, x, y, xmax, ymax;
+
+ //context.fillStyle = this.tileColor;
+
+ for (y = normStartY, ymax = bottom - top, ty = baseY;
+ ymax >= 0;
+ y++, ymax--, ty += th)
+ {
+
+ if (y >= height) { y -= height; }
+
+ var row = this.layer.data[y];
+
+ for (x = normStartX, xmax = right - left, tx = baseX;
+ xmax >= 0;
+ x++, xmax--, tx += tw)
+ {
+
+ if (x >= width) { x -= width; }
+
+ var tile = row[x];
+
+ if (!tile || tile.index < 0)
+ {
+ // skipping some tiles, add a degenerate marker into the batch list
+ this._mc.tileset.addDegenerate( this.glBatch );
+ continue;
+ }
+
+ var index = tile.index;
+
+ if (tile.rotation || tile.flipped)
+ {
+ this._mc.tileset.drawGl(this.glBatch, -tile.centerX + offx, -tile.centerY + offy, index, tile.alpha);
+ }
+ else
+ {
+ this._mc.tileset.drawGl(this.glBatch, tx + offx, ty + offy, index, tile.alpha);
+ }
+ }
+
+ // at end of each row, add a degenerate marker into the batch drawing list
+ this._mc.tileset.addDegenerate( this.glBatch );
+ }
+
+};
+
+/**
+* Clear and render the entire canvas.
+*
+* @method Phaser.TilemapLayerGL#renderFull
+* @private
+*/
+Phaser.TilemapLayerGL.prototype.renderFull = function () {
+
+ var scrollX = this._mc.scrollX;
+ var scrollY = this._mc.scrollY;
+
+ var renderW = this.game._width; //this.canvas.width;
+ var renderH = this.game._height; //this.canvas.height;
+
+ var tw = this._mc.tileWidth;
+ var th = this._mc.tileHeight;
+
+ var cw = this._mc.cw;
+ var ch = this._mc.ch;
+
+ var left = Math.floor( (scrollX - (cw - tw)) / tw );
+ var right = Math.floor( (renderW - 1 + scrollX) / tw );
+ var top = Math.floor( (scrollY - (ch - th)) / th );
+ var bottom = Math.floor( (renderH - 1 + scrollY) / th );
+
+ this.glBatch = [];
+ this.renderRegion(scrollX, scrollY, left, top, right, bottom, 0, -(ch - th));
+};
+
+/**
+* Renders the tiles to the layer canvas and pushes to the display.
+*
+* @method Phaser.TilemapLayerGL#render
+* @protected
+*/
+Phaser.TilemapLayerGL.prototype.render = function () {
+
+ var redrawAll = false;
+
+ if (!this.visible)
+ {
+ return;
+ }
+
+ if (this.dirty || this.layer.dirty)
+ {
+ this.layer.dirty = false;
+ redrawAll = true;
+ }
+
+ // Scrolling bias; whole pixels only
+ var scrollX = this._scrollX | 0;
+ var scrollY = this._scrollY | 0;
+
+ var mc = this._mc;
+ var shiftX = mc.scrollX - scrollX; // Negative when scrolling right/down
+ var shiftY = mc.scrollY - scrollY;
+
+ if (!redrawAll &&
+ shiftX === 0 && shiftY === 0)
+ {
+ // No reason to rebuild batch, looking at same thing and not invalidated.
+ return;
+ }
+
+ mc.scrollX = scrollX;
+ mc.scrollY = scrollY;
+
+ this.renderFull();
+
+ this.texture.baseTexture.dirty();
+
+ this.dirty = false;
+
+ return true;
+
+};
+
+/**
+* Flag controlling if the layer tiles wrap at the edges. Only works if the World size matches the Map size.
+*
+* @property {boolean} wrap
+* @memberof Phaser.TilemapLayerGL
+* @public
+* @default false
+*/
+Object.defineProperty(Phaser.TilemapLayerGL.prototype, "wrap", {
+
+ get: function () {
+ return this._wrap;
+ },
+
+ set: function (value) {
+ this._wrap = value;
+ this.dirty = true;
+ }
+
+});
+
+/**
+* Scrolls the map horizontally or returns the current x position.
+*
+* @property {number} scrollX
+* @memberof Phaser.TilemapLayerGL
+* @public
+*/
+Object.defineProperty(Phaser.TilemapLayerGL.prototype, "scrollX", {
+
+ get: function () {
+ return this._scrollX;
+ },
+
+ set: function (value) {
+ this._scrollX = value;
+ }
+
+});
+
+/**
+* Scrolls the map vertically or returns the current y position.
+*
+* @property {number} scrollY
+* @memberof Phaser.TilemapLayerGL
+* @public
+*/
+Object.defineProperty(Phaser.TilemapLayerGL.prototype, "scrollY", {
+
+ get: function () {
+ return this._scrollY;
+ },
+
+ set: function (value) {
+ this._scrollY = value;
+ }
+
+});
+
+/**
+* The width of the collision tiles (in pixels).
+*
+* @property {integer} collisionWidth
+* @memberof Phaser.TilemapLayerGL
+* @public
+*/
+Object.defineProperty(Phaser.TilemapLayerGL.prototype, "collisionWidth", {
+
+ get: function () {
+ return this._mc.cw;
+ },
+
+ set: function (value) {
+ this._mc.cw = value | 0;
+ this.dirty = true;
+ }
+
+});
+
+/**
+* The height of the collision tiles (in pixels).
+*
+* @property {integer} collisionHeight
+* @memberof Phaser.TilemapLayerGL
+* @public
+*/
+Object.defineProperty(Phaser.TilemapLayerGL.prototype, "collisionHeight", {
+
+ get: function () {
+ return this._mc.ch;
+ },
+
+ set: function (value) {
+ this._mc.ch = value | 0;
+ this.dirty = true;
+ }
+
+});
+
+/**
+* @author Richard Davey
+* @copyright 2016 Photon Storm Ltd.
+* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
+*/
+
/**
* Phaser.TilemapParser parses data objects from Phaser.Loader that need more preparation before they can be inserted into a Tilemap.
*
@@ -78726,34 +80389,7 @@ Phaser.TilemapParser = {
INSERT_NULL: false,
/**
- * A tiled flag that resides within the 32 bit of the object gid and
- * indicates whether the tiled/object is flipped horizontally.
- *
- * @constant
- * @type {number}
- */
- FLIPPED_HORIZONTALLY_FLAG: 0x80000000,
-
- /**
- * A tiled flag that resides within the 31 bit of the object gid and
- * indicates whether the tiled/object is flipped vertically.
- *
- * @constant
- * @type {number}
- */
- FLIPPED_VERTICALLY_FLAG: 0x40000000,
-
- /**
- * A tiled flag that resides within the 30 bit of the object gid and
- * indicates whether the tiled/object is flipped diagonally.
- *
- * @constant
- * @type {number}
- */
- FLIPPED_DIAGONALLY_FLAG: 0x20000000,
-
- /**
- * Parse tilemap data from the cache and creates a Tilemap object.
+ * Parse tilemap data from the cache and creates data for a Tilemap object.
*
* @method Phaser.TilemapParser.parse
* @param {Phaser.Game} game - Game reference to the currently running game.
@@ -79232,8 +80868,6 @@ Phaser.TilemapParser = {
// Object Tiles
if (curo.objects[v].gid)
{
- var self = this;
-
var object = {
gid: curo.objects[v].gid,
@@ -79241,13 +80875,9 @@ Phaser.TilemapParser = {
type: curo.objects[v].hasOwnProperty("type") ? curo.objects[v].type : "",
x: curo.objects[v].x,
y: curo.objects[v].y,
- width: curo.objects[v].width,
- height: curo.objects[v].height,
visible: curo.objects[v].visible,
- properties: curo.objects[v].properties,
- horizontallyFlipped: curo.objects[v].gid & self.FLIPPED_HORIZONTALLY_FLAG,
- verticallyFlipped: curo.objects[v].gid & self.FLIPPED_VERTICALLY_FLAG,
- diagonallyFlipped: curo.objects[v].gid & self.FLIPPED_DIAGONALLY_FLAG
+ properties: curo.objects[v].properties
+
};
if (curo.objects[v].rotation)
@@ -79380,11 +81010,13 @@ Phaser.TilemapParser = {
var sid;
var set;
- // go through each of the map layers
+ // go through each of the map data layers
for (var i = 0; i < map.layers.length; i++)
{
layer = map.layers[i];
+ set = null;
+
// rows of tiles
for (var j = 0; j < layer.data.length; j++)
{
@@ -79405,12 +81037,14 @@ Phaser.TilemapParser = {
sid = map.tiles[tile.index][2];
set = map.tilesets[sid];
+
// if that tile type has any properties, add them to the tile object
if (set.tileProperties && set.tileProperties[tile.index - set.firstgid])
{
tile.properties = Phaser.Utils.mixin(set.tileProperties[tile.index - set.firstgid], tile.properties);
}
+
}
}
}
@@ -79560,6 +81194,7 @@ Phaser.Tileset.prototype = {
if (coordIndex >= 0 && (coordIndex + 1) < this.drawCoords.length)
{
+ // draw the tile on the canvas
context.drawImage(
this.image,
this.drawCoords[coordIndex],
@@ -79575,6 +81210,56 @@ Phaser.Tileset.prototype = {
},
+ /**
+ * Draws a tile from this Tileset at the given coordinates using a WebGl renderer.
+ *
+ * @method Phaser.Tileset#drawGl
+ * @public
+ * @param out {Array} glBatch - A list of webgl batch objects to draw later.
+ * @param {number} x - The x coordinate to draw to.
+ * @param {number} y - The y coordinate to draw to.
+ * @param {integer} index - The index of the tile within the set to draw.
+ * @param {number} alpha - The alpha value to draw this tile with.
+ */
+ drawGl: function (glBatch, x, y, index, alpha) {
+
+ // Correct the tile index for the set and bias for interlacing x/y values
+ var coordIndex = (index - this.firstgid) * 2;
+
+ if (coordIndex >= 0 && (coordIndex + 1) < this.drawCoords.length)
+ {
+ // add the tile to the webgl batch
+ // source and destination coordinates, in pixel units
+ // destination is the centre of the tile
+ glBatch.push( {
+ sx: this.drawCoords[coordIndex],
+ sy: this.drawCoords[coordIndex + 1],
+ sw: this.tileWidth,
+ sh: this.tileHeight,
+ dx: x + this.tileWidth * 0.5,
+ dy: y + this.tileHeight * 0.5,
+ dw: this.tileWidth,
+ dh: this.tileHeight,
+ alpha: alpha
+ } );
+ }
+
+ },
+
+ /**
+ * adds a marker for the WebGl batch display to insert a degenerate triangle (eg. at the end of each row of tiles)
+ *
+ * @param {[type]} glBatch [description]
+ */
+ addDegenerate: function( glBatch )
+ {
+ // don't insert multiple degenerate markers in a row
+ if ( glBatch[ glBatch.length - 1] )
+ {
+ glBatch.push( null );
+ }
+ },
+
/**
* Returns true if and only if this tileset contains the given tile index.
*
diff --git a/build/custom/phaser-arcade-physics.map b/build/custom/phaser-arcade-physics.map
index 738b3633e..d60292f6b 100644
--- a/build/custom/phaser-arcade-physics.map
+++ b/build/custom/phaser-arcade-physics.map
@@ -1 +1 @@
-{"version":3,"sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","filterArea","_sr","_cr","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","set","sqrt","atan2","transformCallback","call","transformCallbackContext","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","getLocalBounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","_generateCachedSprite","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","_filters","filters","anchor","displayObjectUpdateTransform","Object","defineProperties","get","value","worldVisible","item","mask","isMask","isArray","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","cacheAsBitmap","DisplayObjectContainer","ignoreChildInput","create","defineProperty","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","getBounds","EmptyRectangle","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","identityMatrix","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","exists","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","matrix","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","shakeX","shakeY","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","camera","_shake","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTexture","complete","naturalWidth","naturalHeight","forceLoaded","unloadFromGPU","updateSourceImage","newSrc","warn","glTexture","fromCanvas","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","image","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","HORIZONTAL","VERTICAL","LANDSCAPE","PORTRAIT","ANGLE_UP","ANGLE_DOWN","ANGLE_LEFT","ANGLE_RIGHT","ANGLE_NORTH_EAST","ANGLE_NORTH_WEST","ANGLE_SOUTH_EAST","ANGLE_SOUTH_WEST","TOP_LEFT","TOP_CENTER","TOP_RIGHT","LEFT_TOP","LEFT_CENTER","LEFT_BOTTOM","CENTER","RIGHT_TOP","RIGHT_CENTER","RIGHT_BOTTOM","BOTTOM_LEFT","BOTTOM_CENTER","BOTTOM_RIGHT","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","Utils","reverseString","string","split","getProperty","obj","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","rect","bx1","by1","bx2","by2","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","flattened","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","getPoint","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","NEGATIVE_INFINITY","POSITIVE_INFINITY","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","beginFill","drawRect","endFill","fade","update","updateFX","updateShake","checkBounds","time","elapsedMS","dispatch","rnd","frac","updateTarget","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","state","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","inputEnableChildren","onChildInputDown","onChildInputUp","onChildInputOver","onChildInputOut","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","updateZ","addToHash","inputEnabled","events","onAddedToGroup$dispatch","addAt","addMultiple","moveAll","getAt","createMultiple","quantity","singleKey","singleFrame","align","rows","columns","cellWidth","cellHeight","alignIn","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","getClosestTo","object","tempDistance","getFurthestFrom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","destroyTexture","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","customCandidateHandler","customCandidateHandlerContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","setInteractiveCandidateHandler","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","TileSprite","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","interactiveCandidates","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","swapTarget","newTarget","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStopBlocksInputUp","dragStartPoint","dragDistanceThreshold","dragTimeThreshold","downPoint","snapPoint","_dragPoint","_dragPhase","_pendingDrag","_dragTimePass","_dragDistancePass","_wasEnabled","_tempPoint","_pointerData","camX","camY","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","startDrag","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","dragTimeElapsed","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","_rawPad","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","alignTo","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","weapon","Weapon","createBullets","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","skipPool","ctx","imageData","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyTransform","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","updateLocalBounds","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateCachedSpriteTexture","_prevTint","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureLine","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","lineLength","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","wrappedWidth","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","isReversed","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","reverseOnce","frameId","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","MISSING","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getURL","getKeys","removeCanvas","destroyBaseTexture","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","crossOrigin","headers","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","setRequestHeader","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_tempPause","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","displayList","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","rotateRight","rotateLeft","numberArray","numberArrayStep","LinkedList","entity","palettes","0","1","2","3","4","5","6","7","8","9","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","toABGR","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","bounds1","bounds2","group1","group2","body1","body2","isCircle","separateCircle","bodyRect","bodyCircle","resultX","resultY","separateX","separateY","onOverlap","onCollide","circleBodyIntersects","getOverlapX","getOverlapY","angleCollision","angleBetweenCenters","immovable","customSeparateX","tempVel1","mass","tempVel2","bounce","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","deltaAbsY","overlapY","moves","friction","nv1","nv2","avg","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","worldBounce","onWorldBounds","facing","overlapR","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","isMoving","stopVelocityOnCollide","moveTimer","moveDistance","moveDuration","moveTarget","moveEnd","onMoveComplete","movementCallback","movementCallbackContext","_sx","_sy","updateBounds","asx","asy","updateMovement","collided","stopMovement","stopVelocity","check","bodyBounds","moveFrom","setCircle","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","tilemapLayerOffsetX","tilemapLayerOffsetY","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","pixiTest","getLayerIndex","TilemapLayerGL","indexes","bodies","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","FLIPPED_HORIZONTALLY_FLAG","FLIPPED_VERTICALLY_FLAG","FLIPPED_DIAGONALLY_FLAG","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","curo","horizontallyFlipped","verticallyFlipped","diagonallyFlipped","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","bullets","autoExpandBulletsGroup","autofire","shots","fireLimit","fireRate","fireRateVariance","fireFrom","fireAngle","bulletInheritSpriteSpeed","bulletAnimation","bulletFrameRandom","bulletFrameCycle","bulletWorldWrap","bulletWorldWrapPadding","bulletAngleOffset","bulletAngleVariance","bulletSpeed","bulletSpeedVariance","bulletLifespan","bulletKillDistance","bulletGravity","bulletRotateToVelocity","bulletKey","bulletFrame","_bulletClass","Bullet","_bulletCollideWorldBounds","_bulletKillType","KILL_WORLD_BOUNDS","customBody","bulletBounds","bulletFrames","bulletFrameIndex","anims","onFire","onKill","onFireLimit","trackedSprite","trackedPointer","trackRotation","trackOffset","_nextFire","KILL_NEVER","KILL_LIFESPAN","KILL_DISTANCE","KILL_WEAPON_BOUNDS","KILL_CAMERA_BOUNDS","KILL_STATIC_BOUNDS","killAll","resetShots","newLimit","fire","trackSprite","trackPointer","moveX","moveY","bullet","bulletManager","killType","bulletKillType","killDistance","rotateToVelocity","bodyDirty","bulletCollideWorldBounds","fireAtPointer","fireAtSprite","fireAtXY","setBulletBodyOffset","setBulletFrames","cycle","addBulletAnimation","debugBodies","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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","file":"phaser-arcade-physics.min.js"}
\ No newline at end of file
+{"version":3,"sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","filterArea","_sr","_cr","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","set","sqrt","atan2","transformCallback","call","transformCallbackContext","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","getLocalBounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","_generateCachedSprite","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","_filters","filters","anchor","displayObjectUpdateTransform","Object","defineProperties","get","value","worldVisible","item","mask","isMask","isArray","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","cacheAsBitmap","DisplayObjectContainer","ignoreChildInput","create","defineProperty","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","getBounds","EmptyRectangle","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","identityMatrix","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","exists","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","matrix","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","shakeX","shakeY","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","camera","_shake","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","tilemapShader","TilemapShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTexture","complete","naturalWidth","naturalHeight","forceLoaded","unloadFromGPU","updateSourceImage","newSrc","warn","glTexture","fromCanvas","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","image","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","HORIZONTAL","VERTICAL","LANDSCAPE","PORTRAIT","ANGLE_UP","ANGLE_DOWN","ANGLE_LEFT","ANGLE_RIGHT","ANGLE_NORTH_EAST","ANGLE_NORTH_WEST","ANGLE_SOUTH_EAST","ANGLE_SOUTH_WEST","TOP_LEFT","TOP_CENTER","TOP_RIGHT","LEFT_TOP","LEFT_CENTER","LEFT_BOTTOM","CENTER","RIGHT_TOP","RIGHT_CENTER","RIGHT_BOTTOM","BOTTOM_LEFT","BOTTOM_CENTER","BOTTOM_RIGHT","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","Utils","reverseString","string","split","getProperty","obj","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","rect","bx1","by1","bx2","by2","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","flattened","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","getPoint","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","NEGATIVE_INFINITY","POSITIVE_INFINITY","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","beginFill","drawRect","endFill","fade","update","updateFX","updateShake","checkBounds","time","elapsedMS","dispatch","rnd","frac","updateTarget","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","state","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","inputEnableChildren","onChildInputDown","onChildInputUp","onChildInputOver","onChildInputOut","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","RETURN_ALL","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","updateZ","addToHash","inputEnabled","events","onAddedToGroup$dispatch","addAt","addMultiple","moveAll","getAt","createMultiple","quantity","singleKey","singleFrame","align","rows","columns","cellWidth","cellHeight","alignIn","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","getClosestTo","object","tempDistance","getFurthestFrom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","getRandomExists","list","getAll","pick","destroyPhase","onRemovedFromGroup$dispatch","group","destroyTexture","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","customCandidateHandler","customCandidateHandlerContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","setInteractiveCandidateHandler","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","TileSprite","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","interactiveCandidates","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","swapTarget","newTarget","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStopBlocksInputUp","dragStartPoint","dragDistanceThreshold","dragTimeThreshold","downPoint","snapPoint","_dragPoint","_dragPhase","_pendingDrag","_dragTimePass","_dragDistancePass","_wasEnabled","_tempPoint","_pointerData","camX","camY","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","startDrag","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","dragTimeElapsed","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","_rawPad","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","alignTo","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","weapon","Weapon","createBullets","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","skipPool","ctx","imageData","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyTransform","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","updateLocalBounds","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateCachedSpriteTexture","_prevTint","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureLine","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","lineLength","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","wrappedWidth","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","integerInRange","realInRange","normal","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","isReversed","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","reverseOnce","frameId","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","MISSING","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getURL","getKeys","removeCanvas","destroyBaseTexture","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","crossOrigin","headers","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","setRequestHeader","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_tempPause","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","displayList","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","rotateRight","rotateLeft","numberArray","numberArrayStep","LinkedList","entity","palettes","0","1","2","3","4","5","6","7","8","9","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","toABGR","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","bounds1","bounds2","group1","group2","body1","body2","isCircle","separateCircle","bodyRect","bodyCircle","resultX","resultY","separateX","separateY","onOverlap","onCollide","circleBodyIntersects","getOverlapX","getOverlapY","angleCollision","angleBetweenCenters","immovable","customSeparateX","tempVel1","mass","tempVel2","bounce","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","deltaAbsY","overlapY","moves","friction","nv1","nv2","avg","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","worldBounce","onWorldBounds","facing","overlapR","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","isMoving","stopVelocityOnCollide","moveTimer","moveDistance","moveDuration","moveTarget","moveEnd","onMoveComplete","movementCallback","movementCallbackContext","_sx","_sy","updateBounds","asx","asy","updateMovement","collided","stopMovement","stopVelocity","check","bodyBounds","moveFrom","setCircle","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","tilemapLayerOffsetX","tilemapLayerOffsetY","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","mapwidth","mapheight","tileWide","tileHigh","mapWide","mapHigh","glBatch","lastTile","batchDataElement","dataSize","_renderWholeTilemap","positionBuffer","_renderBatch","oldR","oldT","uvl","uvt","screenWide2","screenHigh2","iTextureWide","iTextureHigh","srcWide","srcHigh","iWide","iHigh","wide","degenerate","lft","bot","aPosition","drawArrays","uCentreOffset","uAlpha","uScale","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","tilesetLayers","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","ts","li","createInternalLayer","TilemapLayerGL","indexes","bodies","setIndex","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","_renderMode","offx","offy","addDegenerate","drawGl","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","curo","polyline","polygon","ellipse","sid","drawCoords","coordIndex","sw","sh","dw","dh","setSpacing","rowCount","colCount","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","bullets","autoExpandBulletsGroup","autofire","shots","fireLimit","fireRate","fireRateVariance","fireFrom","fireAngle","bulletInheritSpriteSpeed","bulletAnimation","bulletFrameRandom","bulletFrameCycle","bulletWorldWrap","bulletWorldWrapPadding","bulletAngleOffset","bulletAngleVariance","bulletSpeed","bulletSpeedVariance","bulletLifespan","bulletKillDistance","bulletGravity","bulletRotateToVelocity","bulletKey","bulletFrame","_bulletClass","Bullet","_bulletCollideWorldBounds","_bulletKillType","KILL_WORLD_BOUNDS","customBody","bulletBounds","bulletFrames","bulletFrameIndex","anims","onFire","onKill","onFireLimit","trackedSprite","trackedPointer","trackRotation","trackOffset","_nextFire","KILL_NEVER","KILL_LIFESPAN","KILL_DISTANCE","KILL_WEAPON_BOUNDS","KILL_CAMERA_BOUNDS","KILL_STATIC_BOUNDS","killAll","resetShots","newLimit","fire","trackSprite","trackPointer","moveX","moveY","bullet","bulletManager","killType","bulletKillType","killDistance","rotateToVelocity","bodyDirty","bulletCollideWorldBounds","fireAtPointer","fireAtSprite","fireAtXY","setBulletBodyOffset","setBulletFrames","cycle","addBulletAnimation","debugBodies","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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","file":"phaser-arcade-physics.min.js"}
\ No newline at end of file
diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js
index a35ad1419..bdb72e3dd 100644
--- a/build/custom/phaser-arcade-physics.min.js
+++ b/build/custom/phaser-arcade-physics.min.js
@@ -1,23 +1,23 @@
-/* Phaser v2.6.1 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
+/* Phaser v2.6.2 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
-(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this.filterArea=null,this._sr=0,this._cr=1,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype={destroy:function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this.renderable=!1,this._bounds=null,this._currentBounds=null,this._mask=null,this._destroyCachedSprite()},updateTransform:function(a){if(!a&&!this.parent&&!this.game)return this;var c=this.parent;a?c=a:this.parent||(c=this.game.world);var d,e,f,g,h,i,j=c.worldTransform,k=this.worldTransform;return this.rotation%b.PI_2?(this.rotation!==this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation)),d=this._cr*this.scale.x,e=this._sr*this.scale.x,f=-this._sr*this.scale.y,g=this._cr*this.scale.y,h=this.position.x,i=this.position.y,(this.pivot.x||this.pivot.y)&&(h-=this.pivot.x*d+this.pivot.y*f,i-=this.pivot.x*e+this.pivot.y*g),k.a=d*j.a+e*j.c,k.b=d*j.b+e*j.d,k.c=f*j.a+g*j.c,k.d=f*j.b+g*j.d,k.tx=h*j.a+i*j.c+j.tx,k.ty=h*j.b+i*j.d+j.ty):(d=this.scale.x,g=this.scale.y,h=this.position.x-this.pivot.x*d,i=this.position.y-this.pivot.y*g,k.a=d*j.a,k.b=d*j.b,k.c=g*j.c,k.d=g*j.d,k.tx=h*j.a+i*j.c+j.tx,k.ty=h*j.b+i*j.d+j.ty),this.worldAlpha=this.alpha*c.worldAlpha,this.worldPosition.set(k.tx,k.ty),this.worldScale.set(this.scale.x*Math.sqrt(k.a*k.a+k.c*k.c),this.scale.y*Math.sqrt(k.b*k.b+k.d*k.d)),this.worldRotation=Math.atan2(-k.c,k.d),this._currentBounds=null,this.transformCallback&&this.transformCallback.call(this.transformCallbackContext,k,j),this},setStageReference:function(a){return this.stage=a,this},preUpdate:function(){},generateTexture:function(a,c,d){var e=this.getLocalBounds(),f=new b.RenderTexture(0|e.width,0|e.height,d,c,a);return b.DisplayObject._tempMatrix.tx=-e.x,b.DisplayObject._tempMatrix.ty=-e.y,f.render(this,b.DisplayObject._tempMatrix),f},updateCache:function(){return this._generateCachedSprite(),this},toGlobal:function(a){return this.updateTransform(),this.worldTransform.apply(a)},toLocal:function(a,b){return b&&(a=b.toGlobal(a)),this.updateTransform(),this.worldTransform.applyInverse(a)},_renderCachedSprite:function(a){this._cachedSprite.worldAlpha=this.worldAlpha,a.gl?b.Sprite.prototype._renderWebGL.call(this._cachedSprite,a):b.Sprite.prototype._renderCanvas.call(this._cachedSprite,a)},_generateCachedSprite:function(){this._cacheAsBitmap=!1;var a=this.getLocalBounds();if(a.width=Math.max(1,Math.ceil(a.width)),a.height=Math.max(1,Math.ceil(a.height)),this.updateTransform(),this._cachedSprite)this._cachedSprite.texture.resize(a.width,a.height);else{var c=new b.RenderTexture(a.width,a.height);this._cachedSprite=new b.Sprite(c),this._cachedSprite.worldTransform=this.worldTransform}var d=this._filters;this._filters=null,this._cachedSprite.filters=d,b.DisplayObject._tempMatrix.tx=-a.x,b.DisplayObject._tempMatrix.ty=-a.y,this._cachedSprite.texture.render(this,b.DisplayObject._tempMatrix,!0),this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._filters=d,this._cacheAsBitmap=!0},_destroyCachedSprite:function(){this._cachedSprite&&(this._cachedSprite.texture.destroy(!0),this._cachedSprite=null)}},b.DisplayObject.prototype.displayObjectUpdateTransform=b.DisplayObject.prototype.updateTransform,Object.defineProperties(b.DisplayObject.prototype,{x:{get:function(){return this.position.x},set:function(a){this.position.x=a}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a}},worldVisible:{get:function(){if(this.visible){var a=this.parent;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}return!1}},mask:{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,a&&(this._mask.isMask=!0)}},filters:{get:function(){return this._filters},set:function(a){if(Array.isArray(a)){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gc?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var l=this._bounds;return l.x=e,l.y=f,l.width=g-e,l.height=h-f,l},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;ci){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromCanvas=function(a,c){return 0===a.width&&(a.width=1),0===a.height&&(a.height=1),new b.BaseTexture(a,c)},b.TextureSilentFail=!1,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){a===this.width&&c===this.height||(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform,e=d.tx*a.resolution+a.shakeX,f=d.ty*a.resolution+a.shakeY;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|e,0|f):c.setTransform(d.a,d.b,d.c,d.d,e,f),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.6.1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,HORIZONTAL:0,VERTICAL:1,LANDSCAPE:0,PORTRAIT:1,ANGLE_UP:270,ANGLE_DOWN:90,ANGLE_LEFT:180,ANGLE_RIGHT:0,ANGLE_NORTH_EAST:315,ANGLE_NORTH_WEST:225,ANGLE_SOUTH_EAST:45,ANGLE_SOUTH_WEST:135,TOP_LEFT:0,TOP_CENTER:1,TOP_RIGHT:2,LEFT_TOP:3,LEFT_CENTER:4,LEFT_BOTTOM:5,CENTER:6,RIGHT_TOP:7,RIGHT_CENTER:8,RIGHT_BOTTOM:9,BOTTOM_LEFT:10,BOTTOM_CENTER:11,BOTTOM_RIGHT:12,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;a=a.toString();var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{
-get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.intersectsRectangle=function(a,b){if(!c.Rectangle.intersects(a,b))return!1;var d=a.start.x,e=a.start.y,f=a.end.x,g=a.end.y,h=b.x,i=b.y,j=b.right,k=b.bottom,l=0;if(d>=h&&j>=d&&e>=i&&k>=e||f>=h&&j>=f&&g>=i&&k>=g)return!0;if(h>d&&f>=h){if(l=e+(g-e)*(h-d)/(f-d),l>i&&k>=l)return!0}else if(d>j&&j>=f&&(l=e+(g-e)*(j-d)/(f-d),l>=i&&k>=l))return!0;if(i>e&&g>=i){if(l=d+(f-d)*(i-e)/(g-e),l>=h&&j>=l)return!0}else if(e>k&&k>=g&&(l=d+(f-d)*(k-e)/(g-e),l>=h&&j>=l))return!0;return!1},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){void 0!==a&&null!==a||(a=1),void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),void 0!==e&&null!==e||(e=1),void 0!==f&&null!==f||(f=0),void 0!==g&&null!==g||(g=0),this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.flattened=!1,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=g&&i>b||b>=i&&g>b)&&(h-f)*(b-g)/(i-g)+f>a&&(c=!c)}else for(var d=-1,e=this._points.length-1;++d=g&&i>b||b>=i&&g>b)&&(h-f)*(b-g)/(i-g)+f>a&&(c=!c)}return c},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else if(Array.isArray(a[c]))var e=new PIXI.Point(a[c][0],a[c][1]);else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},getPoint:function(a,b){switch(void 0===b&&(b=new c.Point),a){default:case c.TOP_LEFT:return b.set(this.x,this.y);case c.TOP_CENTER:return b.set(this.centerX,this.y);case c.TOP_RIGHT:return b.set(this.right,this.y);case c.LEFT_CENTER:return b.set(this.x,this.centerY);case c.CENTER:return b.set(this.centerX,this.centerY);case c.RIGHT_CENTER:return b.set(this.right,this.centerY);case c.BOTTOM_LEFT:return b.set(this.x,this.bottom);case c.BOTTOM_CENTER:return b.set(this.centerX,this.bottom);case c.BOTTOM_RIGHT:return b.set(this.right,this.bottom)}},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!d&&this._shake.duration>0?!1:(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.x=this.view.x+this.target.worldPosition.x,this._targetPosition.y=this.view.y+this.target.worldPosition.y,this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y)),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx.clear(),this.fx.alpha=0,this._fxDuration=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),Object.defineProperty(c.Camera.prototype,"shakeIntensity",{get:function(){return this._shake.intensity},set:function(a){this._shake.intensity=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.state=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){
-var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e,f){void 0===e&&(e=!0);var g=new this.classType(this.game,a,b,c,d);return g.exists=e,g.visible=e,g.alive=e,this.add(g,!1,f)},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===c&&(c=0),void 0===d&&(d=!1),Array.isArray(b)||(b=[b]),Array.isArray(c)||(c=[c]);var e=this,f=[];return b.forEach(function(b){c.forEach(function(c){for(var g=0;a>g;g++)f.push(e.create(0,0,b,c,d))})}),f},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.align=function(a,b,d,e,f,g){if(void 0===f&&(f=c.TOP_LEFT),void 0===g&&(g=0),!(0===this.children.length||g>this.children.length||-1===a&&-1===b))for(var h=new c.Rectangle(0,0,d,e),i=a*d,j=b*e,k=g;kthis.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)===d},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.getClosestTo=function(a,b,d){for(var e=Number.MAX_VALUE,f=0,g=null,h=0;hf&&(!b||b.call(d,i,f))&&(e=f,g=i))}return g},c.Group.prototype.getFurthestFrom=function(a,b,d){for(var e=0,f=0,g=null,h=0;he&&(!b||b.call(d,i,f))&&(e=f,g=i))}return g},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=!1),void 0===c&&(c=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var d=this.removeChild(this.children[0]);this.removeFromHash(d),a&&d&&d.destroy(!0,c)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),
-e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"centerX",{get:function(){return this.getBounds().centerX},set:function(a){var b=this.getBounds(),c=this.x-b.x;this.x=a+c-b.halfWidth}}),Object.defineProperty(c.Group.prototype,"centerY",{get:function(){return this.getBounds().centerY},set:function(a){var b=this.getBounds(),c=this.y-b.y;this.y=a+c-b.halfHeight}}),Object.defineProperty(c.Group.prototype,"left",{get:function(){return this.getBounds().left},set:function(a){var b=this.getBounds(),c=this.x-b.x;this.x=a+c}}),Object.defineProperty(c.Group.prototype,"right",{get:function(){return this.getBounds().right},set:function(a){var b=this.getBounds(),c=this.x-b.x;this.x=a+c-b.width}}),Object.defineProperty(c.Group.prototype,"top",{get:function(){return this.getBounds().top},set:function(a){var b=this.getBounds(),c=this.y-b.y;this.y=a+c}}),Object.defineProperty(c.Group.prototype,"bottom",{get:function(){return this.getBounds().bottom},set:function(a){var b=this.getBounds(),c=this.y-b.y;this.y=a+c-b.height}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.config.canvas?this.canvas=this.config.canvas:this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.y0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.interactiveCandidates=[],this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){var b=0,c=-1,d=null,e=this.game.input.interactiveItems.first;for(this.interactiveCandidates=[];e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e))),e=this.game.input.interactiveItems.next;for(e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e)),e=this.game.input.interactiveItems.next;return this.game.input.customCandidateHandler&&(d=this.game.input.customCandidateHandler.call(this.game.input.customCandidateHandlerContext,this,this.interactiveCandidates,d)),this.swapTarget(d,!1),null!==this.targetObject},swapTarget:function(a,b){void 0===b&&(b=!1),null===a?this.targetObject&&(this.targetObject._pointerOutHandler(this,b),this.targetObject=null):null===this.targetObject?(this.targetObject=a,a._pointerOverHandler(this,b)):this.targetObject===a?a.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this,b),this.targetObject=a,this.targetObject._pointerOverHandler(this,b))},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderID>b:!1},isPixelPerfect:function(){return this.pixelPerfectClick||this.pixelPerfectOver},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(!this.enabled)return!1;if(void 0===a){for(var b=0;10>b;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this._pendingDrag?(this._dragDistancePass||(this._dragDistancePass=c.Math.distance(a.x,a.y,this.downPoint.x,this.downPoint.y)>=this.dragDistanceThreshold),this._dragDistancePass&&this._dragTimePass&&this.startDrag(a),!0):this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a,!1):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];if(d.isOver===!1||a.dirty){var e=d.isOver===!1;d.isOver=!0,d.isOut=!1,d.timeOver=this.game.time.time,d.x=a.x-this.sprite.x,d.y=a.y-this.sprite.y,this.useHandCursor&&d.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),!b&&e&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a),this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOver.dispatch(this.sprite,a)}}},_pointerOutHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];d.isOver=!1,d.isOut=!0,d.timeOut=this.game.time.time,this.useHandCursor&&d.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),!b&&this.sprite&&this.sprite.events&&(this.sprite.events.onInputOut$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOut.dispatch(this.sprite,a))}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.downPoint.set(a.x,a.y),a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputDown.dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&this.isDragged===!1&&(0===this.dragTimeThreshold&&0===this.dragDistanceThreshold?this.startDrag(a):(this._pendingDrag=!0,this._dragDistancePass=0===this.dragDistanceThreshold,this.dragTimeThreshold>0?(this._dragTimePass=!1,this.game.time.events.add(this.dragTimeThreshold,this.dragTimeElapsed,this,a)):this._dragTimePass=!0)),this.bringToTop&&this.sprite.bringToTop()}}},dragTimeElapsed:function(a){this._dragTimePass=!0,this._pendingDrag&&this.sprite&&this._dragDistancePass&&this.startDrag(a)},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var d=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.dragStopBlocksInputUp&&(!this.dragStopBlocksInputUp||this.draggable&&this.isDragged&&this._draggedPointerID===a.id)||this.sprite.events.onInputUp$dispatch(this.sprite,a,d),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputUp.dispatch(this.sprite,a,d),d&&(d=this.checkPointerOver(a))),b.isOver=d,!d&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this._pendingDrag=!1,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(void 0===b&&(b=!1),a.isUp)return this.stopDrag(a),!1;var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;if(this.sprite.fixedToCamera)this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y));else{var e=this.game.camera.x-this._pointerData[a.id].camX,f=this.game.camera.y-this._pointerData[a.id].camY;this.allowHorizontalDrag&&(this.sprite.x=c+e),this.allowVerticalDrag&&(this.sprite.y=d+f),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))}return this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1,this._pendingDrag=!1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].camX=this.game.camera.x,this._pointerData[a.id].camY=this.game.camera.y,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera){if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.cameraOffset.x=this.globalToLocalX(a.x)+(this.sprite.cameraOffset.x-d.centerX),this.sprite.cameraOffset.y=this.globalToLocalY(a.y)+(this.sprite.cameraOffset.y-d.centerY)}this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)}else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c),this._pendingDrag=!1},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this._pendingDrag=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),
-this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(this._active){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){
-this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},weapon:function(a,b,d,e){var f=this.game.plugins.add(c.Weapon);return f.createBullets(a,b,d,e),f},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),this.onOverMouseOnly&&!b.isMouse||(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){void 0!==b&&null!==b||(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e,f){void 0!==d&&0!==d||(d=256),void 0!==e&&0!==e||(e=256),void 0===f&&(f=!1),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(this,d,e,null,f),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.smoothProperty=a.renderType===c.CANVAS?a.renderer.renderSession.smoothProperty:c.Canvas.getSmoothingPrefix(this.context),this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):2!==a&&3!==a||(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(void 0!==a&&null!==a||(a=this),(a instanceof c.RenderTexture||a instanceof PIXI.RenderTexture)&&(a=a.getCanvas()),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source,void 0!==g&&null!==g||(g=a.x),void 0!==h&&null!==h||(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if(void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),e&&(this._size.x=e),f&&(this._size.y=f),void 0!==g&&null!==g||(g=b),void 0!==h&&null!==h||(h=d),void 0!==i&&null!==i||(i=this._size.x),void 0!==j&&null!==j||(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyTransform:function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=!1),!a.hasOwnProperty("worldTransform")||!a.worldVisible||0===a.worldAlpha)return this;var e=a.worldTransform;if(this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),0===e.a||0===e.d||0===this._size.x||0===this._size.y)return this;a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source;var f=e.tx,g=e.ty;a.texture.trim&&(f+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,g+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0)),d&&(f|=0,g|=0);var h=this.context;return this._alpha.prev=h.globalAlpha,h.save(),h.globalAlpha=this._alpha.current,b&&(this.op=b),h[this.smoothProperty]=a.texture.baseTexture.scaleMode===PIXI.scaleModes.LINEAR,h.setTransform(e.a,e.b,e.c,e.d,f,g),h.drawImage(this._image,this._pos.x,this._pos.y,this._size.x,this._size.y,-this._size.x*a.anchor.x,-this._size.y*a.anchor.y,this._size.x,this._size.y),h.restore(),h.globalAlpha=this._alpha.prev,this.dirty=!0,this},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.hasOwnProperty("texture")&&this.copyTransform(a,b,d),a.type===c.GROUP&&a.exists)this.drawGroup(a,b,d);else if(a.hasOwnProperty("children")&&a.children.length>0)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,
-this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this.updateLocalBounds(),this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this.updateLocalBounds(),this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this.updateLocalBounds(),this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)f[f.length-2]===a&&f[f.length-1]===b||f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this.updateLocalBounds(),this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this.updateLocalBounds(),this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,this.updateLocalBounds(),b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){
-void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&this.style.maxLinesh;h++){if(0===c){var i=this.style.strokeThickness+this.padding.x;i+=this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(b[h]):this.context.measureText(b[h]).width,this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(j[l]):Math.ceil(this.context.measureText(j[l]).width),l>0&&(k+=c[l-1]),i=k+m}else for(var l=0;l0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(j[l]):Math.ceil(this.context.measureText(j[l]).width);var n=this.game.math.snapToCeil(i,c)-i;i+=n}}d[h]=Math.ceil(i),e=Math.max(e,d[h])}this.canvas.width=e*this._res;var o=f.fontSize+this.style.strokeThickness+this.padding.y,p=o*g,q=this._lineSpacing;0>q&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;g>h;h++)r=this.style.strokeThickness/2,s=this.style.strokeThickness/2+h*o+f.ascent,h>0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var e=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(e.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(e.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(e)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill)),b+=this.context.measureText(d).width,this._charCount++}return Math.ceil(b)},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;d0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f.toString()||"",this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth===this.body.sourceWidth&&this.textHeight===this.body.sourceHeight||this.body.setSize(this.textWidth,this.textHeight))},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=0,h=null,i=this._maxWidth>0?this._maxWidth:null,j=[],k=0;k=i&&f>-1)return{width:g||e,text:c.substr(0,k-(k-f)),end:l,chars:j};e+=(n.xAdvance+p)*b,j.push(d+(n.xOffset+p)*b),d+=(n.xAdvance+p)*b,h=m}return{width:e,text:c,end:l,chars:j}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;void 0!==g&&null!==g||(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,c.Cache.DEFAULT,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,
-c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:!("mp4"!==a||!this.dolby)},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?!("mpeg"!==a||!this.hlsVideo):!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){b=b||256,c=c||256;var f=e?document.createElement("canvas"):PIXI.CanvasPool.create(a,b,c);return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),void 0!==d&&""!==d||(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this.frameBased=d.frameBased,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return!this.expired||!this.autoDestroy},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=!(!b||"number"!=typeof b[0])),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.isReversed=!1,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=this.isReversed?this._frames.length-1:0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},reverse:function(){return this.reversed=!this.reversed,this},reverseOnce:function(){return this.onComplete.addOnce(this.reverse.bind(this)),this.reverse()},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this.isReversed?this._frameIndex-=this._frameSkip:this._frameIndex+=this._frameSkip,!this.isReversed&&this._frameIndex>=this._frames.length||this.isReversed&&this._frameIndex<=-1?this.loop?(this._frameIndex=Math.abs(this._frameIndex)%this._frames.length,this.isReversed&&(this._frameIndex=this._frames.length-1-this._frameIndex),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"reversed",{get:function(){return this.isReversed},set:function(a){this.isReversed=a}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null!=this._frameNames[a]},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f