diff --git a/CHANGELOG.md b/CHANGELOG.md
index 381ef30c8..92146a3c1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# Change Log
+## Version 2.6.1 - "Caemlyn" - 11th July 2016
+
+### Bug Fixes
+
+* Fixed `Uncaught TypeError: Cannot set property 'x' of undefined` in Body.js (thanks @ErwanErwan #2607)
+
## Version 2.6.0 - "Fal Moran" - 8th July 2016
### New Features
diff --git a/README.md b/README.md
index af861d2ae..61b314b38 100644
--- a/README.md
+++ b/README.md
@@ -38,9 +38,17 @@ Grab the source and join in the fun!
-> In Development
+> 11th July 2016
-This is the development branch, where we are building Phaser 2.5.1. 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.
+Welcome to Phaser 2.6.1. Our eighth release this year, and another leap forwards since 2.5.0 less than a month ago. This version includes the work undertaken with adding circular body support into Arcade Physics, allowing you to now define physics bodies as being circles instead of rectangles, something that was previously only available in P2 Physics.
+
+Keeping with Arcade Physics for a moment there are now new events you can listen for, including Body.onWorldBounds, Body.onCollide and Body.onOverlap. Phaser.Groups have also been given a shot in the arm. You can now position them, and all of their children, using the new bounds commands such as left, centerX and bottom. They've also gained the alignTo and alignIn methods from the 2.5 release.
+
+In this release we've undertaken a large amount of work refactoring Pixi. You will find lots of Pixi related methods, that were redundant, removed from the build (such as fromImage). All references to the Pixi Texture and Base Texture caches have also been removed, helping close-off some straggling issues, and free-up lingering resources. Please see the Pixi section of the Change Log for complete details. This will not effect you if you're just using Phaser, but if you had any Pixi specific mods or plugins, they may need checking over.
+
+I've also been working hard on the documentation. Tidying-up functions that didn't have parameter descriptions, adding lots more details to areas such as the Game Object events, and starting the huge task of rewriting all of the Pixi documentation into a more friendly and comprehensive format. This is an on-going task, and will be merged into releases from here-on.
+
+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.
As always, keep you eyes on the Phaser web site, and subscribe to our weekly [newsletter](#newsletter). You can also follow me on [Twitter](https://twitter.com/photonstorm) or chat to me in the Phaser [Slack](http://phaser.io/community/slack) channel.
@@ -105,15 +113,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
@@ -303,32 +311,87 @@ 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.1 - "Caemlyn" - In Development
-
-### New Features
-
-*
-*
-*
-
-### Updates
-
-* TypeScript definitions fixes and updates (thanks )
-* Docs typo fixes (thanks )
+## Version 2.6.1 - "Caemlyn" - 11th July 2016
### Bug Fixes
* Fixed `Uncaught TypeError: Cannot set property 'x' of undefined` in Body.js (thanks @ErwanErwan #2607)
-*
-*
+
+## Version 2.6.0 - "Fal Moran" - 8th July 2016
+
+### New Features
+
+* The Loader has a new property `headers`. This is an object checked by XHR Requests, used to set the Request Header of certain file types. JSON and XML are pre-configured, but you can add to, or modify this property as required (thanks @stoneman1 #2585 #2485)
+* Phaser now has support for Typings, the TypeScript Definition Manager. See the `typescript/readme.md` file for installation instructions (thanks @monagames #2576)
+* Phaser.Utils.reverseString will take the given string, reverse it, and then return it.
+* Phaser.ArrayUtils.rotateRight is the opposite of ArrayUtils.rotate. It takes an array, removes the element from the end of the array, and inserts it at the start, shifting everything else 1 space in the process.
+* Phaser.ArrayUtils.rotateLeft is the new name for Phaser.ArrayUtils.rotate. The old method is now deprecated (but still available in this release)
+* Phaser.Color.toABGR converts RGBA components to a 32 bit integer in AABBGGRR format.
+* ArcadePhysics.Body.setCircle is a new method that allows you to define an Arcade Physics Body as being a circle instead of a rectangle. You can control the radius of the body and the offset from the parent sprite.
+* ArcadePhysics.World.separateCircle is a new method that handles all circular body collisions internally within Arcade Physics (thanks @VitaZheltyakov)
+* All of the Arcade Physics internal methods, such as `collideGroupVsSelf`, `collideSpriteVsSprite` and so on, have been updated to work with circular body shapes (thanks @VitaZheltyakov)
+* ArcadePhysics.Body.onWorldBounds is a new Signal that is dispatched whenever the Body collides with the world bounds, something that was previously difficult to detect. Due to the potentially high volume of signals this could create it is disabled by default. To use this feature set this property to a Phaser.Signal: `sprite.body.onWorldBounds = new Phaser.Signal()` and it will be called when a collision happens, passing five arguments: the sprite on which it occurred, and 4 booleans mapping to up, down, left and right, indicating on which side of the world the collision occurred.
+* ArcadePhysics.Body.onCollide is a new Signal that is dispatched whenever the Body collides with another Body. Due to the potentially high volume of signals this could create it is disabled by default. To use this feature set this property to a Phaser.Signal: `sprite.body.onCollide = new Phaser.Signal()` and it will be called when a collision happens, passing two arguments: the sprites which collided.
+* ArcadePhysics.Body.onOverlap is a new Signal that is dispatched whenever the Body overlaps with another Body. Due to the potentially high volume of signals this could create it is disabled by default. To use this feature set this property to a Phaser.Signal: `sprite.body.onOverlap = new Phaser.Signal()` and it will be called when an overlap happens, passing two arguments: the sprites which collided.
+* Groups now have the following properties, which are getters and setters: `centerX`, `centerY`, `left`, `right`, `top` and `bottom`. These calculate the bounds of the Group, based on all visible children, and then allow you to apply positioning based on that. This means you can, for example, now get the horizontal center of a Group by called `Group.centerX`. These properties are also setters, so you can position the Groups, and it will take scale and rotation into consideration.
+* Groups have a new method `alignIn`. It allows you to align the Group within another Game Object, or a Rectangle. You can specify one of 9 positions which are the new position constants such as: `Phaser.TOP_LEFT` or `Phaser.CENTER` (see docs for the complete list). The Groups are positioned based on their child bounds, which takes rotation and scaling into consideration. You can easily place Groups into the corners of the screen, or game world, or align them within other Sprites, using this method.
+* Groups have a new method `alignTo`. It allows you to align a Group to the side of another Game Object, or a Rectangle. You can specify one of 11 positions which are the new position constants such as: `Phaser.TOP_LEFT` or `Phaser.LEFT_BOTTOM` (see docs for the complete list). The Groups are positioned based on their child bounds, which takes rotation and scaling into consideration. You can easily align Groups next to other Sprites using this method.
+
+### Updates
+
+* TypeScript definitions fixes and updates (thanks @monagames)
+* Docs typo fixes (thanks @drhayes)
+* The TilemapParser will now add more data when importing Image object types from Tiled. The extra data available is: image width, image height, and flags to see if the image is flipped either horizontally, vertically or diagonally (thanks @gotenxds #2564 #2554)
+* TilemapLayer.renderRegion has had an assignment to the obsolete `tileColor` property removed (thanks @cryptographer #2583)
+* Group.getFurthestFrom and Group.getClosestTo has a new optional argument: `callback`. This allows you to apply your own additional filtering to the distance checks, ultimately influencing the selected child (thanks @LoneStranger #2577)
+* Text.setText has a new optional argument `immediate` which will re-create the texture immediately upon call, rather than wait for the next render pass to do so (thanks @Scraft #2594)
+* Phaser.Utils.pad now calls `toString` on the input given, which means you can pass in common data types, such as numbers, and have them padded and returned as strings.
+* The canvas created by Phaser.Debug for use when displaying debug data is no longer stored in the CanvasPool, and is instead a stand-alone canvas, free from ever being re-used by another game object.
+* BitmapData has a new, optional, fifth argument: `skipPool`. By default BitmapData objects will ask for the first free canvas found in the CanvasPool, but this behavior can now be customized on a per object basis.
+* Phaser.ArrayUtils.rotate is now deprecated. Please use Phaser.ArrayUtils.rotateLeft instead.
+* Phaser.Text.fontPropertiesCanvas used to be taken from the CanvasPool, but as it's constantly needed it is now generated directly from the document.
+* The default image texture, for when none is supplied, is now available under `Phaser.Cache.DEFAULT`.
+* The missing image texture, for when an image has failed to load, is now available under `Phaser.Cache.MISSING`.
+* Phaser.Cache.addImage will now check the key given, and if `__default` or `__missing` it will update the new consts `Phaser.Cache.DEFAULT` and `Phaser.Cache.MISSING` accordingly, allowing you to replace the default or missing image textures used by Phaser.
+* Phaser.Cache.getPixiTexture has now been removed, as the Pixi Cache isn't used internally anywhere any longer.
+* Phaser.Cache.getPixiBaseTexture has now been removed, as the Pixi Cache isn't used internally anywhere any longer.
+* The second argument to Phaser.Cache.removeImage has been renamed from `removeFromPixi` to `destroyBaseTexture`, as that is fundamentally what the argument always did.
+* AnimationManager.refreshFrame has been removed as it never actually did anything internally.
+* Sound.stop will check to see if `gainNode` exists before trying to disconnect from it (#2597)
+
+### Bug Fixes
+
+* Fixed issue in Group.align where the cell wouldn't increase if `rows` was great than -1
+* Sound.volume was accidentally repeated twice in the source (thanks @LoneStranger #2569)
+* Animation.setFrame wouldn't work correctly if the `useLocalFrameIndex` argument was true, and the frame ID was a number (thanks @uboot #2571)
+* Polygon.contains would only work with non-flattened Polygon objects. It now works with both flat and non-flat Polygons.
+* Graphics objects enabled for input would fail to do anything if a Phaser Polygon was given to the Graphics object (which it was in nearly all cases), as it wouldn't detect input correctly with flattened polygons (thanks @symbiane #2591)
+* P2.World.clear will now clear out the World.walls property, resetting all of the wall bounds to `null`. This allows the walls to be re-created accurately when the P2 World is reset, which happens on a State change or restart (thanks @ewpolly1 @codermua #2574)
### Pixi Updates
Please note that Phaser uses a custom build of Pixi and always has done. The following changes have been made to our custom build, not to Pixi in general.
-*
-*
-*
+* Removed `_renderWebGL`, `_renderCanvas`, `getLocalBounds` and `getBounds` from PIXI.DisplayObject, as they were only there to pass ancient jshint rules.
+* All Pixi.Graphics methods that change the Graphics, i.e. `drawShape`, `lineTo`, `arc`, etc will now all automatically call `Graphics.updateLocalBounds`. This is so that the bounds of the Graphics object are kept updated, allowing you to scale and rotate the Graphics object and still obtain correct dimensions from it (thanks @kelu-smiley #2573)
+* PIXI.CanvasPool no longer _just_ checks for `null` parent comparisons. It will check for all falsey parents, helping free-up canvases when the parent objects have been removed elsewhere.
+* PIXI.CanvasPool.remove and `removeByCanvas` both now set the removed canvas width and height to 1.
+* PIXI.Texture.fromImage, PIXI.BaseTexture.fromImage and PIXI.Sprite.fromImage have all been removed. They should never have actually been used, as they bypass the Phaser Loader, and don't factor in CORs or any other advanced loader settings.
+* The PIXI.BaseTexture.imageUrl property has been removed, as it was never actually populated.
+* The PIXI.BaseTexture._UID property has been removed, as it was never actually used internally.
+* All references to PIXI.BaseTextureCache have been removed (primarily from BaseTexture.destroy and Texture.destroy), as the BaseTextureCache was never used internally by Phaser, or by our custom version of Pixi.
+* PIXI.TextureCache has been removed. It was only ever used by the __default and __missing images that Phaser generates on start-up. It wasn't used internally by Phaser anywhere else, and the only references Pixi has to it have all been removed. If you need it in your own game, please refactor it to avoid it, or re-create the object on the PIXI global object.
+* Canvases created by `BaseTexture.fromCanvas` no longer have the `_pixiId` property attached to them, as this was never used internally by Phaser or Pixi.
+* PIXI.BaseTexture.updateSourceImage is now deprecated. Please use `Sprite.loadTexture` instead.
+* The property PIXI.BaseTextureCacheIdGenerator has been removed, as it is no longer used internally by Phaser or Pixi.
+* PIXI.Texture.addTextureToCache has been removed. The PIXI Texture Cache was never actually used by Phaser, and was leading to complications internally.
+* PIXI.Texture.removeTextureFromCache has been removed. The PIXI Texture Cache was never actually used by Phaser, and was leading to complications internally.
+* PIXI.Texture.fromFrame and PIXI.Sprite.fromFrame have been removed. They relied on the PIXI Texture Cache, which was never actually used by Phaser, and was never used internally by Pixi either.
+* The property PIXI.TextureCacheIdGenerator has been removed, as it was not used internally.
+* The property PIXI.FrameCache has been removed, as it was not used internally.
+* PIXI.DisplayObjectContainer calls `updateTransform` at the start of `getBounds` to help avoid the bounds being out of date.
+
+Thanks to Corin Wilkins at Aardman Digital, for lots of the investigation work, leading to the Pixi changes listed above.
For changes in previous releases please see the extensive [Version History](https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md).
@@ -363,10 +426,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.0/phaser.js
-[get-minjs]: https://github.com/photonstorm/phaser/releases/download/v2.6.0/phaser.min.js
-[get-zip]: https://github.com/photonstorm/phaser/archive/v2.6.0.zip
-[get-tgz]: https://github.com/photonstorm/phaser/archive/v2.6.0.tar.gz
+[get-js]: https://github.com/photonstorm/phaser/releases/download/v2.6.1/phaser.js
+[get-minjs]: https://github.com/photonstorm/phaser/releases/download/v2.6.1/phaser.min.js
+[get-zip]: https://github.com/photonstorm/phaser/archive/v2.6.1.zip
+[get-tgz]: https://github.com/photonstorm/phaser/archive/v2.6.1.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/creature.js b/build/creature.js
new file mode 100644
index 000000000..6873e9083
--- /dev/null
+++ b/build/creature.js
@@ -0,0 +1,7207 @@
+/**
+ * @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
new file mode 100644
index 000000000..f018483bd
--- /dev/null
+++ b/build/creature.map
@@ -0,0 +1 @@
+{"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
new file mode 100644
index 000000000..69c1dd644
--- /dev/null
+++ b/build/creature.min.js
@@ -0,0 +1,6 @@
+/* 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.min.js b/build/custom/p2.min.js
index a1e028c40..9a2a670ff 100644
--- a/build/custom/p2.min.js
+++ b/build/custom/p2.min.js
@@ -1,4 +1,4 @@
-/* Phaser v2.6.0 P2.JS Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
+/* Phaser v2.6.1 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,
diff --git a/build/custom/phaser-arcade-physics.js b/build/custom/phaser-arcade-physics.js
index c1b21cecd..7ca2c6378 100644
--- a/build/custom/phaser-arcade-physics.js
+++ b/build/custom/phaser-arcade-physics.js
@@ -7,7 +7,7 @@
*
* Phaser - http://phaser.io
*
-* v2.6.0 "Fal Moran" - Built: Fri Jul 08 2016 15:53:13
+* v2.6.1 "Caemlyn" - Built: Mon Jul 11 2016 09:59:57
*
* By Richard Davey http://www.photonstorm.com @photonstorm
*
@@ -9043,7 +9043,7 @@ var Phaser = Phaser || {
* @constant
* @type {string}
*/
- VERSION: '2.6.0',
+ VERSION: '2.6.1',
/**
* An array of Phaser game instances.
@@ -71592,7 +71592,7 @@ Phaser.Physics.Arcade.prototype = {
if (this.skipQuadTree || sprite.body.skipQuadTree)
{
- var bounds;
+ var bounds = {};
for (var i = 0; i < group.hash.length; i++)
{
@@ -71705,7 +71705,7 @@ Phaser.Physics.Arcade.prototype = {
for (var i = 0; i < group.hash.length; i++)
{
- var bounds1;
+ var bounds1 = {};
var object1 = group.hash[i];
// Skip duff entries - we can't check a non-existent sprite or one with no body
@@ -71719,7 +71719,7 @@ Phaser.Physics.Arcade.prototype = {
for (var j = i + 1; j < group.hash.length; j++)
{
- var bounds2;
+ var bounds2 = {};
var object2 = group.hash[j];
// Skip duff entries - we can't check a non-existent sprite or one with no body
diff --git a/build/custom/phaser-arcade-physics.map b/build/custom/phaser-arcade-physics.map
index 755d7d435..738b3633e 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","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
diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js
index 138ca25cd..a35ad1419 100644
--- a/build/custom/phaser-arcade-physics.min.js
+++ b/build/custom/phaser-arcade-physics.min.js
@@ -1,8 +1,8 @@
-/* Phaser v2.6.0 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
+/* Phaser v2.6.1 - 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.0",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",{
+b.CanvasRenderer=function(a){this.game=a,b.defaultRenderer||(b.defaultRenderer=this),this.type=b.CANVAS_RENDERER,this.resolution=a.resolution,this.clearBeforeRender=a.clearBeforeRender,this.transparent=a.transparent,this.autoResize=!1,this.width=a.width*this.resolution,this.height=a.height*this.resolution,this.view=a.canvas,this.context=this.view.getContext("2d",{alpha:this.transparent}),this.refresh=!0,this.count=0,this.maskManager=new b.CanvasMaskManager,this.renderSession={context:this.context,maskManager:this.maskManager,scaleMode:null,smoothProperty:Phaser.Canvas.getSmoothingPrefix(this.context),roundPixels:!1},this.mapBlendModes(),this.resize(this.width,this.height)},b.CanvasRenderer.prototype.constructor=b.CanvasRenderer,b.CanvasRenderer.prototype.render=function(a){this.context.setTransform(1,0,0,1,0,0),this.context.globalAlpha=1,this.renderSession.currentBlendMode=0,this.renderSession.shakeX=this.game.camera._shake.x,this.renderSession.shakeY=this.game.camera._shake.y,this.context.globalCompositeOperation="source-over",navigator.isCocoonJS&&this.view.screencanvas&&(this.context.fillStyle="black",this.context.clear()),this.clearBeforeRender&&(this.transparent?this.context.clearRect(0,0,this.width,this.height):(this.context.fillStyle=a._bgColor.rgba,this.context.fillRect(0,0,this.width,this.height))),this.renderDisplayObject(a)},b.CanvasRenderer.prototype.destroy=function(a){void 0===a&&(a=!0),a&&this.view.parent&&this.view.parent.removeChild(this.view),this.view=null,this.context=null,this.maskManager=null,this.renderSession=null},b.CanvasRenderer.prototype.resize=function(a,c){this.width=a*this.resolution,this.height=c*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.renderSession.smoothProperty&&(this.context[this.renderSession.smoothProperty]=this.renderSession.scaleMode===b.scaleModes.LINEAR)},b.CanvasRenderer.prototype.renderDisplayObject=function(a,b,c){this.renderSession.context=b||this.context,this.renderSession.resolution=this.resolution,a._renderCanvas(this.renderSession,c)},b.CanvasRenderer.prototype.mapBlendModes=function(){if(!b.blendModesCanvas){var a=[],c=b.blendModes,d=b.canUseNewCanvasBlendModes();a[c.NORMAL]="source-over",a[c.ADD]="lighter",a[c.MULTIPLY]=d?"multiply":"source-over",a[c.SCREEN]=d?"screen":"source-over",a[c.OVERLAY]=d?"overlay":"source-over",a[c.DARKEN]=d?"darken":"source-over",a[c.LIGHTEN]=d?"lighten":"source-over",a[c.COLOR_DODGE]=d?"color-dodge":"source-over",a[c.COLOR_BURN]=d?"color-burn":"source-over",a[c.HARD_LIGHT]=d?"hard-light":"source-over",a[c.SOFT_LIGHT]=d?"soft-light":"source-over",a[c.DIFFERENCE]=d?"difference":"source-over",a[c.EXCLUSION]=d?"exclusion":"source-over",a[c.HUE]=d?"hue":"source-over",a[c.SATURATION]=d?"saturation":"source-over",a[c.COLOR]=d?"color":"source-over",a[c.LUMINOSITY]=d?"luminosity":"source-over",b.blendModesCanvas=a}},b.BaseTexture=function(a,c){this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height&&(this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty()),this.skipRender=!1,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},b.BaseTexture.prototype.destroy=function(){this.source&&b.CanvasPool.removeByCanvas(this.source),this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){console.warn("PIXI.BaseTexture.updateSourceImage is deprecated. Use Phaser.Sprite.loadTexture instead.")},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=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._pollCounter=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=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));
var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=b.response}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),this.isPlaying=!1,""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time,this.isPlaying=!0):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),""===this.currentMarker&&(this.currentTime=0,this.startTime=this.game.time.time),this.isPlaying=!1,this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if(void 0!==a&&a!==!1&&null!==a||(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,b),this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this._tempPause=this._sound.currentTime,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.currentTime=this._tempPause,this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=new c.BitmapData(this.game,"__DEBUG",this.game.width,this.game.height,!0),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b0)for(var b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotateRight:function(a){var b=a.pop();return a.unshift(b),b},rotateLeft:function(a){var b=a.shift();return a.push(b),b},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){void 0!==a&&null!==a||(a=0),void 0!==b&&null!==b||(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),
-b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return void 0!==b&&null!==b||(b=c.Color.createColor()),void 0!==d&&null!==d||(d=!1),void 0!==e&&null!==e||(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},toABGR:function(a,b,c,d){return(d<<24|c<<16|b<<8|a)>>>0},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body)if(this.skipQuadTree||a.body.skipQuadTree)for(var h,i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,j,d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var k=this.quadTree.retrieve(a),i=0;ik.right)continue;if(k.x>h.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.bottomk.bottom)continue;if(k.y>i.body.bottom)break}this.collideSpriteVsSprite(i,l,b,d,e,f)}}}}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;hh.bottom)&&(i.xh.right))return this.separateCircle(a,b,e)}var j=!1,k=!1;this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:!(a.position.y>=b.bottom)},circleBodyIntersects:function(a,b){var d=c.Math.clamp(a.center.x,b.left,b.right),e=c.Math.clamp(a.center.y,b.top,b.bottom),f=(a.center.x-d)*(a.center.x-d),g=(a.center.y-e)*(a.center.y-e);return f+g<=a.radius*a.radius},separateCircle:function(a,b,d){this.getOverlapX(a,b),this.getOverlapY(a,b);var e=this.angleBetweenCenters(a,b),f=0;if(a.isCircle!==b.isCircle){var g={x:b.isCircle?a.position.x:b.position.x,y:b.isCircle?a.position.y:b.position.y,right:b.isCircle?a.right:b.right,bottom:b.isCircle?a.bottom:b.bottom},h={x:a.isCircle?a.position.x+a.radius:b.position.x+b.radius,y:a.isCircle?a.position.y+a.radius:b.position.y+b.radius,radius:a.isCircle?a.radius:b.radius};h.yg.right&&(f=c.Math.distance(h.x,h.y,g.right,g.y)-h.radius):h.y>g.bottom&&(h.xg.right&&(f=c.Math.distance(h.x,h.y,g.right,g.bottom)-h.radius)),f*=-1}else f=a.radius+b.radius-c.Math.distance(a.center.x,a.center.y,b.center.x,b.center.y);if(d||0===f||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==f&&(a.onOverlap&&a.onOverlap.dispatch(a.sprite,b.sprite),b.onOverlap&&b.onOverlap.dispatch(b.sprite,a.sprite)),0!==f;var i={x:a.velocity.x*Math.cos(e)+a.velocity.y*Math.sin(e),y:a.velocity.x*Math.sin(e)-a.velocity.y*Math.cos(e)},j={x:b.velocity.x*Math.cos(e)+b.velocity.y*Math.sin(e),y:b.velocity.x*Math.sin(e)-b.velocity.y*Math.cos(e)},k=((a.mass-b.mass)*i.x+2*b.mass*j.x)/(a.mass+b.mass),l=(2*a.mass*i.x+(b.mass-a.mass)*j.x)/(a.mass+b.mass);return a.immovable||(a.velocity.x=(k*Math.cos(e)-i.y*Math.sin(e))*a.bounce.x,a.velocity.y=(i.y*Math.cos(e)+k*Math.sin(e))*a.bounce.y),b.immovable||(b.velocity.x=(l*Math.cos(e)-j.y*Math.sin(e))*b.bounce.x,b.velocity.y=(j.y*Math.cos(e)+l*Math.sin(e))*b.bounce.y),Math.abs(e)0&&!a.immovable&&b.velocity.x>a.velocity.x?a.velocity.x*=-1:b.velocity.x<0&&!b.immovable&&a.velocity.x0&&!a.immovable&&b.velocity.y>a.velocity.y?a.velocity.y*=-1:b.velocity.y<0&&!b.immovable&&a.velocity.yMath.PI/2&&(a.velocity.x<0&&!a.immovable&&b.velocity.x0&&!b.immovable&&a.velocity.x>b.velocity.x?b.velocity.x*=-1:a.velocity.y<0&&!a.immovable&&b.velocity.y0&&!b.immovable&&a.velocity.x>b.velocity.y&&(b.velocity.y*=-1)),a.immovable||(a.x+=a.velocity.x*this.game.time.physicsElapsed-f*Math.cos(e),a.y+=a.velocity.y*this.game.time.physicsElapsed-f*Math.sin(e)),b.immovable||(b.x+=b.velocity.x*this.game.time.physicsElapsed+f*Math.cos(e),b.y+=b.velocity.y*this.game.time.physicsElapsed+f*Math.sin(e)),a.onCollide&&a.onCollide.dispatch(a.sprite,b.sprite),b.onCollide&&b.onCollide.dispatch(b.sprite,a.sprite),!0},getOverlapX:function(a,b,c){var d=0,e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e&&!c||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e&&!c||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,d},getOverlapY:function(a,b,c){var d=0,e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e&&!c||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e&&!c||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,d},separateX:function(a,b,c){var d=this.getOverlapX(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b,c){void 0===c&&(c=!1);var d=c?a.world.x-b.world.x:a.x-b.x,e=c?a.world.y-b.world.y:a.y-b.y;return Math.sqrt(d*d+e*e)},distanceToXY:function(a,b,c,d){void 0===d&&(d=!1);var e=d?a.world.x-b:a.x-b,f=d?a.world.y-c:a.y-c;return Math.sqrt(e*e+f*f)},distanceToPointer:function(a,b,c){void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1);var d=c?a.world.x-b.worldX:a.x-b.worldX,e=c?a.world.y-b.worldY:a.y-b.worldY;return Math.sqrt(d*d+e*e)},angleBetween:function(a,b,c){return void 0===c&&(c=!1),c?Math.atan2(b.world.y-a.world.y,b.world.x-a.world.x):Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenCenters:function(a,b){var c=b.center.x-a.center.x,d=b.center.y-a.center.y;return Math.atan2(d,c)},angleToXY:function(a,b,c,d){return void 0===d&&(d=!1),d?Math.atan2(c-a.world.y,b-a.world.x):Math.atan2(c-a.y,b-a.x)},angleToPointer:function(a,b,c){return void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1),c?Math.atan2(b.worldY-a.world.y,b.worldX-a.world.x):Math.atan2(b.worldY-a.y,b.worldX-a.x)},worldAngleToPointer:function(a,b){return this.angleToPointer(a,b,!0)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.isCircle=!1,this.radius=0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point,this.deltaMax=new c.Point,this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point,this.bounce=new c.Point,this.worldBounce=null,this.onWorldBounds=null,this.onCollide=null,this.onOverlap=null,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.overlapR=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this.isMoving=!1,this.stopVelocityOnCollide=!0,this.moveTimer=0,this.moveDistance=0,this.moveDuration=0,this.moveTarget=null,this.moveEnd=null,this.onMoveComplete=new c.Signal,this.movementCallback=null,this.movementCallbackContext=null,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),a.width===this.width&&a.height===this.height||(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);b===this._sx&&c===this._sy||(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),
-this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,this.position.x===this.prev.x&&this.position.y===this.prev.y||(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()&&this.onWorldBounds&&this.onWorldBounds.dispatch(this.sprite,this.blocked.up,this.blocked.down,this.blocked.left,this.blocked.right)),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},updateMovement:function(){var a=0,b=0!==this.overlapX||0!==this.overlapY;if(this.moveDuration>0?(this.moveTimer+=this.game.time.elapsedMS,a=this.moveTimer/this.moveDuration):(this.moveTarget.end.set(this.position.x,this.position.y),a=this.moveTarget.length/this.moveDistance),this.movementCallback)var c=this.movementCallback.call(this.movementCallbackContext,this,this.velocity,a);return b||a>=1||void 0!==c&&c!==!0?(this.stopMovement(a>=1||this.stopVelocityOnCollide&&b),!1):!0},stopMovement:function(a){this.isMoving&&(this.isMoving=!1,a&&this.velocity.set(0),this.onMoveComplete.dispatch(this.sprite,0!==this.overlapX||0!==this.overlapY))},postUpdate:function(){this.enable&&this.dirty&&(this.isMoving&&this.updateMovement(),this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision,d=this.worldBounce?-this.worldBounce.x:-this.bounce.x,e=this.worldBounce?-this.worldBounce.y:-this.bounce.y;if(this.isCircle){var f={x:this.center.x-this.radius,y:this.center.y-this.radius,right:this.center.x+this.radius,bottom:this.center.y+this.radius};f.xb.right&&c.right&&(a.x=b.right-this.halfWidth-this.radius,this.velocity.x*=d,this.blocked.right=!0),f.yb.bottom&&c.down&&(a.y=b.bottom-this.halfHeight-this.radius,this.velocity.y*=e,this.blocked.down=!0)}else a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=d,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=e,this.blocked.down=!0);return this.blocked.up||this.blocked.down||this.blocked.left||this.blocked.right},moveFrom:function(a,b,c){if(void 0===b&&(b=this.speed),0===b)return!1;var d;return void 0===c?(d=this.angle,c=this.game.math.radToDeg(d)):d=this.game.math.degToRad(c),this.moveTimer=0,this.moveDuration=a,0===c||180===c?this.velocity.set(Math.cos(d)*b,0):90===c||270===c?this.velocity.set(0,Math.sin(d)*b):this.velocity.set(Math.cos(d)*b,Math.sin(d)*b),this.isMoving=!0,!0},moveTo:function(a,b,d){var e=b/(a/1e3);if(0===e)return!1;var f;return void 0===d?(f=this.angle,d=this.game.math.radToDeg(f)):f=this.game.math.degToRad(d),b=Math.abs(b),this.moveDuration=0,this.moveDistance=b,null===this.moveTarget&&(this.moveTarget=new c.Line,this.moveEnd=new c.Point),this.moveTarget.fromAngle(this.x,this.y,f,b),this.moveEnd.set(this.moveTarget.end.x,this.moveTarget.end.y),this.moveTarget.setTo(this.x,this.y,this.x,this.y),0===d||180===d?this.velocity.set(Math.cos(f)*e,0):90===d||270===d?this.velocity.set(0,Math.sin(f)*e):this.velocity.set(Math.cos(f)*e,Math.sin(f)*e),this.isMoving=!0,!0},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.isCircle=!1,this.radius=0},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=b-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},getBounds:function(a){return this.isCircle?(a.x=this.center.x-this.radius,a.y=this.center.y-this.radius,a.right=this.center.x+this.radius,a.bottom=this.center.y+this.radius):(a.x=this.x,a.y=this.y,a.right=this.right,a.bottom=this.bottom),a},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",a.fillStyle=c,a.strokeStyle=c,b.isCircle?(a.beginPath(),a.arc(b.center.x-b.game.camera.x,b.center.y-b.game.camera.y,b.radius,0,2*Math.PI),d?a.fill():a.stroke()):d?a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height):a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?j=-1:b.deltaAbsX()j){if((c.faceLeft||c.faceRight)&&(h=this.tileCheckX(b,c,d),0!==h&&!c.intersects(b.position.x-f,b.position.y-g,b.right-f,b.bottom-g)))return!0;(c.faceTop||c.faceBottom)&&(i=this.tileCheckY(b,c,d))}else{if((c.faceTop||c.faceBottom)&&(i=this.tileCheckY(b,c,d),0!==i&&!c.intersects(b.position.x-f,b.position.y-g,b.right-f,b.bottom-g)))return!0;(c.faceLeft||c.faceRight)&&(h=this.tileCheckX(b,c,d))}return 0!==h||0!==i},tileCheckX:function(a,b,c){var d=0,e=c.fixedToCamera?0:c.position.x;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x-e0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right-e>b.left&&(d=a.right-e-b.left,d>this.TILE_BIAS&&(d=0)),0!==d&&(a.customSeparateX?a.overlapX=d:this.processTileSeparationX(a,d)),d},tileCheckY:function(a,b,c){var d=0,e=c.fixedToCamera?0:c.position.y;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y-e0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom-e>b.top&&(d=a.bottom-e-b.top,d>this.TILE_BIAS&&(d=0)),0!==d&&(a.customSeparateY?a.overlapY=d:this.processTileSeparationY(a,d)),d},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:!(b>=this.worldY+this.height)},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if(void 0!==b&&null!==b||(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+g):f?e.add(new c.TilemapLayerGL(this.game,this,g,b,d)):e.add(new c.TilemapLayer(this.game,this,g,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y},c.TilemapLayer.prototype._renderCanvas=function(a){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,
-this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y,this.render(),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.TilemapLayer.prototype._renderWebGL=function(a){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y,this.render(),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 1===this.scrollFactorX||0===this.scrollFactorX&&0===this.position.x?a:0===this.scrollFactorX&&0!==this.position.x?a-this.position.x:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 1===this.scrollFactorY||0===this.scrollFactorY&&0===this.position.y?a:0===this.scrollFactorY&&0!==this.position.y?a-this.position.y:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,f.renderWidth===b&&f.renderHeight===c||(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,FLIPPED_HORIZONTALLY_FLAG:2147483648,FLIPPED_VERTICALLY_FLAG:1073741824,FLIPPED_DIAGONALLY_FLAG:536870912,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j,delete g.encoding}else if(g.compression){console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '"+g.name+"'");continue}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H=this,I={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties,horizontallyFlipped:F.objects[G].gid&H.FLIPPED_HORIZONTALLY_FLAG,verticallyFlipped:F.objects[G].gid&H.FLIPPED_VERTICALLY_FLAG,diagonallyFlipped:F.objects[G].gid&H.FLIPPED_DIAGONALLY_FLAG};F.objects[G].rotation&&(I.rotation=F.objects[G].rotation),D[F.name].push(I)}else if(F.objects[G].polyline){var I={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(I.rotation=F.objects[G].rotation),I.polyline=[];for(var J=0;J=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return void 0!==c&&0!==c||(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),void 0!==c&&null!==c||(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):this._minParticleScale.x===this._maxParticleScale.x&&this._minParticleScale.y===this._maxParticleScale.y||e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Weapon=function(a,b){c.Plugin.call(this,a,b),this.bullets=null,this.autoExpandBulletsGroup=!1,this.autofire=!1,this.shots=0,this.fireLimit=0,this.fireRate=100,this.fireRateVariance=0,this.fireFrom=new c.Rectangle(0,0,1,1),this.fireAngle=c.ANGLE_UP,this.bulletInheritSpriteSpeed=!1,this.bulletAnimation="",this.bulletFrameRandom=!1,this.bulletFrameCycle=!1,this.bulletWorldWrap=!1,this.bulletWorldWrapPadding=0,this.bulletAngleOffset=0,this.bulletAngleVariance=0,this.bulletSpeed=200,this.bulletSpeedVariance=0,this.bulletLifespan=0,this.bulletKillDistance=0,this.bulletGravity=new c.Point(0,0),this.bulletRotateToVelocity=!1,this.bulletKey="",this.bulletFrame="",this._bulletClass=c.Bullet,this._bulletCollideWorldBounds=!1,this._bulletKillType=c.Weapon.KILL_WORLD_BOUNDS,this._data={customBody:!1,width:0,height:0,offsetX:0,offsetY:0},this.bounds=new c.Rectangle,this.bulletBounds=a.world.bounds,this.bulletFrames=[],this.bulletFrameIndex=0,this.anims={},this.onFire=new c.Signal,this.onKill=new c.Signal,this.onFireLimit=new c.Signal,this.trackedSprite=null,this.trackedPointer=null,this.trackRotation=!1,this.trackOffset=new c.Point,this._nextFire=0},c.Weapon.prototype=Object.create(c.Plugin.prototype),c.Weapon.prototype.constructor=c.Weapon,c.Weapon.KILL_NEVER=0,c.Weapon.KILL_LIFESPAN=1,c.Weapon.KILL_DISTANCE=2,c.Weapon.KILL_WEAPON_BOUNDS=3,c.Weapon.KILL_CAMERA_BOUNDS=4,c.Weapon.KILL_WORLD_BOUNDS=5,c.Weapon.KILL_STATIC_BOUNDS=6,c.Weapon.prototype.createBullets=function(a,b,d,e){return void 0===a&&(a=1),void 0===e&&(e=this.game.world),this.bullets||(this.bullets=this.game.add.physicsGroup(c.Physics.ARCADE,e),this.bullets.classType=this._bulletClass),0!==a&&(-1===a&&(this.autoExpandBulletsGroup=!0,a=1),this.bullets.createMultiple(a,b,d),this.bullets.setAll("data.bulletManager",this),this.bulletKey=b,this.bulletFrame=d),this},c.Weapon.prototype.forEach=function(a,b){return this.bullets.forEachExists(a,b,arguments),this},c.Weapon.prototype.pauseAll=function(){return this.bullets.setAll("body.enable",!1),this},c.Weapon.prototype.resumeAll=function(){return this.bullets.setAll("body.enable",!0),this},c.Weapon.prototype.killAll=function(){return this.bullets.callAllExists("kill",!0),this.bullets.setAll("body.enable",!0),this},c.Weapon.prototype.resetShots=function(a){return this.shots=0,void 0!==a&&(this.fireLimit=a),this},c.Weapon.prototype.destroy=function(){this.parent.remove(this,!1),this.bullets.destroy(),this.game=null,this.parent=null,this.active=!1,this.visible=!1},c.Weapon.prototype.update=function(){this._bulletKillType===c.Weapon.KILL_WEAPON_BOUNDS&&(this.trackedSprite?(this.trackedSprite.updateTransform(),this.bounds.centerOn(this.trackedSprite.worldPosition.x,this.trackedSprite.worldPosition.y)):this.trackedPointer&&this.bounds.centerOn(this.trackedPointer.worldX,this.trackedPointer.worldY)),this.autofire&&this.game.time.now0&&this.shots===this.fireLimit)return!1;var e=this.bulletSpeed;0!==this.bulletSpeedVariance&&(e+=c.Math.between(-this.bulletSpeedVariance,this.bulletSpeedVariance)),a?this.fireFrom.width>1?this.fireFrom.centerOn(a.x,a.y):(this.fireFrom.x=a.x,this.fireFrom.y=a.y):this.trackedSprite?(this.fireFrom.width>1?this.fireFrom.centerOn(this.trackedSprite.world.x+this.trackOffset.x,this.trackedSprite.world.y+this.trackOffset.y):(this.fireFrom.x=this.trackedSprite.world.x+this.trackOffset.x,this.fireFrom.y=this.trackedSprite.world.y+this.trackOffset.y),this.bulletInheritSpriteSpeed&&(e+=this.trackedSprite.body.speed)):this.trackedPointer&&(this.fireFrom.width>1?this.fireFrom.centerOn(this.trackedPointer.world.x+this.trackOffset.x,this.trackedPointer.world.y+this.trackOffset.y):(this.fireFrom.x=this.trackedPointer.world.x+this.trackOffset.x,this.fireFrom.y=this.trackedPointer.world.y+this.trackOffset.y));var f=this.fireFrom.width>1?this.fireFrom.randomX:this.fireFrom.x,g=this.fireFrom.height>1?this.fireFrom.randomY:this.fireFrom.y,h=this.trackRotation?this.trackedSprite.angle:this.fireAngle;void 0!==b&&void 0!==d&&(h=this.game.math.radToDeg(Math.atan2(d-g,b-f))),0!==this.bulletAngleVariance&&(h+=c.Math.between(-this.bulletAngleVariance,this.bulletAngleVariance));var i=0,j=0;0===h||180===h?i=Math.cos(this.game.math.degToRad(h))*e:90===h||270===h?j=Math.sin(this.game.math.degToRad(h))*e:(i=Math.cos(this.game.math.degToRad(h))*e,j=Math.sin(this.game.math.degToRad(h))*e);
-var k=null;if(this.autoExpandBulletsGroup?(k=this.bullets.getFirstExists(!1,!0,f,g,this.bulletKey,this.bulletFrame),k.data.bulletManager=this):k=this.bullets.getFirstExists(!1),k){if(k.reset(f,g),k.data.fromX=f,k.data.fromY=g,k.data.killType=this.bulletKillType,k.data.killDistance=this.bulletKillDistance,k.data.rotateToVelocity=this.bulletRotateToVelocity,this.bulletKillType===c.Weapon.KILL_LIFESPAN&&(k.lifespan=this.bulletLifespan),k.angle=h+this.bulletAngleOffset,""!==this.bulletAnimation){if(null===k.animations.getAnimation(this.bulletAnimation)){var l=this.anims[this.bulletAnimation];k.animations.add(l.name,l.frames,l.frameRate,l.loop,l.useNumericIndex)}k.animations.play(this.bulletAnimation)}else this.bulletFrameCycle?(k.frame=this.bulletFrames[this.bulletFrameIndex],this.bulletFrameIndex++,this.bulletFrameIndex>=this.bulletFrames.length&&(this.bulletFrameIndex=0)):this.bulletFrameRandom&&(k.frame=this.bulletFrames[Math.floor(Math.random()*this.bulletFrames.length)]);k.data.bodyDirty&&(this._data.customBody&&k.body.setSize(this._data.width,this._data.height,this._data.offsetX,this._data.offsetY),k.body.collideWorldBounds=this.bulletCollideWorldBounds,k.data.bodyDirty=!1),k.body.velocity.set(i,j),k.body.gravity.set(this.bulletGravity.x,this.bulletGravity.y),this._nextFire=this.game.time.now+this.fireRate,this.shots++,this.onFire.dispatch(k,this,e),this.fireLimit>0&&this.shots===this.fireLimit&&this.onFireLimit.dispatch(this,this.fireLimit)}},c.Weapon.prototype.fireAtPointer=function(a){return void 0===a&&(a=this.game.input.activePointer),this.fire(null,a.worldX,a.worldY)},c.Weapon.prototype.fireAtSprite=function(a){return this.fire(null,a.world.x,a.world.y)},c.Weapon.prototype.fireAtXY=function(a,b){return this.fire(null,a,b)},c.Weapon.prototype.setBulletBodyOffset=function(a,b,c,d){return void 0===c&&(c=0),void 0===d&&(d=0),this._data.customBody=!0,this._data.width=a,this._data.height=b,this._data.offsetX=c,this._data.offsetY=d,this.bullets.callAll("body.setSize","body",a,b,c,d),this.bullets.setAll("data.bodyDirty",!1),this},c.Weapon.prototype.setBulletFrames=function(a,b,d,e){return void 0===d&&(d=!0),void 0===e&&(e=!1),this.bulletFrames=c.ArrayUtils.numberArray(a,b),this.bulletFrameIndex=0,this.bulletFrameCycle=d,this.bulletFrameRandom=e,this},c.Weapon.prototype.addBulletAnimation=function(a,b,c,d,e){return this.anims[a]={name:a,frames:b,frameRate:c,loop:d,useNumericIndex:e},this.bullets.callAll("animations.add","animations",a,b,c,d,e),this.bulletAnimation=a,this},c.Weapon.prototype.debug=function(a,b,c){void 0===a&&(a=16),void 0===b&&(b=32),void 0===c&&(c=!1),this.game.debug.text("Weapon Plugin",a,b),this.game.debug.text("Bullets Alive: "+this.bullets.total+" - Total: "+this.bullets.length,a,b+24),c&&this.bullets.forEachExists(this.game.debug.body,this.game.debug,"rgba(255, 0, 255, 0.8)")},Object.defineProperty(c.Weapon.prototype,"bulletClass",{get:function(){return this._bulletClass},set:function(a){this._bulletClass=a,this.bullets.classType=this._bulletClass}}),Object.defineProperty(c.Weapon.prototype,"bulletKillType",{get:function(){return this._bulletKillType},set:function(a){switch(a){case c.Weapon.KILL_STATIC_BOUNDS:case c.Weapon.KILL_WEAPON_BOUNDS:this.bulletBounds=this.bounds;break;case c.Weapon.KILL_CAMERA_BOUNDS:this.bulletBounds=this.game.camera.view;break;case c.Weapon.KILL_WORLD_BOUNDS:this.bulletBounds=this.game.world.bounds}this._bulletKillType=a}}),Object.defineProperty(c.Weapon.prototype,"bulletCollideWorldBounds",{get:function(){return this._bulletCollideWorldBounds},set:function(a){this._bulletCollideWorldBounds=a,this.bullets.setAll("body.collideWorldBounds",a),this.bullets.setAll("data.bodyDirty",!1)}}),Object.defineProperty(c.Weapon.prototype,"x",{get:function(){return this.fireFrom.x},set:function(a){this.fireFrom.x=a}}),Object.defineProperty(c.Weapon.prototype,"y",{get:function(){return this.fireFrom.y},set:function(a){this.fireFrom.y=a}}),c.Bullet=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.anchor.set(.5),this.data={bulletManager:null,fromX:0,fromY:0,bodyDirty:!0,rotateToVelocity:!1,killType:0,killDistance:0}},c.Bullet.prototype=Object.create(c.Sprite.prototype),c.Bullet.prototype.constructor=c.Bullet,c.Bullet.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.data.bulletManager.onKill.dispatch(this),this},c.Bullet.prototype.update=function(){this.exists&&(this.data.killType>c.Weapon.KILL_LIFESPAN&&(this.data.killType===c.Weapon.KILL_DISTANCE?this.game.physics.arcade.distanceToXY(this,this.data.fromX,this.data.fromY,!0)>this.data.killDistance&&this.kill():this.data.bulletManager.bulletBounds.intersects(this)||this.kill()),this.data.rotateToVelocity&&(this.rotation=Math.atan2(this.body.velocity.y,this.body.velocity.x)),this.data.bulletManager.bulletWorldWrap&&this.game.world.wrap(this,this.data.bulletManager.bulletWorldWrapPadding))},c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(c.Cache.DEFAULT.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;void 0!==b&&null!==b||(b=this.video.videoWidth,d=!0),void 0!==c&&null!==c||(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),this.video.addEventListener("webkitendfullscreen",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.active?this.videoStream.active=!1:this.videoStream.getTracks?this.videoStream.getTracks().forEach(function(a){a.stop()}):this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this._endCallback,!0),this.video.removeEventListener("webkitendfullscreen",this._endCallback,!0),this.video.removeEventListener("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this);
+b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return void 0!==b&&null!==b||(b=c.Color.createColor()),void 0!==d&&null!==d||(d=!1),void 0!==e&&null!==e||(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},toABGR:function(a,b,c,d){return(d<<24|c<<16|b<<8|a)>>>0},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body)if(this.skipQuadTree||a.body.skipQuadTree)for(var h={},i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,j,d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var k=this.quadTree.retrieve(a),i=0;ik.right)continue;if(k.x>h.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.bottomk.bottom)continue;if(k.y>i.body.bottom)break}this.collideSpriteVsSprite(i,l,b,d,e,f)}}}}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;hh.bottom)&&(i.xh.right))return this.separateCircle(a,b,e)}var j=!1,k=!1;this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:!(a.position.y>=b.bottom)},circleBodyIntersects:function(a,b){var d=c.Math.clamp(a.center.x,b.left,b.right),e=c.Math.clamp(a.center.y,b.top,b.bottom),f=(a.center.x-d)*(a.center.x-d),g=(a.center.y-e)*(a.center.y-e);return f+g<=a.radius*a.radius},separateCircle:function(a,b,d){this.getOverlapX(a,b),this.getOverlapY(a,b);var e=this.angleBetweenCenters(a,b),f=0;if(a.isCircle!==b.isCircle){var g={x:b.isCircle?a.position.x:b.position.x,y:b.isCircle?a.position.y:b.position.y,right:b.isCircle?a.right:b.right,bottom:b.isCircle?a.bottom:b.bottom},h={x:a.isCircle?a.position.x+a.radius:b.position.x+b.radius,y:a.isCircle?a.position.y+a.radius:b.position.y+b.radius,radius:a.isCircle?a.radius:b.radius};h.yg.right&&(f=c.Math.distance(h.x,h.y,g.right,g.y)-h.radius):h.y>g.bottom&&(h.xg.right&&(f=c.Math.distance(h.x,h.y,g.right,g.bottom)-h.radius)),f*=-1}else f=a.radius+b.radius-c.Math.distance(a.center.x,a.center.y,b.center.x,b.center.y);if(d||0===f||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==f&&(a.onOverlap&&a.onOverlap.dispatch(a.sprite,b.sprite),b.onOverlap&&b.onOverlap.dispatch(b.sprite,a.sprite)),0!==f;var i={x:a.velocity.x*Math.cos(e)+a.velocity.y*Math.sin(e),y:a.velocity.x*Math.sin(e)-a.velocity.y*Math.cos(e)},j={x:b.velocity.x*Math.cos(e)+b.velocity.y*Math.sin(e),y:b.velocity.x*Math.sin(e)-b.velocity.y*Math.cos(e)},k=((a.mass-b.mass)*i.x+2*b.mass*j.x)/(a.mass+b.mass),l=(2*a.mass*i.x+(b.mass-a.mass)*j.x)/(a.mass+b.mass);return a.immovable||(a.velocity.x=(k*Math.cos(e)-i.y*Math.sin(e))*a.bounce.x,a.velocity.y=(i.y*Math.cos(e)+k*Math.sin(e))*a.bounce.y),b.immovable||(b.velocity.x=(l*Math.cos(e)-j.y*Math.sin(e))*b.bounce.x,b.velocity.y=(j.y*Math.cos(e)+l*Math.sin(e))*b.bounce.y),Math.abs(e)0&&!a.immovable&&b.velocity.x>a.velocity.x?a.velocity.x*=-1:b.velocity.x<0&&!b.immovable&&a.velocity.x0&&!a.immovable&&b.velocity.y>a.velocity.y?a.velocity.y*=-1:b.velocity.y<0&&!b.immovable&&a.velocity.yMath.PI/2&&(a.velocity.x<0&&!a.immovable&&b.velocity.x0&&!b.immovable&&a.velocity.x>b.velocity.x?b.velocity.x*=-1:a.velocity.y<0&&!a.immovable&&b.velocity.y0&&!b.immovable&&a.velocity.x>b.velocity.y&&(b.velocity.y*=-1)),a.immovable||(a.x+=a.velocity.x*this.game.time.physicsElapsed-f*Math.cos(e),a.y+=a.velocity.y*this.game.time.physicsElapsed-f*Math.sin(e)),b.immovable||(b.x+=b.velocity.x*this.game.time.physicsElapsed+f*Math.cos(e),b.y+=b.velocity.y*this.game.time.physicsElapsed+f*Math.sin(e)),a.onCollide&&a.onCollide.dispatch(a.sprite,b.sprite),b.onCollide&&b.onCollide.dispatch(b.sprite,a.sprite),!0},getOverlapX:function(a,b,c){var d=0,e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e&&!c||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e&&!c||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,d},getOverlapY:function(a,b,c){var d=0,e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e&&!c||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e&&!c||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,d},separateX:function(a,b,c){var d=this.getOverlapX(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b,c){void 0===c&&(c=!1);var d=c?a.world.x-b.world.x:a.x-b.x,e=c?a.world.y-b.world.y:a.y-b.y;return Math.sqrt(d*d+e*e)},distanceToXY:function(a,b,c,d){void 0===d&&(d=!1);var e=d?a.world.x-b:a.x-b,f=d?a.world.y-c:a.y-c;return Math.sqrt(e*e+f*f)},distanceToPointer:function(a,b,c){void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1);var d=c?a.world.x-b.worldX:a.x-b.worldX,e=c?a.world.y-b.worldY:a.y-b.worldY;return Math.sqrt(d*d+e*e)},angleBetween:function(a,b,c){return void 0===c&&(c=!1),c?Math.atan2(b.world.y-a.world.y,b.world.x-a.world.x):Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenCenters:function(a,b){var c=b.center.x-a.center.x,d=b.center.y-a.center.y;return Math.atan2(d,c)},angleToXY:function(a,b,c,d){return void 0===d&&(d=!1),d?Math.atan2(c-a.world.y,b-a.world.x):Math.atan2(c-a.y,b-a.x)},angleToPointer:function(a,b,c){return void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1),c?Math.atan2(b.worldY-a.world.y,b.worldX-a.world.x):Math.atan2(b.worldY-a.y,b.worldX-a.x)},worldAngleToPointer:function(a,b){return this.angleToPointer(a,b,!0)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.isCircle=!1,this.radius=0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point,this.deltaMax=new c.Point,this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point,this.bounce=new c.Point,this.worldBounce=null,this.onWorldBounds=null,this.onCollide=null,this.onOverlap=null,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.overlapR=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this.isMoving=!1,this.stopVelocityOnCollide=!0,this.moveTimer=0,this.moveDistance=0,this.moveDuration=0,this.moveTarget=null,this.moveEnd=null,this.onMoveComplete=new c.Signal,this.movementCallback=null,this.movementCallbackContext=null,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),a.width===this.width&&a.height===this.height||(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);b===this._sx&&c===this._sy||(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),
+this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,this.position.x===this.prev.x&&this.position.y===this.prev.y||(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()&&this.onWorldBounds&&this.onWorldBounds.dispatch(this.sprite,this.blocked.up,this.blocked.down,this.blocked.left,this.blocked.right)),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},updateMovement:function(){var a=0,b=0!==this.overlapX||0!==this.overlapY;if(this.moveDuration>0?(this.moveTimer+=this.game.time.elapsedMS,a=this.moveTimer/this.moveDuration):(this.moveTarget.end.set(this.position.x,this.position.y),a=this.moveTarget.length/this.moveDistance),this.movementCallback)var c=this.movementCallback.call(this.movementCallbackContext,this,this.velocity,a);return b||a>=1||void 0!==c&&c!==!0?(this.stopMovement(a>=1||this.stopVelocityOnCollide&&b),!1):!0},stopMovement:function(a){this.isMoving&&(this.isMoving=!1,a&&this.velocity.set(0),this.onMoveComplete.dispatch(this.sprite,0!==this.overlapX||0!==this.overlapY))},postUpdate:function(){this.enable&&this.dirty&&(this.isMoving&&this.updateMovement(),this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision,d=this.worldBounce?-this.worldBounce.x:-this.bounce.x,e=this.worldBounce?-this.worldBounce.y:-this.bounce.y;if(this.isCircle){var f={x:this.center.x-this.radius,y:this.center.y-this.radius,right:this.center.x+this.radius,bottom:this.center.y+this.radius};f.xb.right&&c.right&&(a.x=b.right-this.halfWidth-this.radius,this.velocity.x*=d,this.blocked.right=!0),f.yb.bottom&&c.down&&(a.y=b.bottom-this.halfHeight-this.radius,this.velocity.y*=e,this.blocked.down=!0)}else a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=d,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=e,this.blocked.down=!0);return this.blocked.up||this.blocked.down||this.blocked.left||this.blocked.right},moveFrom:function(a,b,c){if(void 0===b&&(b=this.speed),0===b)return!1;var d;return void 0===c?(d=this.angle,c=this.game.math.radToDeg(d)):d=this.game.math.degToRad(c),this.moveTimer=0,this.moveDuration=a,0===c||180===c?this.velocity.set(Math.cos(d)*b,0):90===c||270===c?this.velocity.set(0,Math.sin(d)*b):this.velocity.set(Math.cos(d)*b,Math.sin(d)*b),this.isMoving=!0,!0},moveTo:function(a,b,d){var e=b/(a/1e3);if(0===e)return!1;var f;return void 0===d?(f=this.angle,d=this.game.math.radToDeg(f)):f=this.game.math.degToRad(d),b=Math.abs(b),this.moveDuration=0,this.moveDistance=b,null===this.moveTarget&&(this.moveTarget=new c.Line,this.moveEnd=new c.Point),this.moveTarget.fromAngle(this.x,this.y,f,b),this.moveEnd.set(this.moveTarget.end.x,this.moveTarget.end.y),this.moveTarget.setTo(this.x,this.y,this.x,this.y),0===d||180===d?this.velocity.set(Math.cos(f)*e,0):90===d||270===d?this.velocity.set(0,Math.sin(f)*e):this.velocity.set(Math.cos(f)*e,Math.sin(f)*e),this.isMoving=!0,!0},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.isCircle=!1,this.radius=0},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=b-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},getBounds:function(a){return this.isCircle?(a.x=this.center.x-this.radius,a.y=this.center.y-this.radius,a.right=this.center.x+this.radius,a.bottom=this.center.y+this.radius):(a.x=this.x,a.y=this.y,a.right=this.right,a.bottom=this.bottom),a},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",a.fillStyle=c,a.strokeStyle=c,b.isCircle?(a.beginPath(),a.arc(b.center.x-b.game.camera.x,b.center.y-b.game.camera.y,b.radius,0,2*Math.PI),d?a.fill():a.stroke()):d?a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height):a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?j=-1:b.deltaAbsX()j){if((c.faceLeft||c.faceRight)&&(h=this.tileCheckX(b,c,d),0!==h&&!c.intersects(b.position.x-f,b.position.y-g,b.right-f,b.bottom-g)))return!0;(c.faceTop||c.faceBottom)&&(i=this.tileCheckY(b,c,d))}else{if((c.faceTop||c.faceBottom)&&(i=this.tileCheckY(b,c,d),0!==i&&!c.intersects(b.position.x-f,b.position.y-g,b.right-f,b.bottom-g)))return!0;(c.faceLeft||c.faceRight)&&(h=this.tileCheckX(b,c,d))}return 0!==h||0!==i},tileCheckX:function(a,b,c){var d=0,e=c.fixedToCamera?0:c.position.x;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x-e0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right-e>b.left&&(d=a.right-e-b.left,d>this.TILE_BIAS&&(d=0)),0!==d&&(a.customSeparateX?a.overlapX=d:this.processTileSeparationX(a,d)),d},tileCheckY:function(a,b,c){var d=0,e=c.fixedToCamera?0:c.position.y;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y-e0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom-e>b.top&&(d=a.bottom-e-b.top,d>this.TILE_BIAS&&(d=0)),0!==d&&(a.customSeparateY?a.overlapY=d:this.processTileSeparationY(a,d)),d},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:!(b>=this.worldY+this.height)},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if(void 0!==b&&null!==b||(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+g):f?e.add(new c.TilemapLayerGL(this.game,this,g,b,d)):e.add(new c.TilemapLayer(this.game,this,g,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y},c.TilemapLayer.prototype._renderCanvas=function(a){
+this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y,this.render(),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.TilemapLayer.prototype._renderWebGL=function(a){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y,this.render(),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 1===this.scrollFactorX||0===this.scrollFactorX&&0===this.position.x?a:0===this.scrollFactorX&&0!==this.position.x?a-this.position.x:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 1===this.scrollFactorY||0===this.scrollFactorY&&0===this.position.y?a:0===this.scrollFactorY&&0!==this.position.y?a-this.position.y:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,f.renderWidth===b&&f.renderHeight===c||(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,FLIPPED_HORIZONTALLY_FLAG:2147483648,FLIPPED_VERTICALLY_FLAG:1073741824,FLIPPED_DIAGONALLY_FLAG:536870912,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j,delete g.encoding}else if(g.compression){console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '"+g.name+"'");continue}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H=this,I={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties,horizontallyFlipped:F.objects[G].gid&H.FLIPPED_HORIZONTALLY_FLAG,verticallyFlipped:F.objects[G].gid&H.FLIPPED_VERTICALLY_FLAG,diagonallyFlipped:F.objects[G].gid&H.FLIPPED_DIAGONALLY_FLAG};F.objects[G].rotation&&(I.rotation=F.objects[G].rotation),D[F.name].push(I)}else if(F.objects[G].polyline){var I={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(I.rotation=F.objects[G].rotation),I.polyline=[];for(var J=0;J=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return void 0!==c&&0!==c||(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),void 0!==c&&null!==c||(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):this._minParticleScale.x===this._maxParticleScale.x&&this._minParticleScale.y===this._maxParticleScale.y||e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Weapon=function(a,b){c.Plugin.call(this,a,b),this.bullets=null,this.autoExpandBulletsGroup=!1,this.autofire=!1,this.shots=0,this.fireLimit=0,this.fireRate=100,this.fireRateVariance=0,this.fireFrom=new c.Rectangle(0,0,1,1),this.fireAngle=c.ANGLE_UP,this.bulletInheritSpriteSpeed=!1,this.bulletAnimation="",this.bulletFrameRandom=!1,this.bulletFrameCycle=!1,this.bulletWorldWrap=!1,this.bulletWorldWrapPadding=0,this.bulletAngleOffset=0,this.bulletAngleVariance=0,this.bulletSpeed=200,this.bulletSpeedVariance=0,this.bulletLifespan=0,this.bulletKillDistance=0,this.bulletGravity=new c.Point(0,0),this.bulletRotateToVelocity=!1,this.bulletKey="",this.bulletFrame="",this._bulletClass=c.Bullet,this._bulletCollideWorldBounds=!1,this._bulletKillType=c.Weapon.KILL_WORLD_BOUNDS,this._data={customBody:!1,width:0,height:0,offsetX:0,offsetY:0},this.bounds=new c.Rectangle,this.bulletBounds=a.world.bounds,this.bulletFrames=[],this.bulletFrameIndex=0,this.anims={},this.onFire=new c.Signal,this.onKill=new c.Signal,this.onFireLimit=new c.Signal,this.trackedSprite=null,this.trackedPointer=null,this.trackRotation=!1,this.trackOffset=new c.Point,this._nextFire=0},c.Weapon.prototype=Object.create(c.Plugin.prototype),c.Weapon.prototype.constructor=c.Weapon,c.Weapon.KILL_NEVER=0,c.Weapon.KILL_LIFESPAN=1,c.Weapon.KILL_DISTANCE=2,c.Weapon.KILL_WEAPON_BOUNDS=3,c.Weapon.KILL_CAMERA_BOUNDS=4,c.Weapon.KILL_WORLD_BOUNDS=5,c.Weapon.KILL_STATIC_BOUNDS=6,c.Weapon.prototype.createBullets=function(a,b,d,e){return void 0===a&&(a=1),void 0===e&&(e=this.game.world),this.bullets||(this.bullets=this.game.add.physicsGroup(c.Physics.ARCADE,e),this.bullets.classType=this._bulletClass),0!==a&&(-1===a&&(this.autoExpandBulletsGroup=!0,a=1),this.bullets.createMultiple(a,b,d),this.bullets.setAll("data.bulletManager",this),this.bulletKey=b,this.bulletFrame=d),this},c.Weapon.prototype.forEach=function(a,b){return this.bullets.forEachExists(a,b,arguments),this},c.Weapon.prototype.pauseAll=function(){return this.bullets.setAll("body.enable",!1),this},c.Weapon.prototype.resumeAll=function(){return this.bullets.setAll("body.enable",!0),this},c.Weapon.prototype.killAll=function(){return this.bullets.callAllExists("kill",!0),this.bullets.setAll("body.enable",!0),this},c.Weapon.prototype.resetShots=function(a){return this.shots=0,void 0!==a&&(this.fireLimit=a),this},c.Weapon.prototype.destroy=function(){this.parent.remove(this,!1),this.bullets.destroy(),this.game=null,this.parent=null,this.active=!1,this.visible=!1},c.Weapon.prototype.update=function(){this._bulletKillType===c.Weapon.KILL_WEAPON_BOUNDS&&(this.trackedSprite?(this.trackedSprite.updateTransform(),this.bounds.centerOn(this.trackedSprite.worldPosition.x,this.trackedSprite.worldPosition.y)):this.trackedPointer&&this.bounds.centerOn(this.trackedPointer.worldX,this.trackedPointer.worldY)),this.autofire&&this.game.time.now0&&this.shots===this.fireLimit)return!1;var e=this.bulletSpeed;0!==this.bulletSpeedVariance&&(e+=c.Math.between(-this.bulletSpeedVariance,this.bulletSpeedVariance)),a?this.fireFrom.width>1?this.fireFrom.centerOn(a.x,a.y):(this.fireFrom.x=a.x,this.fireFrom.y=a.y):this.trackedSprite?(this.fireFrom.width>1?this.fireFrom.centerOn(this.trackedSprite.world.x+this.trackOffset.x,this.trackedSprite.world.y+this.trackOffset.y):(this.fireFrom.x=this.trackedSprite.world.x+this.trackOffset.x,this.fireFrom.y=this.trackedSprite.world.y+this.trackOffset.y),this.bulletInheritSpriteSpeed&&(e+=this.trackedSprite.body.speed)):this.trackedPointer&&(this.fireFrom.width>1?this.fireFrom.centerOn(this.trackedPointer.world.x+this.trackOffset.x,this.trackedPointer.world.y+this.trackOffset.y):(this.fireFrom.x=this.trackedPointer.world.x+this.trackOffset.x,this.fireFrom.y=this.trackedPointer.world.y+this.trackOffset.y));var f=this.fireFrom.width>1?this.fireFrom.randomX:this.fireFrom.x,g=this.fireFrom.height>1?this.fireFrom.randomY:this.fireFrom.y,h=this.trackRotation?this.trackedSprite.angle:this.fireAngle;void 0!==b&&void 0!==d&&(h=this.game.math.radToDeg(Math.atan2(d-g,b-f))),0!==this.bulletAngleVariance&&(h+=c.Math.between(-this.bulletAngleVariance,this.bulletAngleVariance));var i=0,j=0;0===h||180===h?i=Math.cos(this.game.math.degToRad(h))*e:90===h||270===h?j=Math.sin(this.game.math.degToRad(h))*e:(i=Math.cos(this.game.math.degToRad(h))*e,
+j=Math.sin(this.game.math.degToRad(h))*e);var k=null;if(this.autoExpandBulletsGroup?(k=this.bullets.getFirstExists(!1,!0,f,g,this.bulletKey,this.bulletFrame),k.data.bulletManager=this):k=this.bullets.getFirstExists(!1),k){if(k.reset(f,g),k.data.fromX=f,k.data.fromY=g,k.data.killType=this.bulletKillType,k.data.killDistance=this.bulletKillDistance,k.data.rotateToVelocity=this.bulletRotateToVelocity,this.bulletKillType===c.Weapon.KILL_LIFESPAN&&(k.lifespan=this.bulletLifespan),k.angle=h+this.bulletAngleOffset,""!==this.bulletAnimation){if(null===k.animations.getAnimation(this.bulletAnimation)){var l=this.anims[this.bulletAnimation];k.animations.add(l.name,l.frames,l.frameRate,l.loop,l.useNumericIndex)}k.animations.play(this.bulletAnimation)}else this.bulletFrameCycle?(k.frame=this.bulletFrames[this.bulletFrameIndex],this.bulletFrameIndex++,this.bulletFrameIndex>=this.bulletFrames.length&&(this.bulletFrameIndex=0)):this.bulletFrameRandom&&(k.frame=this.bulletFrames[Math.floor(Math.random()*this.bulletFrames.length)]);k.data.bodyDirty&&(this._data.customBody&&k.body.setSize(this._data.width,this._data.height,this._data.offsetX,this._data.offsetY),k.body.collideWorldBounds=this.bulletCollideWorldBounds,k.data.bodyDirty=!1),k.body.velocity.set(i,j),k.body.gravity.set(this.bulletGravity.x,this.bulletGravity.y),this._nextFire=this.game.time.now+this.fireRate,this.shots++,this.onFire.dispatch(k,this,e),this.fireLimit>0&&this.shots===this.fireLimit&&this.onFireLimit.dispatch(this,this.fireLimit)}},c.Weapon.prototype.fireAtPointer=function(a){return void 0===a&&(a=this.game.input.activePointer),this.fire(null,a.worldX,a.worldY)},c.Weapon.prototype.fireAtSprite=function(a){return this.fire(null,a.world.x,a.world.y)},c.Weapon.prototype.fireAtXY=function(a,b){return this.fire(null,a,b)},c.Weapon.prototype.setBulletBodyOffset=function(a,b,c,d){return void 0===c&&(c=0),void 0===d&&(d=0),this._data.customBody=!0,this._data.width=a,this._data.height=b,this._data.offsetX=c,this._data.offsetY=d,this.bullets.callAll("body.setSize","body",a,b,c,d),this.bullets.setAll("data.bodyDirty",!1),this},c.Weapon.prototype.setBulletFrames=function(a,b,d,e){return void 0===d&&(d=!0),void 0===e&&(e=!1),this.bulletFrames=c.ArrayUtils.numberArray(a,b),this.bulletFrameIndex=0,this.bulletFrameCycle=d,this.bulletFrameRandom=e,this},c.Weapon.prototype.addBulletAnimation=function(a,b,c,d,e){return this.anims[a]={name:a,frames:b,frameRate:c,loop:d,useNumericIndex:e},this.bullets.callAll("animations.add","animations",a,b,c,d,e),this.bulletAnimation=a,this},c.Weapon.prototype.debug=function(a,b,c){void 0===a&&(a=16),void 0===b&&(b=32),void 0===c&&(c=!1),this.game.debug.text("Weapon Plugin",a,b),this.game.debug.text("Bullets Alive: "+this.bullets.total+" - Total: "+this.bullets.length,a,b+24),c&&this.bullets.forEachExists(this.game.debug.body,this.game.debug,"rgba(255, 0, 255, 0.8)")},Object.defineProperty(c.Weapon.prototype,"bulletClass",{get:function(){return this._bulletClass},set:function(a){this._bulletClass=a,this.bullets.classType=this._bulletClass}}),Object.defineProperty(c.Weapon.prototype,"bulletKillType",{get:function(){return this._bulletKillType},set:function(a){switch(a){case c.Weapon.KILL_STATIC_BOUNDS:case c.Weapon.KILL_WEAPON_BOUNDS:this.bulletBounds=this.bounds;break;case c.Weapon.KILL_CAMERA_BOUNDS:this.bulletBounds=this.game.camera.view;break;case c.Weapon.KILL_WORLD_BOUNDS:this.bulletBounds=this.game.world.bounds}this._bulletKillType=a}}),Object.defineProperty(c.Weapon.prototype,"bulletCollideWorldBounds",{get:function(){return this._bulletCollideWorldBounds},set:function(a){this._bulletCollideWorldBounds=a,this.bullets.setAll("body.collideWorldBounds",a),this.bullets.setAll("data.bodyDirty",!1)}}),Object.defineProperty(c.Weapon.prototype,"x",{get:function(){return this.fireFrom.x},set:function(a){this.fireFrom.x=a}}),Object.defineProperty(c.Weapon.prototype,"y",{get:function(){return this.fireFrom.y},set:function(a){this.fireFrom.y=a}}),c.Bullet=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.anchor.set(.5),this.data={bulletManager:null,fromX:0,fromY:0,bodyDirty:!0,rotateToVelocity:!1,killType:0,killDistance:0}},c.Bullet.prototype=Object.create(c.Sprite.prototype),c.Bullet.prototype.constructor=c.Bullet,c.Bullet.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.data.bulletManager.onKill.dispatch(this),this},c.Bullet.prototype.update=function(){this.exists&&(this.data.killType>c.Weapon.KILL_LIFESPAN&&(this.data.killType===c.Weapon.KILL_DISTANCE?this.game.physics.arcade.distanceToXY(this,this.data.fromX,this.data.fromY,!0)>this.data.killDistance&&this.kill():this.data.bulletManager.bulletBounds.intersects(this)||this.kill()),this.data.rotateToVelocity&&(this.rotation=Math.atan2(this.body.velocity.y,this.body.velocity.x)),this.data.bulletManager.bulletWorldWrap&&this.game.world.wrap(this,this.data.bulletManager.bulletWorldWrapPadding))},c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(c.Cache.DEFAULT.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;void 0!==b&&null!==b||(b=this.video.videoWidth,d=!0),void 0!==c&&null!==c||(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),this.video.addEventListener("webkitendfullscreen",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.active?this.videoStream.active=!1:this.videoStream.getTracks?this.videoStream.getTracks().forEach(function(a){a.stop()}):this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this._endCallback,!0),this.video.removeEventListener("webkitendfullscreen",this._endCallback,!0),this.video.removeEventListener("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this);
//# sourceMappingURL=phaser-arcade-physics.map
\ No newline at end of file
diff --git a/build/custom/phaser-minimum.js b/build/custom/phaser-minimum.js
index 5835a4a38..2a6f40bb7 100644
--- a/build/custom/phaser-minimum.js
+++ b/build/custom/phaser-minimum.js
@@ -7,7 +7,7 @@
*
* Phaser - http://phaser.io
*
-* v2.6.0 "Fal Moran" - Built: Fri Jul 08 2016 15:53:23
+* v2.6.1 "Caemlyn" - Built: Mon Jul 11 2016 10:00:07
*
* By Richard Davey http://www.photonstorm.com @photonstorm
*
@@ -7843,7 +7843,7 @@ var Phaser = Phaser || {
* @constant
* @type {string}
*/
- VERSION: '2.6.0',
+ VERSION: '2.6.1',
/**
* An array of Phaser game instances.
diff --git a/build/custom/phaser-minimum.min.js b/build/custom/phaser-minimum.min.js
index 68f7623d9..09e6b768b 100644
--- a/build/custom/phaser-minimum.min.js
+++ b/build/custom/phaser-minimum.min.js
@@ -1,8 +1,8 @@
-/* Phaser v2.6.0 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
+/* Phaser v2.6.1 - 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},"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.0",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;
+b.CanvasRenderer=function(a){this.game=a,b.defaultRenderer||(b.defaultRenderer=this),this.type=b.CANVAS_RENDERER,this.resolution=a.resolution,this.clearBeforeRender=a.clearBeforeRender,this.transparent=a.transparent,this.autoResize=!1,this.width=a.width*this.resolution,this.height=a.height*this.resolution,this.view=a.canvas,this.context=this.view.getContext("2d",{alpha:this.transparent}),this.refresh=!0,this.count=0,this.maskManager=new b.CanvasMaskManager,this.renderSession={context:this.context,maskManager:this.maskManager,scaleMode:null,smoothProperty:Phaser.Canvas.getSmoothingPrefix(this.context),roundPixels:!1},this.mapBlendModes(),this.resize(this.width,this.height)},b.CanvasRenderer.prototype.constructor=b.CanvasRenderer,b.CanvasRenderer.prototype.render=function(a){this.context.setTransform(1,0,0,1,0,0),this.context.globalAlpha=1,this.renderSession.currentBlendMode=0,this.renderSession.shakeX=this.game.camera._shake.x,this.renderSession.shakeY=this.game.camera._shake.y,this.context.globalCompositeOperation="source-over",navigator.isCocoonJS&&this.view.screencanvas&&(this.context.fillStyle="black",this.context.clear()),this.clearBeforeRender&&(this.transparent?this.context.clearRect(0,0,this.width,this.height):(this.context.fillStyle=a._bgColor.rgba,this.context.fillRect(0,0,this.width,this.height))),this.renderDisplayObject(a)},b.CanvasRenderer.prototype.destroy=function(a){void 0===a&&(a=!0),a&&this.view.parent&&this.view.parent.removeChild(this.view),this.view=null,this.context=null,this.maskManager=null,this.renderSession=null},b.CanvasRenderer.prototype.resize=function(a,c){this.width=a*this.resolution,this.height=c*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.renderSession.smoothProperty&&(this.context[this.renderSession.smoothProperty]=this.renderSession.scaleMode===b.scaleModes.LINEAR)},b.CanvasRenderer.prototype.renderDisplayObject=function(a,b,c){this.renderSession.context=b||this.context,this.renderSession.resolution=this.resolution,a._renderCanvas(this.renderSession,c)},b.CanvasRenderer.prototype.mapBlendModes=function(){if(!b.blendModesCanvas){var a=[],c=b.blendModes,d=b.canUseNewCanvasBlendModes();a[c.NORMAL]="source-over",a[c.ADD]="lighter",a[c.MULTIPLY]=d?"multiply":"source-over",a[c.SCREEN]=d?"screen":"source-over",a[c.OVERLAY]=d?"overlay":"source-over",a[c.DARKEN]=d?"darken":"source-over",a[c.LIGHTEN]=d?"lighten":"source-over",a[c.COLOR_DODGE]=d?"color-dodge":"source-over",a[c.COLOR_BURN]=d?"color-burn":"source-over",a[c.HARD_LIGHT]=d?"hard-light":"source-over",a[c.SOFT_LIGHT]=d?"soft-light":"source-over",a[c.DIFFERENCE]=d?"difference":"source-over",a[c.EXCLUSION]=d?"exclusion":"source-over",a[c.HUE]=d?"hue":"source-over",a[c.SATURATION]=d?"saturation":"source-over",a[c.COLOR]=d?"color":"source-over",a[c.LUMINOSITY]=d?"luminosity":"source-over",b.blendModesCanvas=a}},b.BaseTexture=function(a,c){this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height&&(this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty()),this.skipRender=!1,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},b.BaseTexture.prototype.destroy=function(){this.source&&b.CanvasPool.removeByCanvas(this.source),this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){console.warn("PIXI.BaseTexture.updateSourceImage is deprecated. Use Phaser.Sprite.loadTexture instead.")},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=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},"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){a