From a8965ce9e31a2820228d06a080fe8ff8fdb41002 Mon Sep 17 00:00:00 2001 From: lewster32 Date: Thu, 7 Aug 2014 18:36:54 +0100 Subject: [PATCH] Removed docs from repo. --- .gitignore | 3 +- doc/Body.js.html | 1307 --- doc/Cube.js.html | 775 -- doc/IsoSprite.js.html | 401 - doc/Isometric.js.html | 257 - doc/Octree.js.html | 573 -- doc/Phaser.Plugin.Isometric.Arcade.html | 4178 -------- doc/Phaser.Plugin.Isometric.Body.html | 9688 ------------------- doc/Phaser.Plugin.Isometric.Cube.html | 5385 ----------- doc/Phaser.Plugin.Isometric.IsoSprite.html | 1351 --- doc/Phaser.Plugin.Isometric.Octree.html | 2604 ----- doc/Phaser.Plugin.Isometric.Point3.html | 3515 ------- doc/Phaser.Plugin.Isometric.Projector.html | 1065 -- doc/Phaser.Plugin.Isometric.html | 367 - doc/Point3.js.html | 484 - doc/Projector.js.html | 263 - doc/World.js.html | 1262 --- doc/classes.list.html | 281 - doc/img/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes doc/img/glyphicons-halflings.png | Bin 12799 -> 0 bytes doc/index.html | 205 - doc/scripts/URI.js | 1429 --- doc/scripts/bootstrap-dropdown.js | 169 - doc/scripts/bootstrap-tab.js | 144 - doc/scripts/docstrap.lib.js | 9 - doc/scripts/linenumber.js | 17 - doc/scripts/prettify/Apache-License-2.0.txt | 202 - doc/scripts/prettify/jquery.min.js | 6 - doc/scripts/prettify/lang-css.js | 21 - doc/scripts/prettify/prettify.js | 496 - doc/scripts/sunlight.js | 1157 --- doc/scripts/toc.js | 100 - doc/styles/darkstrap.css | 960 -- doc/styles/jsdoc-default.css | 290 - doc/styles/prettify-jsdoc.css | 111 - doc/styles/prettify-tomorrow.css | 132 - doc/styles/site.amelia.css | 6369 ------------ doc/styles/site.cerulean.css | 5701 ----------- doc/styles/site.cosmo.css | 5944 ------------ doc/styles/site.cyborg.css | 6151 ------------ doc/styles/site.darkstrap.css | 5638 ----------- doc/styles/site.flatly.css | 5993 ------------ doc/styles/site.journal.css | 5745 ----------- doc/styles/site.readable.css | 5433 ----------- doc/styles/site.simplex.css | 5758 ----------- doc/styles/site.slate.css | 6204 ------------ doc/styles/site.spacelab.css | 5796 ----------- doc/styles/site.spruce.css | 5938 ------------ doc/styles/site.superhero.css | 6106 ------------ doc/styles/site.united.css | 5545 ----------- doc/styles/sunlight.dark.css | 345 - doc/styles/sunlight.default.css | 344 - 52 files changed, 2 insertions(+), 122215 deletions(-) delete mode 100644 doc/Body.js.html delete mode 100644 doc/Cube.js.html delete mode 100644 doc/IsoSprite.js.html delete mode 100644 doc/Isometric.js.html delete mode 100644 doc/Octree.js.html delete mode 100644 doc/Phaser.Plugin.Isometric.Arcade.html delete mode 100644 doc/Phaser.Plugin.Isometric.Body.html delete mode 100644 doc/Phaser.Plugin.Isometric.Cube.html delete mode 100644 doc/Phaser.Plugin.Isometric.IsoSprite.html delete mode 100644 doc/Phaser.Plugin.Isometric.Octree.html delete mode 100644 doc/Phaser.Plugin.Isometric.Point3.html delete mode 100644 doc/Phaser.Plugin.Isometric.Projector.html delete mode 100644 doc/Phaser.Plugin.Isometric.html delete mode 100644 doc/Point3.js.html delete mode 100644 doc/Projector.js.html delete mode 100644 doc/World.js.html delete mode 100644 doc/classes.list.html delete mode 100644 doc/img/glyphicons-halflings-white.png delete mode 100644 doc/img/glyphicons-halflings.png delete mode 100644 doc/index.html delete mode 100644 doc/scripts/URI.js delete mode 100644 doc/scripts/bootstrap-dropdown.js delete mode 100644 doc/scripts/bootstrap-tab.js delete mode 100644 doc/scripts/docstrap.lib.js delete mode 100644 doc/scripts/linenumber.js delete mode 100644 doc/scripts/prettify/Apache-License-2.0.txt delete mode 100644 doc/scripts/prettify/jquery.min.js delete mode 100644 doc/scripts/prettify/lang-css.js delete mode 100644 doc/scripts/prettify/prettify.js delete mode 100644 doc/scripts/sunlight.js delete mode 100644 doc/scripts/toc.js delete mode 100644 doc/styles/darkstrap.css delete mode 100644 doc/styles/jsdoc-default.css delete mode 100644 doc/styles/prettify-jsdoc.css delete mode 100644 doc/styles/prettify-tomorrow.css delete mode 100644 doc/styles/site.amelia.css delete mode 100644 doc/styles/site.cerulean.css delete mode 100644 doc/styles/site.cosmo.css delete mode 100644 doc/styles/site.cyborg.css delete mode 100644 doc/styles/site.darkstrap.css delete mode 100644 doc/styles/site.flatly.css delete mode 100644 doc/styles/site.journal.css delete mode 100644 doc/styles/site.readable.css delete mode 100644 doc/styles/site.simplex.css delete mode 100644 doc/styles/site.slate.css delete mode 100644 doc/styles/site.spacelab.css delete mode 100644 doc/styles/site.spruce.css delete mode 100644 doc/styles/site.superhero.css delete mode 100644 doc/styles/site.united.css delete mode 100644 doc/styles/sunlight.dark.css delete mode 100644 doc/styles/sunlight.default.css diff --git a/.gitignore b/.gitignore index 5bd981c..ee62691 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,5 @@ ehthumbs.db Thumbs.db -node_modules/ \ No newline at end of file +node_modules/ +doc/ \ No newline at end of file diff --git a/doc/Body.js.html b/doc/Body.js.html deleted file mode 100644 index 81648f6..0000000 --- a/doc/Body.js.html +++ /dev/null @@ -1,1307 +0,0 @@ - - - - - - Phaser Isometric Source: physics/Body.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: physics/Body.js

- -
-
-
/**
- * @class Phaser.Plugin.Isometric.Body
- * 
- * @classdesc
- * The Physics Body is linked to a single IsoSprite. All physics operations should be performed against the body rather than
- * the IsoSprite itself. For example you can set the velocity, acceleration, bounce values etc all on the Body.
- * 
- * @constructor
- * @param {Phaser.Plugin.Isometric.IsoSprite} sprite - The IsoSprite object this physics body belongs to.
- */
-Phaser.Plugin.Isometric.Body = function (sprite) {
-
-    /**
-     * @property {Phaser.Plugin.Isometric.IsoSprite} sprite - Reference to the parent IsoSprite.
-     */
-    this.sprite = sprite;
-
-    /**
-     * @property {Phaser.Game} game - Local reference to game.
-     */
-    this.game = sprite.game;
-
-    /**
-     * @property {number} type - The type of physics system this body belongs to.
-     */
-    this.type = Phaser.Plugin.Isometric.ISOARCADE;
-
-    /**
-     * @property {boolean} enable - A disabled body won't be checked for any form of collision or overlap or have its pre/post updates run.
-     * @default
-     */
-    this.enable = true;
-
-    /**
-     * @property {Phaser.Point} offset - The offset of the Physics Body from the IsoSprite x/y/z position.
-     */
-    this.offset = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} position - The position of the physics body.
-     * @readonly
-     */
-    this.position = new Phaser.Plugin.Isometric.Point3(sprite.isoX, sprite.isoY, sprite.isoZ);
-
-    /**
-     * @property {Phaser.Point} prev - The previous position of the physics body.
-     * @readonly
-     */
-    this.prev = new Phaser.Plugin.Isometric.Point3(this.position.x, this.position.y, this.position.z);
-
-    /**
-     * @property {boolean} allowRotation - Allow this Body to be rotated? (via angularVelocity, etc)
-     * @default
-     */
-    this.allowRotation = true;
-
-    /**
-     * @property {number} rotation - The amount the Body is rotated.
-     */
-    this.rotation = sprite.rotation;
-
-    /**
-     * @property {number} preRotation - The previous rotation of the physics body.
-     * @readonly
-     */
-    this.preRotation = sprite.rotation;
-
-    /**
-     * @property {number} sourceWidthX - The un-scaled original size.
-     * @readonly
-     */
-    this.sourceWidthX = sprite.texture.frame.width;
-
-    /**
-     * @property {number} sourceWidthY - The un-scaled original size.
-     * @readonly
-     */
-    this.sourceWidthY = sprite.texture.frame.width;
-
-    /**
-     * @property {number} sourceHeight - The un-scaled original size.
-     * @readonly
-     */
-    this.sourceHeight = sprite.texture.frame.height;
-
-    /**
-     * @property {number} widthX - The calculated X width (breadth) of the physics body.
-     */
-    this.widthX = sprite.width * 0.5;
-
-    /**
-     * @property {number} widthY - The calculated Y width (depth) of the physics body.
-     */
-    this.widthY = sprite.width * 0.5;
-
-    /**
-     * @property {number} height - The calculated height of the physics body.
-     */
-    this.height = sprite.height - (sprite.width * 0.5);
-
-    /**
-     * @property {number} halfWidthX - The calculated X width / 2 of the physics body.
-     */
-    this.halfWidthX = Math.abs(this.widthX * 0.5);
-
-    /**
-     * @property {number} halfWidthX - The calculated X width / 2 of the physics body.
-     */
-    this.halfWidthY = Math.abs(this.widthY * 0.5);
-
-    /**
-     * @property {number} halfHeight - The calculated height / 2 of the physics body.
-     */
-    this.halfHeight = Math.abs(this.height * 0.5);
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} center - The center coordinate of the physics body.
-     */
-    this.center = new Phaser.Plugin.Isometric.Point3(sprite.isoX + this.halfWidthX, sprite.isoY + this.halfWidthY, sprite.isoZ + this.halfHeight);
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} velocity - The velocity in pixels per second sq. of the Body.
-     */
-    this.velocity = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} newVelocity - New velocity.
-     * @readonly
-     */
-    this.newVelocity = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} deltaMax - The Sprite position is updated based on the delta x/y values. You can set a cap on those (both +-) using deltaMax.
-     */
-    this.deltaMax = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} acceleration - The velocity in pixels per second sq. of the Body.
-     */
-    this.acceleration = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} drag - The drag applied to the motion of the Body.
-     */
-    this.drag = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {boolean} allowGravity - Allow this Body to be influenced by gravity? Either world or local.
-     * @default
-     */
-    this.allowGravity = true;
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} gravity - A local gravity applied to this Body. If non-zero this over rides any world gravity, unless Body.allowGravity is set to false.
-     */
-    this.gravity = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} bounce - The elasticitiy of the Body when colliding. bounce.x/y/z = 1 means full rebound, bounce.x/y/z = 0.5 means 50% rebound velocity.
-     */
-    this.bounce = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} maxVelocity - The maximum velocity in pixels per second sq. that the Body can reach.
-     * @default
-     */
-    this.maxVelocity = new Phaser.Plugin.Isometric.Point3(10000, 10000, 10000);
-
-    /**
-     * @property {number} angularVelocity - The angular velocity in pixels per second sq. of the Body.
-     * @default
-     */
-    this.angularVelocity = 0;
-
-    /**
-     * @property {number} angularAcceleration - The angular acceleration in pixels per second sq. of the Body.
-     * @default
-     */
-    this.angularAcceleration = 0;
-
-    /**
-     * @property {number} angularDrag - The angular drag applied to the rotation of the Body.
-     * @default
-     */
-    this.angularDrag = 0;
-
-    /**
-     * @property {number} maxAngular - The maximum angular velocity in pixels per second sq. that the Body can reach.
-     * @default
-     */
-    this.maxAngular = 1000;
-
-    /**
-     * @property {number} mass - The mass of the Body.
-     * @default
-     */
-    this.mass = 1;
-
-    /**
-     * @property {number} angle - The angle of the Body in radians as calculated by its velocity, rather than its visual angle.
-     * @readonly
-     */
-    this.angle = 0;
-
-    /**
-     * @property {number} speed - The speed of the Body as calculated by its velocity.
-     * @readonly
-     */
-    this.speed = 0;
-
-    /**
-     * @property {number} facing - A const reference to the direction the Body is traveling or facing.
-     * @default
-     */
-    this.facing = Phaser.NONE;
-
-    /**
-     * @property {boolean} immovable - An immovable Body will not receive any impacts from other bodies.
-     * @default
-     */
-    this.immovable = false;
-
-    /**
-     * If you have a Body that is being moved around the world via a tween or a Group motion, but its local x/y position never
-     * actually changes, then you should set Body.moves = false. Otherwise it will most likely fly off the screen.
-     * If you want the physics system to move the body around, then set moves to true.
-     * @property {boolean} moves - Set to true to allow the Physics system to move this Body, other false to move it manually.
-     * @default
-     */
-    this.moves = true;
-
-    /**
-     * This flag allows you to disable the custom x separation that takes place by Physics.IsoArcade.separate.
-     * Used in combination with your own collision processHandler you can create whatever type of collision response you need.
-     * @property {boolean} customSeparateX - Use a custom separation system or the built-in one?
-     * @default
-     */
-    this.customSeparateX = false;
-
-    /**
-     * This flag allows you to disable the custom y separation that takes place by Physics.IsoArcade.separate.
-     * Used in combination with your own collision processHandler you can create whatever type of collision response you need.
-     * @property {boolean} customSeparateY - Use a custom separation system or the built-in one?
-     * @default
-     */
-    this.customSeparateY = false;
-
-    /**
-     * This flag allows you to disable the custom z separation that takes place by Physics.IsoArcade.separate.
-     * Used in combination with your own collision processHandler you can create whatever type of collision response you need.
-     * @property {boolean} customSeparateZ - Use a custom separation system or the built-in one?
-     * @default
-     */
-    this.customSeparateZ = false;
-
-    /**
-     * When this body collides with another, the amount of overlap is stored here.
-     * @property {number} overlapX - The amount of horizontal overlap during the collision.
-     */
-    this.overlapX = 0;
-
-    /**
-     * When this body collides with another, the amount of overlap is stored here.
-     * @property {number} overlapY - The amount of vertical overlap during the collision.
-     */
-    this.overlapY = 0;
-
-    /**
-     * When this body collides with another, the amount of overlap is stored here.
-     * @property {number} overlapY - The amount of vertical overlap during the collision.
-     */
-    this.overlapZ = 0;
-
-    /**
-     * If a body is overlapping with another body, but neither of them are moving (maybe they spawned on-top of each other?) this is set to true.
-     * @property {boolean} embedded - Body embed value.
-     */
-    this.embedded = false;
-
-    /**
-     * A Body can be set to collide against the World bounds automatically and rebound back into the World if this is set to true. Otherwise it will leave the World.
-     * @property {boolean} collideWorldBounds - Should the Body collide with the World bounds?
-     */
-    this.collideWorldBounds = false;
-
-    /**
-     * Set the checkCollision properties to control which directions collision is processed for this Body.
-     * For example checkCollision.up = false means it won't collide when the collision happened while moving up.
-     * @property {object} checkCollision - An object containing allowed collision.
-     */
-    this.checkCollision = {
-        none: false,
-        any: true,
-        up: true,
-        down: true,
-        frontX: true,
-        frontY: true,
-        backX: true,
-        backY: true
-    };
-
-    /**
-     * This object is populated with boolean values when the Body collides with another.
-     * touching.up = true means the collision happened to the top of this Body for example.
-     * @property {object} touching - An object containing touching results.
-     */
-    this.touching = {
-        none: true,
-        up: false,
-        down: false,
-        frontX: false,
-        frontY: false,
-        backX: false,
-        backY: false
-    };
-
-    /**
-     * This object is populated with previous touching values from the bodies previous collision.
-     * @property {object} wasTouching - An object containing previous touching results.
-     */
-    this.wasTouching = {
-        none: true,
-        up: false,
-        down: false,
-        frontX: false,
-        frontY: false,
-        backX: false,
-        backY: false
-    };
-
-    /**
-     * This object is populated with boolean values when the Body collides with the World bounds or a Tile.
-     * For example if blocked.up is true then the Body cannot move up.
-     * @property {object} blocked - An object containing on which faces this Body is blocked from moving, if any.
-     */
-    this.blocked = {
-        up: false,
-        down: false,
-        frontX: false,
-        frontY: false,
-        backX: false,
-        backY: false
-    };
-
-    /**
-     * @property {number} phase - Is this Body in a preUpdate (1) or postUpdate (2) state?
-     */
-    this.phase = 0;
-
-    /**
-     * @property {boolean} skipTree - If true and you collide this IsoSprite against a Group, it will disable the collision check from using a QuadTree/Octree.
-     */
-    this.skipTree = false;
-
-    /**
-     * @property {boolean} _reset - Internal cache var.
-     * @private
-     */
-    this._reset = true;
-
-    /**
-     * @property {number} _sx - Internal cache var.
-     * @private
-     */
-    this._sx = sprite.scale.x;
-
-    /**
-     * @property {number} _sy - Internal cache var.
-     * @private
-     */
-    this._sy = sprite.scale.y;
-
-    /**
-     * @property {number} _dx - Internal cache var.
-     * @private
-     */
-    this._dx = 0;
-
-    /**
-     * @property {number} _dy - Internal cache var.
-     * @private
-     */
-    this._dy = 0;
-
-    /**
-     * @property {number} _dz - Internal cache var.
-     * @private
-     */
-    this._dz = 0;
-
-    /**
-     * @property {Array.<Phaser.Plugin.Isometric.Point3>} _corners - The 8 corners of the bounding cube.
-     * @private
-     */
-    this._corners = [new Phaser.Plugin.Isometric.Point3(this.x, this.y, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x, this.y, this.z + this.height),
-        new Phaser.Plugin.Isometric.Point3(this.x, this.y + this.widthY, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x, this.y + this.widthY, this.z + this.height),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y, this.z + this.height),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y + this.widthY, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y + this.widthY, this.z + this.height)
-    ];
-
-};
-
-Phaser.Plugin.Isometric.Body.prototype = {
-
-    /**
-     * Internal method.
-     *
-     * @method Phaser.Plugin.Isometric.Body#updateBounds
-     * @protected
-     */
-    updateBounds: function () {
-
-        var asx = Math.abs(this.sprite.scale.x);
-        var asy = Math.abs(this.sprite.scale.y);
-
-        if (asx !== this._sx || asy !== this._sy) {
-            this.widthX = (this.sprite.width * 0.5) * asx;
-            this.widthY = (this.sprite.width * 0.5) * asx;
-            this.height = (this.sprite.height - (this.sprite.width * 0.5)) * asy;
-            this.halfWidthX = Math.floor(this.widthX * 2);
-            this.halfWidthY = Math.floor(this.widthY * 2);
-            this.halfHeight = Math.floor(this.height * 2);
-            this._sx = asx;
-            this._sy = asy;
-            this.center.setTo(this.position.x + this.halfWidthX, this.position.y + this.halfWidthY, this.position.z + this.halfHeight);
-
-            this._reset = true;
-        }
-
-    },
-
-    /**
-     * Internal method.
-     *
-     * @method Phaser.Plugin.Isometric.Body#preUpdate
-     * @protected
-     */
-    preUpdate: function () {
-
-        if (!this.enable) {
-            return;
-        }
-
-        this.phase = 1;
-
-        //  Store and reset collision flags
-        this.wasTouching.none = this.touching.none;
-        this.wasTouching.up = this.touching.up;
-        this.wasTouching.down = this.touching.down;
-        this.wasTouching.backX = this.touching.backX;
-        this.wasTouching.backY = this.touching.backY;
-        this.wasTouching.frontX = this.touching.frontX;
-        this.wasTouching.frontY = this.touching.frontY;
-
-        this.touching.none = true;
-        this.touching.up = false;
-        this.touching.down = false;
-        this.touching.backX = false;
-        this.touching.backY = false;
-        this.touching.frontX = false;
-        this.touching.frontY = false;
-
-        this.blocked.up = false;
-        this.blocked.down = false;
-        this.blocked.backX = false;
-        this.blocked.frontX = false;
-        this.blocked.backY = false;
-        this.blocked.backX = false;
-
-        this.embedded = false;
-
-        this.updateBounds();
-
-        //  Working out how to incorporate anchors into this was... fun.
-        this.position.x = this.sprite.isoX + ((this.widthX * -this.sprite.anchor.x) + this.widthX * 0.5) + this.offset.x;
-        this.position.y = this.sprite.isoY + ((this.widthY * this.sprite.anchor.x) - this.widthY * 0.5) + this.offset.y;
-        this.position.z = this.sprite.isoZ - (Math.abs(this.sprite.height) * (1 - this.sprite.anchor.y)) + (Math.abs(this.sprite.width * 0.5)) + this.offset.z;
-
-
-        this.rotation = this.sprite.angle;
-
-        this.preRotation = this.rotation;
-
-        if (this._reset || this.sprite._cache[4] === 1) {
-            this.prev.x = this.position.x;
-            this.prev.y = this.position.y;
-            this.prev.z = this.position.z;
-        }
-
-        if (this.moves) {
-            this.game.physics.isoArcade.updateMotion(this);
-
-            this.newVelocity.set(this.velocity.x * this.game.time.physicsElapsed, this.velocity.y * this.game.time.physicsElapsed, this.velocity.z * this.game.time.physicsElapsed);
-
-            this.position.x += this.newVelocity.x;
-            this.position.y += this.newVelocity.y;
-            this.position.z += this.newVelocity.z;
-
-            if (this.position.x !== this.prev.x || this.position.y !== this.prev.y || this.position.z !== this.prev.z) {
-                this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y + this.velocity.z * this.velocity.z);
-                this.angle = Math.atan2(this.velocity.y, this.velocity.x);
-            }
-
-            //  Now the State update will throw collision checks at the Body
-            //  And finally we'll integrate the new position back to the Sprite in postUpdate
-
-            if (this.collideWorldBounds) {
-                this.checkWorldBounds();
-            }
-        }
-
-        this._dx = this.deltaX();
-        this._dy = this.deltaY();
-        this._dz = this.deltaZ();
-
-        this._reset = false;
-
-    },
-
-    /**
-     * Internal method.
-     *
-     * @method Phaser.Plugin.Isometric.Body#postUpdate
-     * @protected
-     */
-    postUpdate: function () {
-
-        if (!this.enable) {
-            return;
-        }
-
-        //  Only allow postUpdate to be called once per frame
-        if (this.phase === 2) {
-            return;
-        }
-
-        this.phase = 2;
-
-        if (this.deltaX() < 0) {
-            this.facing = Phaser.Plugin.Isometric.BACKWARDX;
-        } else if (this.deltaX() > 0) {
-            this.facing = Phaser.Plugin.Isometric.FORWARDX;
-        }
-
-        if (this.deltaY() < 0) {
-            this.facing = Phaser.Plugin.Isometric.BACKWARDY;
-        } else if (this.deltaY() > 0) {
-            this.facing = Phaser.Plugin.Isometric.FORWARDY;
-        }
-
-        if (this.deltaZ() < 0) {
-            this.facing = Phaser.Plugin.Isometric.DOWN;
-        } else if (this.deltaZ() > 0) {
-            this.facing = Phaser.Plugin.Isometric.UP;
-        }
-
-        if (this.moves) {
-            this._dx = this.deltaX();
-            this._dy = this.deltaY();
-            this._dz = this.deltaZ();
-
-            if (this.deltaMax.x !== 0 && this._dx !== 0) {
-                if (this._dx < 0 && this._dx < -this.deltaMax.x) {
-                    this._dx = -this.deltaMax.x;
-                } else if (this._dx > 0 && this._dx > this.deltaMax.x) {
-                    this._dx = this.deltaMax.x;
-                }
-            }
-
-            if (this.deltaMax.y !== 0 && this._dy !== 0) {
-                if (this._dy < 0 && this._dy < -this.deltaMax.y) {
-                    this._dy = -this.deltaMax.y;
-                } else if (this._dy > 0 && this._dy > this.deltaMax.y) {
-                    this._dy = this.deltaMax.y;
-                }
-            }
-
-            if (this.deltaMax.z !== 0 && this._dz !== 0) {
-                if (this._dz < 0 && this._dz < -this.deltaMax.z) {
-                    this._dz = -this.deltaMax.z;
-                } else if (this._dz > 0 && this._dz > this.deltaMax.z) {
-                    this._dz = this.deltaMax.z;
-                }
-            }
-
-            this.sprite.isoX += this._dx;
-            this.sprite.isoY += this._dy;
-            this.sprite.isoZ += this._dz;
-        }
-
-        this.center.setTo(this.position.x + this.halfWidthX, this.position.y + this.halfWidthY, this.position.z + this.halfHeight);
-
-        if (this.allowRotation) {
-            this.sprite.angle += this.deltaR();
-        }
-
-        this.prev.x = this.position.x;
-        this.prev.y = this.position.y;
-        this.prev.z = this.position.z;
-
-    },
-
-    /**
-     * Removes this body's reference to its parent sprite, freeing it up for gc.
-     *
-     * @method Phaser.Plugin.Isometric.Body#destroy
-     */
-    destroy: function () {
-
-        this.sprite = null;
-
-    },
-
-    /**
-     * Internal method.
-     *
-     * @method Phaser.Plugin.Isometric.Body#checkWorldBounds
-     * @protected
-     */
-    checkWorldBounds: function () {
-
-        if (this.position.x < this.game.physics.isoArcade.bounds.x && this.game.physics.isoArcade.checkCollision.backX) {
-            this.position.x = this.game.physics.isoArcade.bounds.x;
-            this.velocity.x *= -this.bounce.x;
-            this.blocked.backX = true;
-        } else if (this.frontX > this.game.physics.isoArcade.bounds.frontX && this.game.physics.isoArcade.checkCollision.frontX) {
-            this.position.x = this.game.physics.isoArcade.bounds.frontX - this.widthX;
-            this.velocity.x *= -this.bounce.x;
-            this.blocked.frontX = true;
-        }
-
-        if (this.position.y < this.game.physics.isoArcade.bounds.y && this.game.physics.isoArcade.checkCollision.backY) {
-            this.position.y = this.game.physics.isoArcade.bounds.y;
-            this.velocity.y *= -this.bounce.y;
-            this.blocked.backY = true;
-        } else if (this.frontY > this.game.physics.isoArcade.bounds.frontY && this.game.physics.isoArcade.checkCollision.frontY) {
-            this.position.y = this.game.physics.isoArcade.bounds.frontY - this.widthY;
-            this.velocity.y *= -this.bounce.y;
-            this.blocked.frontY = true;
-        }
-
-        if (this.position.z < this.game.physics.isoArcade.bounds.z && this.game.physics.isoArcade.checkCollision.down) {
-            this.position.z = this.game.physics.isoArcade.bounds.z;
-            this.velocity.z *= -this.bounce.z;
-            this.blocked.down = true;
-        } else if (this.top > this.game.physics.isoArcade.bounds.top && this.game.physics.isoArcade.checkCollision.up) {
-            this.position.z = this.game.physics.isoArcade.bounds.top - this.height;
-            this.velocity.z *= -this.bounce.z;
-            this.blocked.up = true;
-        }
-
-    },
-
-    /**
-     * You can modify the size of the physics Body to be any dimension you need.
-     * So it could be smaller or larger than the parent Sprite. You can also control the x, y and z offset, which
-     * is the position of the Body relative to the center of the Sprite.
-     *
-     * @method Phaser.Plugin.Isometric.Body#setSize
-     * @param {number} widthX - The X width (breadth) of the Body.
-     * @param {number} widthY - The Y width (depth) of the Body.
-     * @param {number} height - The height of the Body.
-     * @param {number} [offsetX] - The X offset of the Body from the Sprite position.
-     * @param {number} [offsetY] - The Y offset of the Body from the Sprite position.
-     * @param {number} [offsetY] - The Z offset of the Body from the Sprite position.
-     */
-    setSize: function (widthX, widthY, height, offsetX, offsetY, offsetZ) {
-
-        if (typeof offsetX === 'undefined') {
-            offsetX = this.offset.x;
-        }
-        if (typeof offsetY === 'undefined') {
-            offsetY = this.offset.y;
-        }
-        if (typeof offsetZ === 'undefined') {
-            offsetZ = this.offset.z;
-        }
-
-        this.sourceWidthX = widthX;
-        this.sourceWidthY = widthY;
-        this.sourceHeight = height;
-        this.widthX = (this.sourceWidthX) * this._sx;
-        this.widthY = (this.sourceWidthY) * this._sx;
-        this.height = (this.sourceHeight) * this._sy;
-        this.halfWidthX = Math.floor(this.widthX * 0.5);
-        this.halfWidthY = Math.floor(this.widthY * 0.5);
-        this.halfHeight = Math.floor(this.height * 0.5);
-        this.offset.setTo(offsetX, offsetY, offsetZ);
-
-        this.center.setTo(this.position.x + this.halfWidthX, this.position.y + this.halfWidthY, this.position.z + this.halfHeight);
-
-    },
-
-    /**
-     * Resets all Body values (velocity, acceleration, rotation, etc)
-     *
-     * @method Phaser.Plugin.Isometric.Body#reset
-     * @param {number} x - The new x position of the Body.
-     * @param {number} y - The new y position of the Body.
-     * @param {number} z - The new z position of the Body.
-     */
-    reset: function (x, y, z) {
-
-        this.velocity.set(0);
-        this.acceleration.set(0);
-
-        this.angularVelocity = 0;
-        this.angularAcceleration = 0;
-
-        this.position.x = x + ((this.widthX * -this.sprite.anchor.x) + this.widthX * 0.5) + this.offset.x;
-        this.position.y = y + ((this.widthY * this.sprite.anchor.x) - this.widthY * 0.5) + this.offset.y;
-        this.position.z = z - (Math.abs(this.sprite.height) * (1 - this.sprite.anchor.y)) + (Math.abs(this.sprite.width * 0.5)) + this.offset.z;
-
-        this.prev.x = this.position.x;
-        this.prev.y = this.position.y;
-        this.prev.z = this.position.z;
-
-        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.halfWidthX, this.position.y + this.halfWidthY, this.position.z + this.halfHeight);
-
-        this.sprite._isoPositionChanged = true;
-
-    },
-
-    /**
-     * Tests if a world point lies within this Body.
-     *
-     * @method Phaser.Plugin.Isometric.Body#hitTest
-     * @param {number} x - The world x coordinate to test.
-     * @param {number} y - The world y coordinate to test.
-     * @param {number} z - The world z coordinate to test.
-     * @return {boolean} True if the given coordinates are inside this Body, otherwise false.
-     */
-    hitTest: function (x, y, z) {
-
-        return Phaser.Plugin.Isometric.Cube.contains(this, x, y, z);
-
-    },
-
-    /**
-     * Returns true if the bottom of this Body is in contact with either the world bounds.
-     *
-     * @method Phaser.Plugin.Isometric.Body#onFloor
-     * @return {boolean} True if in contact with either the world bounds.
-     */
-    onFloor: function () {
-
-        return this.blocked.down;
-
-    },
-
-    /**
-     * Returns true if either side of this Body is in contact with either the world bounds.
-     *
-     * @method Phaser.Plugin.Isometric.Body#onWall
-     * @return {boolean} True if in contact with world bounds.
-     */
-    onWall: function () {
-
-        return (this.blocked.frontX || this.blocked.frontY || this.blocked.backX || this.blocked.backY);
-
-    },
-
-    /**
-     * Returns the absolute delta x value.
-     *
-     * @method Phaser.Plugin.Isometric.Body#deltaAbsX
-     * @return {number} The absolute delta value.
-     */
-    deltaAbsX: function () {
-
-        return (this.deltaX() > 0 ? this.deltaX() : -this.deltaX());
-
-    },
-
-    /**
-     * Returns the absolute delta y value.
-     *
-     * @method Phaser.Plugin.Isometric.Body#deltaAbsY
-     * @return {number} The absolute delta value.
-     */
-    deltaAbsY: function () {
-
-        return (this.deltaY() > 0 ? this.deltaY() : -this.deltaY());
-
-    },
-
-    /**
-     * Returns the absolute delta z value.
-     *
-     * @method Phaser.Plugin.Isometric.Body#deltaAbsZ
-     * @return {number} The absolute delta value.
-     */
-    deltaAbsZ: function () {
-
-        return (this.deltaZ() > 0 ? this.deltaZ() : -this.deltaZ());
-
-    },
-
-    /**
-     * Returns the delta x value. The difference between Body.x now and in the previous step.
-     *
-     * @method Phaser.Plugin.Isometric.Body#deltaX
-     * @return {number} The delta value. Positive if the motion was to the right, negative if to the left.
-     */
-    deltaX: function () {
-
-        return this.position.x - this.prev.x;
-
-    },
-
-    /**
-     * Returns the delta y value. The difference between Body.y now and in the previous step.
-     *
-     * @method Phaser.Plugin.Isometric.Body#deltaY
-     * @return {number} The delta value. Positive if the motion was downwards, negative if upwards.
-     */
-    deltaY: function () {
-
-        return this.position.y - this.prev.y;
-
-    },
-
-    /**
-     * Returns the delta z value. The difference between Body.z now and in the previous step.
-     *
-     * @method Phaser.Plugin.Isometric.Body#deltaZ
-     * @return {number} The delta value. Positive if the motion was downwards, negative if upwards.
-     */
-    deltaZ: function () {
-
-        return this.position.z - this.prev.z;
-
-    },
-
-    /**
-     * Returns the delta r value. The difference between Body.rotation now and in the previous step.
-     *
-     * @method Phaser.Plugin.Isometric.Body#deltaR
-     * @return {number} The delta value. Positive if the motion was clockwise, negative if anti-clockwise.
-     */
-    deltaR: function () {
-
-        return this.rotation - this.preRotation;
-
-    },
-
-    /**
-     * Returns the 8 corners that make up the body's bounding cube.
-     *
-     * @method Phaser.Plugin.Isometric.Body#getCorners
-     * @return {Array.<Phaser.Plugin.Isometric.Point3>} An array of Phaser.Plugin.Isometric.Point3 values specifying each corner co-ordinate.
-     */
-    getCorners: function () {
-
-        this._corners[0].setTo(this.x, this.y, this.z);
-        this._corners[1].setTo(this.x, this.y, this.z + this.height);
-        this._corners[2].setTo(this.x, this.y + this.widthY, this.z);
-        this._corners[3].setTo(this.x, this.y + this.widthY, this.z + this.height);
-        this._corners[4].setTo(this.x + this.widthX, this.y, this.z);
-        this._corners[5].setTo(this.x + this.widthX, this.y, this.z + this.height);
-        this._corners[6].setTo(this.x + this.widthX, this.y + this.widthY, this.z);
-        this._corners[7].setTo(this.x + this.widthX, this.y + this.widthY, this.z + this.height);
-
-        return this._corners;
-
-    }
-};
-
-/**
- * @name Phaser.Plugin.Isometric.Body#top
- * @property {number} bottom - The top value of this Body (same as Body.z + Body.height)
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "top", {
-
-    get: function () {
-        return this.position.z + this.height;
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Body#frontX
- * @property {number} right - The front X value of this Body (same as Body.x + Body.widthX)
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "frontX", {
-
-    get: function () {
-        return this.position.x + this.widthX;
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Body#right
- * @property {number} right - The front X value of this Body (same as Body.x + Body.widthX) - alias used for QuadTree
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "right", {
-
-    get: function () {
-        return this.position.x + this.widthX;
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Body#frontY
- * @property {number} right - The front Y value of this Body (same as Body.y + Body.widthY)
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "frontY", {
-
-    get: function () {
-        return this.position.y + this.widthY;
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Body#bottom
- * @property {number} right - The front Y value of this Body (same as Body.y + Body.widthY) - alias used for QuadTree
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "bottom", {
-
-    get: function () {
-        return this.position.y + this.widthY;
-    }
-
-});
-
-
-/**
- * @name Phaser.Plugin.Isometric.Body#x
- * @property {number} x - The x position.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "x", {
-
-    get: function () {
-        return this.position.x;
-    },
-
-    set: function (value) {
-
-        this.position.x = value;
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Body#y
- * @property {number} y - The y position.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "y", {
-
-    get: function () {
-        return this.position.y;
-    },
-
-    set: function (value) {
-
-        this.position.y = value;
-
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Body#z
- * @property {number} z - The z position.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Body.prototype, "z", {
-
-    get: function () {
-        return this.position.z;
-    },
-
-    set: function (value) {
-
-        this.position.z = value;
-
-    }
-
-});
-
-/**
- * Render IsoSprite Body.
- *
- * @method Phaser.Plugin.Isometric.Body#render
- * @param {object} context - The context to render to.
- * @param {Phaser.Plugin.Isometric.Body} body - The Body to render the info of.
- * @param {string} [color='rgba(0,255,0,0.4)'] - color of the debug info to be rendered. (format is css color string).
- * @param {boolean} [filled=true] - Render the objected as a filled (default, true) or a stroked (false)
- */
-Phaser.Plugin.Isometric.Body.render = function (context, body, color, filled) {
-
-    if (typeof filled === 'undefined') {
-        filled = true;
-    }
-
-    color = color || 'rgba(0,255,0,0.4)';
-
-    var points = [],
-        corners = body.getCorners();
-
-    var posX = -body.sprite.game.camera.x;
-    var posY = -body.sprite.game.camera.y;
-
-    if (filled) {
-        points = [corners[1], corners[3], corners[2], corners[6], corners[4], corners[5], corners[1]];
-
-        points = points.map(function (p) {
-            var newPos = this.game.iso.project(p);
-            newPos.x += posX;
-            newPos.y += posY;
-            return newPos;
-        });
-        context.beginPath();
-        context.fillStyle = color;
-        context.moveTo(points[0].x, points[0].y);
-
-        for (var i = 1; i < points.length; i++) {
-            context.lineTo(points[i].x, points[i].y);
-        }
-        context.fill();
-    } else {
-        points = corners.slice(0, corners.length);
-        points = points.map(function (p) {
-            var newPos = this.game.iso.project(p);
-            newPos.x += posX;
-            newPos.y += posY;
-            return newPos;
-        });
-
-        context.moveTo(points[0].x, points[0].y);
-        context.beginPath();
-        context.strokeStyle = color;
-
-        context.lineTo(points[1].x, points[1].y);
-        context.lineTo(points[3].x, points[3].y);
-        context.lineTo(points[2].x, points[2].y);
-        context.lineTo(points[6].x, points[6].y);
-        context.lineTo(points[4].x, points[4].y);
-        context.lineTo(points[5].x, points[5].y);
-        context.lineTo(points[1].x, points[1].y);
-        context.lineTo(points[0].x, points[0].y);
-        context.lineTo(points[4].x, points[4].y);
-        context.moveTo(points[0].x, points[0].y);
-        context.lineTo(points[2].x, points[2].y);
-        context.moveTo(points[3].x, points[3].y);
-        context.lineTo(points[7].x, points[7].y);
-        context.lineTo(points[6].x, points[6].y);
-        context.moveTo(points[7].x, points[7].y);
-        context.lineTo(points[5].x, points[5].y);
-        context.stroke();
-        context.closePath();
-    }
-
-};
-
-/**
- * Render IsoSprite Body Physics Data as text.
- *
- * @method Phaser.Plugin.Isometric.Body#renderBodyInfo
- * @param {Phaser.Plugin.Isometric.Body} body - The Body to render the info of.
- * @param {number} x - X position of the debug info to be rendered.
- * @param {number} y - Y position of the debug info to be rendered.
- * @param {string} [color='rgb(255,255,255)'] - color of the debug info to be rendered. (format is css color string).
- */
-Phaser.Plugin.Isometric.Body.renderBodyInfo = function (debug, body) {
-
-    debug.line('x: ' + body.x.toFixed(2), 'y: ' + body.y.toFixed(2), 'z: ' + body.z.toFixed(2), 'widthX: ' + body.widthX, 'widthY: ' + body.widthY, 'height: ' + body.height);
-    debug.line('velocity x: ' + body.velocity.x.toFixed(2), 'y: ' + body.velocity.y.toFixed(2), 'z: ' + body.velocity.z.toFixed(2), 'deltaX: ' + body._dx.toFixed(2), 'deltaY: ' + body._dy.toFixed(2), 'deltaZ: ' + body._dz.toFixed(2));
-    debug.line('acceleration x: ' + body.acceleration.x.toFixed(2), 'y: ' + body.acceleration.y.toFixed(2), 'z: ' + body.acceleration.z.toFixed(2), 'speed: ' + body.speed.toFixed(2), 'angle: ' + body.angle.toFixed(2));
-    debug.line('gravity x: ' + body.gravity.x, 'y: ' + body.gravity.y, 'z: ' + body.gravity.z);
-    debug.line('bounce x: ' + body.bounce.x.toFixed(2), 'y: ' + body.bounce.y.toFixed(2), 'z: ' + body.bounce.z.toFixed(2));
-    debug.line('touching: ', 'frontX: ' + (body.touching.frontX ? 1 : 0) + ' frontY: ' + (body.touching.frontY ? 1 : 0) + ' backX: ' + (body.touching.backX ? 1 : 0) + ' backY: ' + (body.touching.backY ? 1 : 0) + ' up: ' + (body.touching.up ? 1 : 0) + ' down: ' + (body.touching.down ? 1 : 0));
-    debug.line('blocked: ', 'frontX: ' + (body.blocked.frontX ? 1 : 0) + ' frontY: ' + (body.blocked.frontY ? 1 : 0) + ' backX: ' + (body.blocked.backX ? 1 : 0) + ' backY: ' + (body.blocked.backY ? 1 : 0) + ' up: ' + (body.blocked.up ? 1 : 0) + ' down: ' + (body.blocked.down ? 1 : 0));
-
-};
-
-Phaser.Plugin.Isometric.Body.prototype.constructor = Phaser.Plugin.Isometric.Body;
-
-Phaser.Utils.Debug.prototype.body = (function (_super) {
-
-    return function (sprite, color, filled) {
-        if (sprite.body && sprite.body.type === Phaser.Plugin.Isometric.ISOARCADE) {
-            this.start();
-            Phaser.Plugin.Isometric.Body.render(this.context, sprite.body, color, filled);
-            this.stop();
-        }
-
-        return _super.call(this, sprite, color, filled);
-    };
-
-})(Phaser.Utils.Debug.prototype.body);
-
-Phaser.Utils.Debug.prototype.bodyInfo = (function (_super) {
-
-    return function (sprite, x, y, color) {
-        if (sprite.body && sprite.body.type === Phaser.Plugin.Isometric.ISOARCADE) {
-            this.start(x, y, color, 210);
-            Phaser.Plugin.Isometric.Body.renderBodyInfo(this, sprite.body);
-            this.stop();
-        }
-
-        return _super.call(this, sprite, x, y, color);
-    };
-
-})(Phaser.Utils.Debug.prototype.bodyInfo);
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/Cube.js.html b/doc/Cube.js.html deleted file mode 100644 index 1fab372..0000000 --- a/doc/Cube.js.html +++ /dev/null @@ -1,775 +0,0 @@ - - - - - - Phaser Isometric Source: Cube.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: Cube.js

- -
-
-
/**
- * @class Phaser.Plugin.Isometric.Cube
- * 
- * @classdesc
- * Creates a new Cube object with the bottom-back corner specified by the x, y and z parameters, with the specified breadth (widthX), depth (widthY) and height parameters. If you call this function without parameters, a Cube with x, y, z, breadth, depth and height properties set to 0 is created.
- * 
- * @constructor
- * @param {number} x - The x coordinate of the bottom-back corner of the Cube.
- * @param {number} y - The y coordinate of the bottom-back corner of the Cube.
- * @param {number} z - The z coordinate of the bottom-back corner of the Cube.
- * @param {number} widthX - The X axis width (breadth) of the Cube. Should always be either zero or a positive value.
- * @param {number} widthY - The Y axis width (depth) of the Cube. Should always be either zero or a positive value.
- * @param {number} height - The Z axis height of the Cube. Should always be either zero or a positive value.
- * @return {Phaser.Plugin.Isometric.Cube} This Cube object.
- */
-Phaser.Plugin.Isometric.Cube = function (x, y, z, widthX, widthY, height) {
-
-    x = x || 0;
-    y = y || 0;
-    z = z || 0;
-    widthX = widthX || 0;
-    widthY = widthY || 0;
-    height = height || 0;
-
-    /**
-     * @property {number} x - The x coordinate of the bottom-back corner of the Cube.
-     */
-    this.x = x;
-
-    /**
-     * @property {number} y - The y coordinate of the bottom-back corner of the Cube.
-     */
-    this.y = y;
-
-    /**
-     * @property {number} z - The z coordinate of the bottom-back corner of the Cube.
-     */
-    this.z = z;
-
-    /**
-     * @property {number} widthX - The X axis width (breadth) of the Cube. This value should never be set to a negative.
-     */
-    this.widthX = widthX;
-
-    /**
-     * @property {number} widthY - The Y axis width (depth) of the Cube. This value should never be set to a negative.
-     */
-    this.widthY = widthY;
-
-    /**
-     * @property {number} height - The Z axis height of the Cube. This value should never be set to a negative.
-     */
-    this.height = height;
-
-    /**
-     * @property {Array.<Phaser.Plugin.Isometric.Point3>} _corners - The 8 corners of the Cube.
-     * @private
-     */
-    this._corners = [
-        new Phaser.Plugin.Isometric.Point3(this.x, this.y, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x, this.y, this.z + this.height),
-        new Phaser.Plugin.Isometric.Point3(this.x, this.y + this.widthY, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x, this.y + this.widthY, this.z + this.height),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y, this.z + this.height),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y + this.widthY, this.z),
-        new Phaser.Plugin.Isometric.Point3(this.x + this.widthX, this.y + this.widthY, this.z + this.height)
-    ];
-};
-
-Phaser.Plugin.Isometric.Cube.prototype.constructor = Phaser.Plugin.Isometric.Cube;
-
-Phaser.Plugin.Isometric.Cube.prototype = {
-    /**
-     * Sets the members of Cube to the specified values.
-     * @method Phaser.Plugin.Isometric.Cube#setTo
-     * @param {number} x - The x coordinate of the bottom-back corner of the Cube.
-     * @param {number} y - The y coordinate of the bottom-back corner of the Cube.
-     * @param {number} z - The z coordinate of the bottom-back corner of the Cube.
-     * @param {number} widthX - The X axis width (breadth) of the Cube. This value should never be set to a negative.
-     * @param {number} widthY - The Y axis width (depth) of the Cube. This value should never be set to a negative.
-     * @param {number} height - The Z axis height of the Cube. This value should never be set to a negative.
-     * @return {Phaser.Plugin.Isometric.Cube} This Cube object
-     */
-    setTo: function (x, y, z, widthX, widthY, height) {
-
-        this.x = x;
-        this.y = y;
-        this.z = z;
-        this.widthX = widthX;
-        this.widthY = widthY;
-        this.height = height;
-
-        return this;
-
-    },
-
-    /**
-     * Copies the x, y, z, widthX, widthY and height properties from any given object to this Cube.
-     * @method Phaser.Plugin.Isometric.Cube#copyFrom
-     * @param {any} source - The object to copy from.
-     * @return {Phaser.Plugin.Isometric.Cube} This Cube object.
-     */
-    copyFrom: function (source) {
-
-        this.setTo(source.x, source.y, source.z, source.widthX, source.widthY, source.height);
-
-    },
-
-    /**
-     * Copies the x, y, z, widthX, widthY and height properties from this Cube to any given object.
-     * @method Phaser.Plugin.Isometric.Cube#copyTo
-     * @param {any} dest - The object to copy to.
-     * @return {Phaser.Plugin.Isometric.Cube} This Cube object.
-     */
-    copyTo: function (dest) {
-
-        dest.x = this.x;
-        dest.y = this.y;
-        dest.z = this.z;
-        dest.widthX = this.widthX;
-        dest.widthY = this.widthY;
-        dest.height = this.height;
-
-        return dest;
-
-    },
-
-    /**
-     * The size of the Cube object, expressed as a Point3 object with the values of the widthX, widthY and height properties.
-     * @method Phaser.Plugin.Isometric.Cube#size
-     * @param {Phaser.Plugin.Isometric.Point3} [output] - Optional Point3 object. If given the values will be set into the object, otherwise a brand new Point3 object will be created and returned.
-     * @return {Phaser.Plugin.Isometric.Point3} The size of the Cube object.
-     */
-    size: function (output) {
-
-        return Phaser.Plugin.Isometric.Cube.size(this, output);
-
-    },
-
-    /**
-     * Returns a new Cube object with the same values for the x, y, z, widthX, widthY and height properties as the original Cube object.
-     * @method Phaser.Plugin.Isometric.Cube#clone
-     * @param {Phaser.Plugin.Isometric.Cube} [output] - Optional Cube object. If given the values will be set into the object, otherwise a brand new Cube object will be created and returned.
-     * @return {Phaser.Plugin.Isometric.Cube}
-     */
-    clone: function (output) {
-
-        return Phaser.Plugin.Isometric.Cube.clone(this, output);
-
-    },
-
-    /**
-     * Determines whether the two Cubes intersect with each other.
-     * This method checks the x, y, z, widthX, widthY, and height properties of the Cubes.
-     * @method Phaser.Plugin.Isometric.Cube#intersects
-     * @param {Phaser.Plugin.Isometric.Cube} b - The second Cube object.
-     * @return {boolean} A value of true if the specified object intersects with this Cube object; otherwise false.
-     */
-    intersects: function (b) {
-
-        return Phaser.Plugin.Isometric.Cube.intersects(this, b);
-
-    },
-
-    /**
-     * Updates and returns an Array of eight Point3 objects containing the corners of this Cube.
-     * @method Phaser.Plugin.Isometric.Cube#getCorners
-     * @return {Array.<Phaser.Plugin.Isometric.Point3>} The corners of this Cube expressed as an Array of eight Point3 objects.
-     */
-    getCorners: function () {
-
-        this._corners[0].setTo(this.x, this.y, this.z);
-        this._corners[1].setTo(this.x, this.y, this.z + this.height);
-        this._corners[2].setTo(this.x, this.y + this.widthY, this.z);
-        this._corners[3].setTo(this.x, this.y + this.widthY, this.z + this.height);
-        this._corners[4].setTo(this.x + this.widthX, this.y, this.z);
-        this._corners[5].setTo(this.x + this.widthX, this.y, this.z + this.height);
-        this._corners[6].setTo(this.x + this.widthX, this.y + this.widthY, this.z);
-        this._corners[7].setTo(this.x + this.widthX, this.y + this.widthY, this.z + this.height);
-
-        return this._corners;
-
-    },
-
-    /**
-     * Returns a string representation of this object.
-     * @method Phaser.Plugin.Isometric.Cube#toString
-     * @return {string} A string representation of the instance.
-     */
-    toString: function () {
-
-        return "[{Cube (x=" + this.x + " y=" + this.y + " z=" + this.z + " widthX=" + this.widthX + " widthY=" + this.widthY + " height=" + this.height + " empty=" + this.empty + ")}]";
-
-    }
-};
-
-/**
- * @name Phaser.Plugin.Isometric.Cube#halfWidthX
- * @property {number} halfWidthX - Half of the widthX of the Cube.
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "halfWidthX", {
-
-    get: function () {
-        return Math.round(this.widthX * 0.5);
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Cube#halfWidthY
- * @property {number} halfWidthY - Half of the widthY of the Cube.
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "halfWidthY", {
-
-    get: function () {
-        return Math.round(this.widthY * 0.5);
-    }
-
-});
-
-/**
- * @name Phaser.Plugin.Isometric.Cube#halfHeight
- * @property {number} halfHeight - Half of the height of the Cube.
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "halfHeight", {
-
-    get: function () {
-        return Math.round(this.height * 0.5);
-    }
-
-});
-
-/**
- * The z coordinate of the bottom of the Cube. Changing the bottom property of a Cube object has no effect on the x, y, widthX and widthY properties.
- * However it does affect the height property, whereas changing the z value does not affect the height property.
- * @name Phaser.Plugin.Isometric.Cube#bottom
- * @property {number} bottom - The z coordinate of the bottom of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "bottom", {
-
-    get: function () {
-        return this.z;
-    },
-
-    set: function (value) {
-        if (value >= this.top) {
-            this.height = 0;
-        } else {
-            this.height = (this.top - value);
-        }
-        this.z = value;
-    }
-
-});
-
-/**
- * The sum of the z and height properties. Changing the top property of a Cube object has no effect on the x, y, z, widthX and widthY properties, but does change the height property.
- * @name Phaser.Plugin.Isometric.Cube#top
- * @property {number} top - The sum of the z and height properties.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "top", {
-
-    get: function () {
-        return this.z + this.height;
-    },
-
-    set: function (value) {
-        if (value <= this.z) {
-            this.height = 0;
-        } else {
-            this.height = (value - this.z);
-        }
-    }
-
-});
-
-/**
- * The x coordinate of the back of the Cube. Changing the backX property of a Cube object has no effect on the y, z, widthY and height properties. However it does affect the widthX property, whereas changing the x value does not affect the width property.
- * @name Phaser.Plugin.Isometric.Cube#backX
- * @property {number} backX - The x coordinate of the left of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "backX", {
-
-    get: function () {
-        return this.x;
-    },
-
-    set: function (value) {
-        if (value >= this.frontX) {
-            this.widthX = 0;
-        } else {
-            this.widthX = (this.frontX - value);
-        }
-        this.x = value;
-    }
-
-});
-
-/**
- * The y coordinate of the back of the Cube. Changing the backY property of a Cube object has no effect on the x, z, widthX and height properties. However it does affect the widthY property, whereas changing the y value does not affect the width property.
- * @name Phaser.Plugin.Isometric.Cube#backY
- * @property {number} backY - The x coordinate of the left of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "backY", {
-
-    get: function () {
-        return this.y;
-    },
-
-    set: function (value) {
-        if (value >= this.frontY) {
-            this.widthY = 0;
-        } else {
-            this.widthY = (this.frontY - value);
-        }
-        this.y = value;
-    }
-
-});
-
-/**
- * The sum of the x and widthX properties. Changing the frontX property of a Cube object has no effect on the x, y, z, widthY and height properties, however it does affect the widthX property.
- * @name Phaser.Plugin.Isometric.Cube#frontX
- * @property {number} frontX - The sum of the x and widthX properties.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "frontX", {
-
-    get: function () {
-        return this.x + this.widthX;
-    },
-
-    set: function (value) {
-        if (value <= this.x) {
-            this.widthX = 0;
-        } else {
-            this.widthX = (value - this.x);
-        }
-    }
-
-});
-
-/**
- * The sum of the y and widthY properties. Changing the frontY property of a Cube object has no effect on the x, y, z, widthX and height properties, however it does affect the widthY property.
- * @name Phaser.Plugin.Isometric.Cube#frontY
- * @property {number} frontY - The sum of the y and widthY properties.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "frontY", {
-
-    get: function () {
-        return this.y + this.widthY;
-    },
-
-    set: function (value) {
-        if (value <= this.y) {
-            this.widthY = 0;
-        } else {
-            this.widthY = (value - this.y);
-        }
-    }
-
-});
-
-/**
- * The volume of the Cube derived from widthX * widthY * height.
- * @name Phaser.Plugin.Isometric.Cube#volume
- * @property {number} volume - The volume of the Cube derived from widthX * widthY * height.
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "volume", {
-
-    get: function () {
-        return this.widthX * this.widthY * this.height;
-    }
-
-});
-
-/**
- * The x coordinate of the center of the Cube.
- * @name Phaser.Plugin.Isometric.Cube#centerX
- * @property {number} centerX - The x coordinate of the center of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "centerX", {
-    get: function () {
-        return this.x + this.halfWidthX;
-    },
-
-    set: function (value) {
-        this.x = value - this.halfWidthX;
-    }
-});
-
-/**
- * The y coordinate of the center of the Cube.
- * @name Phaser.Plugin.Isometric.Cube#centerY
- * @property {number} centerY - The y coordinate of the center of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "centerY", {
-    get: function () {
-        return this.y + this.halfWidthY;
-    },
-
-    set: function (value) {
-        this.y = value - this.halfWidthY;
-    }
-});
-
-/**
- * The z coordinate of the center of the Cube.
- * @name Phaser.Plugin.Isometric.Cube#centerZ
- * @property {number} centerZ - The z coordinate of the center of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "centerZ", {
-    get: function () {
-        return this.z + this.halfHeight;
-    },
-
-    set: function (value) {
-        this.z = value - this.halfHeight;
-    }
-});
-
-/**
- * A random value between the frontX and backX values (inclusive) of the Cube.
- *
- * @name Phaser.Plugin.Isometric.Cube#randomX
- * @property {number} randomX - A random value between the frontX and backX values (inclusive) of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "randomX", {
-
-    get: function () {
-
-        return this.x + (Math.random() * this.widthX);
-
-    }
-
-});
-
-/**
- * A random value between the frontY and backY values (inclusive) of the Cube.
- *
- * @name Phaser.Plugin.Isometric.Cube#randomY
- * @property {number} randomY - A random value between the frontY and backY values (inclusive) of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "randomY", {
-
-    get: function () {
-
-        return this.y + (Math.random() * this.widthY);
-
-    }
-
-});
-
-/**
- * A random value between the bottom and top values (inclusive) of the Cube.
- *
- * @name Phaser.Plugin.Isometric.Cube#randomZ
- * @property {number} randomZ - A random value between the bottom and top values (inclusive) of the Cube.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "randomZ", {
-
-    get: function () {
-
-        return this.z + (Math.random() * this.height);
-
-    }
-
-});
-
-/**
- * Determines whether or not this Cube object is empty. A Cube object is empty if its widthX, widthY or height is less than or equal to 0.
- * If set to true then all of the Cube properties are set to 0.
- * @name Phaser.Plugin.Isometric.Cube#empty
- * @property {boolean} empty - Gets or sets the Cube's empty state.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.Cube.prototype, "empty", {
-
-    get: function () {
-        return (!this.widthX || !this.widthY || !this.height);
-    },
-
-    set: function (value) {
-
-        if (value === true) {
-            this.setTo(0, 0, 0, 0, 0, 0);
-        }
-
-    }
-
-});
-
-/**
- * The size of the Cube object, expressed as a Point3 object with the values of the widthX, widthY and height properties.
- * @method Phaser.Plugin.Isometric.Cube.size
- * @param {Phaser.Plugin.Isometric.Cube} a - The Cube object.
- * @param {Phaser.Plugin.Isometric.Point3} [output] - Optional Point3 object. If given the values will be set into the object, otherwise a brand new Point3 object will be created and returned.
- * @return {Phaser.Plugin.Isometric.Point3} The size of the Cube object
- */
-Phaser.Plugin.Isometric.Cube.size = function (a, output) {
-    if (typeof output === "undefined" || output === null) {
-        output = new Phaser.Plugin.Isometric.Point3(a.widthX, a.widthY, a.height);
-    } else {
-        output.setTo(a.widthX, a.widthY, a.height);
-    }
-
-    return output;
-};
-
-/**
- * Returns a new Cube object with the same values for the x, y, z, widthX, widthY, and height properties as the original Cube object.
- * @method Phaser.Plugin.Isometric.Cube.clone
- * @param {Phaser.Plugin.Isometric.Cube} a - The Cube object.
- * @param {Phaser.Plugin.Isometric.Cube} [output] - Optional Cube object. If given the values will be set into the object, otherwise a brand new Cube object will be created and returned.
- * @return {Phaser.Plugin.Isometric.Cube}
- */
-Phaser.Plugin.Isometric.Cube.clone = function (a, output) {
-    if (typeof output === "undefined" || output === null) {
-        output = new Phaser.Plugin.Isometric.Cube(a.x, a.y, a.z, a.widthX, a.widthY, a.height);
-    } else {
-        output.setTo(a.x, a.y, a.z, a.widthX, a.widthY, a.height);
-    }
-
-    return output;
-};
-
-/**
- * Determines whether the specified coordinates are contained within the region defined by this Cube object.
- * @method Phaser.Plugin.Isometric.Cube.contains
- * @param {Phaser.Plugin.Isometric.Cube} a - The Cube object.
- * @param {number} x - The x coordinate of the point to test.
- * @param {number} y - The y coordinate of the point to test.
- * @param {number} z - The z coordinate of the point to test.
- * @return {boolean} A value of true if the Cube object contains the specified point; otherwise false.
- */
-Phaser.Plugin.Isometric.Cube.contains = function (a, x, y, z) {
-    if (a.widthX <= 0 || a.widthY <= 0 || a.height <= 0) {
-        return false;
-    }
-
-    return (x >= a.x && x <= a.right && y >= a.y && y <= a.back && z >= a.z && z <= a.top);
-};
-
-/**
- * Determines whether the specified point is contained within the cubic region defined by this Cube object. This method is similar to the Cube.contains() method, except that it takes a Point3 object as a parameter.
- * @method Phaser.Plugin.Isometric.Cube.containsPoint3
- * @param {Phaser.Plugin.Isometric.Cube} a - The Cube object.
- * @param {Phaser.Plugin.Isometric.Point3} point3 - The Point3 object being checked. Can be Point3 or any object with .x, .y and .z values.
- * @return {boolean} A value of true if the Cube object contains the specified point; otherwise false.
- */
-Phaser.Plugin.Isometric.Cube.containsPoint3 = function (a, point3) {
-    return Phaser.Plugin.Isometric.Cube.contains(a, point3.x, point3.y, point3.z);
-};
-
-/**
- * Determines whether the first Cube object is fully contained within the second Cube object.
- * A Cube object is said to contain another if the second Cube object falls entirely within the boundaries of the first.
- * @method Phaser.Plugin.Isometric.Cube.containsCube
- * @param {Phaser.Plugin.Isometric.Cube} a - The first Cube object.
- * @param {Phaser.Plugin.Isometric.Cube} b - The second Cube object.
- * @return {boolean} A value of true if the Cube object contains the specified point; otherwise false.
- */
-Phaser.Plugin.Isometric.Cube.containsCube = function (a, b) {
-
-    //  If the given cube has a larger volume than this one then it can never contain it
-    if (a.volume > b.volume) {
-        return false;
-    }
-
-    return (a.x >= b.x && a.y >= b.y && a.z >= b.z && a.frontX <= b.frontX && a.frontY <= b.frontY && a.top <= b.top);
-
-};
-
-/**
- * Determines whether the two Cubes intersect with each other.
- * This method checks the x, y, z, widthX, widthY, and height properties of the Cubes.
- * @method Phaser.Plugin.Isometric.Cube.intersects
- * @param {Phaser.Plugin.Isometric.Cube} a - The first Cube object.
- * @param {Phaser.Plugin.Isometric.Cube} b - The second Cube object.
- * @return {boolean} A value of true if the specified object intersects with this Cube object; otherwise false.
- */
-Phaser.Plugin.Isometric.Cube.intersects = function (a, b) {
-    if (a.widthX <= 0 || a.widthY <= 0 || a.height <= 0 || b.widthX <= 0 || b.widthY <= 0 || b.height <= 0) {
-        return false;
-    }
-    return !(a.frontX < b.x || a.frontY < b.y || a.x > b.frontX || a.y > b.frontY || a.z > b.top || a.top < b.z);
-};
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/IsoSprite.js.html b/doc/IsoSprite.js.html deleted file mode 100644 index 0ab7dd1..0000000 --- a/doc/IsoSprite.js.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - Phaser Isometric Source: IsoSprite.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: IsoSprite.js

- -
-
-
/**
-* @class Phaser.Plugin.Isometric.IsoSprite
-*
-* @classdesc
-* Create a new `IsoSprite` object. IsoSprites are extended versions of standard Sprites that are suitable for axonometric positioning.
-*
-* IsoSprites are simply Sprites that have three new position properties (isoX, isoY and isoZ) and ask the instance of Phaser.Plugin.Isometric.Projector what their position should be in a 2D scene whenever these properties are changed.
-* The IsoSprites retain their 2D position property to prevent any problems and allow you to interact with them as you would a normal Sprite. The upside of this simplicity is that things should behave predictably for those already used to Phaser.
-* 
-* @constructor
-* @extends Phaser.Sprite
-* @param {Phaser.Game} game - A reference to the currently running game.
-* @param {number} x - The x coordinate (in 3D space) to position the IsoSprite at.
-* @param {number} y - The y coordinate (in 3D space) to position the IsoSprite at.
-* @param {number} z - The z coordinate (in 3D space) to position the IsoSprite at.
-* @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the IsoSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture.
-* @param {string|number} frame - If this IsoSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index.
- */
-Phaser.Plugin.Isometric.IsoSprite = function (game, x, y, z, key, frame) {
-
-    Phaser.Sprite.call(this, game, x, y, key, frame);
-
-    /**
-     * @property {number} type - The const type of this object.
-     * @readonly
-     */
-    this.type = Phaser.Plugin.Isometric.ISOSPRITE;
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} _isoPosition - Internal 3D position.
-     * @private
-     */
-    this._isoPosition = new Phaser.Plugin.Isometric.Point3(x, y, z);
-
-    /**
-     * @property {number} snap - Snap this IsoSprite's position to the specified value; handy for keeping pixel art snapped to whole pixels.
-     * @default
-     */
-    this.snap = 0;
-
-    /**
-     * @property {number} _depth - Internal cached depth value.
-     * @readonly
-     * @private
-     */
-    this._depth = 0;
-
-    /**
-     * @property {boolean} _depthChanged - Internal invalidation control for depth management.
-     * @readonly
-     * @private
-     */
-    this._depthChanged = true;
-
-    /**
-     * @property {boolean} _isoPositionChanged - Internal invalidation control for positioning.
-     * @readonly
-     * @private
-     */
-    this._isoPositionChanged = true;
-
-    this._project();
-};
-
-Phaser.Plugin.Isometric.IsoSprite.prototype = Object.create(Phaser.Sprite.prototype);
-Phaser.Plugin.Isometric.IsoSprite.prototype.constructor = Phaser.Plugin.Isometric.IsoSprite;
-
-/**
- * Internal function called by the World postUpdate cycle.
- *
- * @method Phaser.Plugin.Isometric.IsoSprite#postUpdate
- * @memberof Phaser.Plugin.Isometric.IsoSprite
- */
-Phaser.Plugin.Isometric.IsoSprite.prototype.postUpdate = function () {
-    Phaser.Sprite.prototype.postUpdate.call(this);
-
-    this._project();
-};
-
-/**
- * Internal function that performs the axonometric projection from 3D to 2D space.
- * @method Phaser.Plugin.Isometric.IsoSprite#_project
- * @memberof Phaser.Plugin.Isometric.IsoSprite
- * @private
- */
-Phaser.Plugin.Isometric.IsoSprite.prototype._project = function () {
-    if (this._isoPositionChanged) {
-        this.game.iso.project(this._isoPosition, this.position);
-
-        if (this.snap > 0) {
-            this.position.x = Phaser.Math.snapTo(this.position.x, this.snap);
-            this.position.y = Phaser.Math.snapTo(this.position.y, this.snap);
-        }
-
-        this._isoPositionChanged = false;
-    }
-};
-
-/**
- * The axonometric position of the IsoSprite on the x axis. Increasing the x coordinate will move the object down and to the right on the screen.
- *
- * @name Phaser.Plugin.Isometric.IsoSprite#isoX
- * @property {number} isoX - The axonometric position of the IsoSprite on the x axis.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.IsoSprite.prototype, "isoX", {
-    get: function () {
-        return this._isoPosition.x;
-    },
-    set: function (value) {
-        this._isoPosition.x = value;
-        this._depthChanged = this._isoPositionChanged = true;
-    }
-});
-
-/**
- * The axonometric position of the IsoSprite on the y axis. Increasing the y coordinate will move the object down and to the left on the screen.
- *
- * @name Phaser.Plugin.Isometric.IsoSprite#isoY
- * @property {number} isoY - The axonometric position of the IsoSprite on the y axis.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.IsoSprite.prototype, "isoY", {
-    get: function () {
-        return this._isoPosition.y;
-    },
-    set: function (value) {
-        this._isoPosition.y = value;
-        this._depthChanged = this._isoPositionChanged = true;
-    }
-});
-
-/**
- * The axonometric position of the IsoSprite on the z axis. Increasing the z coordinate will move the object directly upwards on the screen.
- *
- * @name Phaser.Plugin.Isometric.IsoSprite#isoZ
- * @property {number} isoZ - The axonometric position of the IsoSprite on the z axis.
- */
-Object.defineProperty(Phaser.Plugin.Isometric.IsoSprite.prototype, "isoZ", {
-    get: function () {
-        return this._isoPosition.z;
-    },
-    set: function (value) {
-        this._isoPosition.z = value;
-        this._depthChanged = this._isoPositionChanged = true;
-    }
-});
-
-/**
- * A Point3 object representing the axonometric position of the IsoSprite.
- *
- * @name Phaser.Plugin.Isometric.IsoSprite#isoPosition
- * @property {Point3} isoPosition - The axonometric position of the IsoSprite on the z axis.
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.IsoSprite.prototype, "isoPosition", {
-    get: function () {
-        return this._isoPosition;
-    }
-});
-
-/**
- * The non-unit distance of the IsoSprite from the 'front' of the scene. Used to correctly depth sort a group of IsoSprites.
- *
- * @name Phaser.Plugin.Isometric.IsoSprite#depth
- * @property {number} depth - A calculated value used for depth sorting.
- * @readonly
- */
-Object.defineProperty(Phaser.Plugin.Isometric.IsoSprite.prototype, "depth", {
-    get: function () {
-        if (this._depthChanged === true) {
-            this._depth = (this._isoPosition.x + this._isoPosition.y);
-            this._depthChanged = false;
-        }
-        return this._depth;
-    }
-});
-
-/**
- * Create a new IsoSprite with specific position and sprite sheet key.
- *
- * @method Phaser.GameObjectFactory#isoSprite
- * @param {number} x - X position of the new IsoSprite.
- * @param {number} y - Y position of the new IsoSprite.
- * @param {number} y - Z position of the new IsoSprite.
- * @param {string|Phaser.RenderTexture|PIXI.Texture} key - This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture.
- * @param {string|number} [frame] - If the sprite uses an image from a texture atlas or sprite sheet you can pass the frame here. Either a number for a frame ID or a string for a frame name.
- * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group.
- * @returns {Phaser.Plugin.Isometric.IsoSprite} the newly created IsoSprite object.
- */
-
-Phaser.GameObjectCreator.prototype.isoSprite = function (x, y, z, key, frame) {
-
-    return new Phaser.Plugin.Isometric.IsoSprite(this.game, x, y, z, key, frame);
-
-};
-
-/**
- * Create a new IsoSprite with specific position and sprite sheet key.
- *
- * @method Phaser.GameObjectFactory#isoSprite
- * @param {number} x - X position of the new IsoSprite.
- * @param {number} y - Y position of the new IsoSprite.
- * @param {number} y - Z position of the new IsoSprite.
- * @param {string|Phaser.RenderTexture|PIXI.Texture} key - This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture.
- * @param {string|number} [frame] - If the sprite uses an image from a texture atlas or sprite sheet you can pass the frame here. Either a number for a frame ID or a string for a frame name.
- * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group.
- * @returns {Phaser.Plugin.Isometric.IsoSprite} the newly created IsoSprite object.
- */
-Phaser.GameObjectFactory.prototype.isoSprite = function (x, y, z, key, frame, group) {
-
-    if (typeof group === 'undefined') {
-        group = this.world;
-    }
-
-    return group.add(new Phaser.Plugin.Isometric.IsoSprite(this.game, x, y, z, key, frame));
-
-};
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/Isometric.js.html b/doc/Isometric.js.html deleted file mode 100644 index 9072627..0000000 --- a/doc/Isometric.js.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - Phaser Isometric Source: Isometric.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: Isometric.js

- -
-
-
/**
-* The MIT License (MIT)
-
-* Copyright (c) 2014 Lewis Lane
-
-* Permission is hereby granted, free of charge, to any person obtaining a copy
-* of this software and associated documentation files (the "Software"), to deal
-* in the Software without restriction, including without limitation the rights
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the Software is
-* furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in
-* all copies or substantial portions of the Software.
-*
-* THE SOFTWARE 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN
-* THE SOFTWARE.
-*
-* 
-*
-*/
-
-/**
- * @author       Lewis Lane <lew@rotates.org>
- * @copyright    2014 Lewis Lane (Rotates.org)
- * @license      {@link http://opensource.org/licenses/MIT|MIT License}
- */
-
-/**
- * @class Phaser.Plugin.Isometric
- * 
- * @classdesc
- * Isometric is a comprehensive axonometric plugin for Phaser which provides an API for handling axonometric projection of assets in 3D space to the screen.
- * The goal has been to mimic as closely as possible the existing APIs provided by Phaser for standard orthogonal 2D projection, but add a third dimension.
- * Also included is an Arcade-based 3D AABB physics engine, which again is closely equivalent in functionality and its API.
- * 
- * @constructor
- * @param {Phaser.Game} game The current game instance.
- */
-Phaser.Plugin.Isometric = function (game, parent) {
-
-    Phaser.Plugin.call(this, game, parent);
-
-    //  Add an instance of Isometric.Projector to game.iso if it doesn't exist already
-    this.game.iso = this.game.iso || new Phaser.Plugin.Isometric.Projector(this.game, Phaser.Plugin.Isometric.CLASSIC);
-};
-
-Phaser.Plugin.Isometric.prototype = Object.create(Phaser.Plugin.prototype);
-Phaser.Plugin.Isometric.prototype.constructor = Phaser.Plugin.Isometric;
-
-Phaser.Plugin.Isometric.VERSION = '0.7.3';
-
-//  Directional consts
-Phaser.Plugin.Isometric.UP = 0;
-Phaser.Plugin.Isometric.DOWN = 1;
-Phaser.Plugin.Isometric.FORWARDX = 2;
-Phaser.Plugin.Isometric.FORWARDY = 3;
-Phaser.Plugin.Isometric.BACKWARDX = 4;
-Phaser.Plugin.Isometric.BACKWARDY = 5;
-
-//  Type consts
-Phaser.Plugin.Isometric.ISOSPRITE = 'isosprite';
-Phaser.Plugin.Isometric.ISOARCADE = 'isoarcade';
-
-//  Projection angles
-Phaser.Plugin.Isometric.CLASSIC = 0.5;
-Phaser.Plugin.Isometric.TRUE = 0.6154797093263624;
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/Octree.js.html b/doc/Octree.js.html deleted file mode 100644 index fd1656e..0000000 --- a/doc/Octree.js.html +++ /dev/null @@ -1,573 +0,0 @@ - - - - - - Phaser Isometric Source: Octree.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: Octree.js

- -
-
-
/**
- * Octree Constructor
- *
- * @class Phaser.Plugin.Isometric.Octree
- * @classdesc A Octree implementation based on Phaser.QuadTree.
- * Original version at https://github.com/timohausmann/quadtree-js/
- * 
- * @constructor
- * @param {number} x - The bottom-back coordinate of the octree.
- * @param {number} y - The bottom-back coordinate of the octree.
- * @param {number} z - The bottom-back coordinate of the octree.
- * @param {number} widthX - The width X (breadth) of the octree.
- * @param {number} widthY - The width Y (depth) of the octree.
- * @param {number} height - The height (Z) of the octree.
- * @param {number} [maxObjects=10] - The maximum number of objects per node.
- * @param {number} [maxLevels=4] - The maximum number of levels to iterate to.
- * @param {number} [level=0] - Which level is this?
- */
-Phaser.Plugin.Isometric.Octree = function (x, y, z, widthX, widthY, height, maxObjects, maxLevels, level) {
-
-    /**
-     * @property {number} maxObjects - The maximum number of objects per node.
-     * @default
-     */
-    this.maxObjects = 10;
-
-    /**
-     * @property {number} maxLevels - The maximum number of levels to break down to.
-     * @default
-     */
-    this.maxLevels = 4;
-
-    /**
-     * @property {number} level - The current level.
-     */
-    this.level = 0;
-
-    /**
-     * @property {object} bounds - Object that contains the octree bounds.
-     */
-    this.bounds = {};
-
-    /**
-     * @property {array} objects - Array of octree children.
-     */
-    this.objects = [];
-
-    /**
-     * @property {array} nodes - Array of associated child nodes.
-     */
-    this.nodes = [];
-
-    /**
-     * @property {array} _empty - Internal empty array.
-     * @private
-     */
-    this._empty = [];
-
-    this.reset(x, y, z, widthX, widthY, height, maxObjects, maxLevels, level);
-
-};
-
-Phaser.Plugin.Isometric.Octree.prototype = {
-
-    /**
-     * Resets the QuadTree.
-     *
-     * @method Phaser.Plugin.Isometric.Octree#reset
-     * @param {number} x - The bottom-back coordinate of the octree.
-     * @param {number} y - The bottom-back coordinate of the octree.
-     * @param {number} z - The bottom-back coordinate of the octree.
-     * @param {number} widthX - The width X (breadth) of the octree.
-     * @param {number} widthY - The width Y (depth) of the octree.
-     * @param {number} height - The height (Z) of the octree.
-     * @param {number} [maxObjects=10] - The maximum number of objects per node.
-     * @param {number} [maxLevels=4] - The maximum number of levels to iterate to.
-     * @param {number} [level=0] - Which level is this?
-     */
-    reset: function (x, y, z, widthX, widthY, height, maxObjects, maxLevels, level) {
-
-        this.maxObjects = maxObjects || 10;
-        this.maxLevels = maxLevels || 4;
-        this.level = level || 0;
-
-        this.bounds = {
-            x: Math.round(x),
-            y: Math.round(y),
-            z: Math.round(z),
-            widthX: widthX,
-            widthY: widthY,
-            height: height,
-            subWidthX: Math.floor(widthX * 0.5),
-            subWidthY: Math.floor(widthY * 0.5),
-            subHeight: Math.floor(height * 0.5),
-            frontX: Math.round(x) + Math.floor(widthX * 0.5),
-            frontY: Math.round(y) + Math.floor(widthY * 0.5),
-            top: Math.round(z) + Math.floor(height * 0.5)
-        };
-
-        this.objects.length = 0;
-        this.nodes.length = 0;
-
-    },
-
-    /**
-     * Populates this octree with the children of the given Group. In order to be added the child must exist and have a body property.
-     *
-     * @method Phaser.Plugin.Isometric.Octree#populate
-     * @param {Phaser.Group} group - The Group to add to the octree.
-     */
-    populate: function (group) {
-
-        group.forEach(this.populateHandler, this, true);
-
-    },
-
-    /**
-     * Handler for the populate method.
-     *
-     * @method Phaser.Plugin.Isometric.Octree#populateHandler
-     * @param {Phaser.Plugin.Isometric.IsoSprite|object} sprite - The Sprite to check.
-     */
-    populateHandler: function (sprite) {
-
-        if (sprite.body && sprite.exists) {
-            this.insert(sprite.body);
-        }
-
-    },
-
-    /**
-     * Split the node into 8 subnodes
-     *
-     * @method Phaser.Plugin.Isometric.Octree#split
-     */
-    split: function () {
-
-        //  bottom four octants
-        //  -x-y-z
-        this.nodes[0] = new Phaser.Plugin.Isometric.Octree(this.bounds.x, this.bounds.y, this.bounds.z, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-        //  +x-y-z
-        this.nodes[1] = new Phaser.Plugin.Isometric.Octree(this.bounds.frontX, this.bounds.y, this.bounds.z, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-        //  -x+y-z
-        this.nodes[2] = new Phaser.Plugin.Isometric.Octree(this.bounds.x, this.bounds.frontY, this.bounds.z, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-        //  +x+y-z
-        this.nodes[3] = new Phaser.Plugin.Isometric.Octree(this.bounds.frontX, this.bounds.frontY, this.bounds.z, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-
-        //  top four octants
-        //  -x-y+z
-        this.nodes[4] = new Phaser.Plugin.Isometric.Octree(this.bounds.x, this.bounds.y, this.bounds.top, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-        //  +x-y+z
-        this.nodes[5] = new Phaser.Plugin.Isometric.Octree(this.bounds.frontX, this.bounds.y, this.bounds.top, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-        //  -x+y+z
-        this.nodes[6] = new Phaser.Plugin.Isometric.Octree(this.bounds.x, this.bounds.frontY, this.bounds.top, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-        //  +x+y+z
-        this.nodes[7] = new Phaser.Plugin.Isometric.Octree(this.bounds.frontX, this.bounds.frontY, this.bounds.top, this.bounds.subWidthX, this.bounds.subWidthY, this.bounds.subHeight, this.maxLevels, (this.level + 1));
-    },
-
-    /**
-     * Insert the object into the node. If the node exceeds the capacity, it will split and add all objects to their corresponding subnodes.
-     *
-     * @method Phaser.Plugin.Isometric.Octree#insert
-     * @param {Phaser.Plugin.Isometric.Body|Phaser.Plugin.Isometric.Cube|object} body - The Body object to insert into the octree. Can be any object so long as it exposes x, y, z, frontX, frontY and top properties.
-     */
-    insert: function (body) {
-
-        var i = 0;
-        var index;
-
-        //  if we have subnodes ...
-        if (this.nodes[0] !== null) {
-            index = this.getIndex(body);
-
-            if (index !== -1) {
-                this.nodes[index].insert(body);
-                return;
-            }
-        }
-
-        this.objects.push(body);
-
-        if (this.objects.length > this.maxObjects && this.level < this.maxLevels) {
-            //  Split if we don't already have subnodes
-            if (this.nodes[0] === null) {
-                this.split();
-            }
-
-            //  Add objects to subnodes
-            while (i < this.objects.length) {
-                index = this.getIndex(this.objects[i]);
-
-                if (index !== -1) {
-                    //  this is expensive - see what we can do about it
-                    this.nodes[index].insert(this.objects.splice(i, 1)[0]);
-                } else {
-                    i++;
-                }
-            }
-        }
-
-    },
-
-    /**
-     * Determine which node the object belongs to.
-     *
-     * @method Phaser.Plugin.Isometric.Octree#getIndex
-     * @param {Phaser.Plugin.Isometric.Cube|object} cube - The bounds in which to check.
-     * @return {number} index - Index of the subnode (0-7), or -1 if cube cannot completely fit within a subnode and is part of the parent node.
-     */
-    getIndex: function (cube) {
-
-        //  default is that cube doesn't fit, i.e. it straddles the internal octants
-        var index = -1;
-
-        if (cube.x < this.bounds.frontX && cube.frontX < this.bounds.frontX) {
-            if (cube.y < this.bounds.frontY && cube.frontY < this.bounds.frontY) {
-                if (cube.z < this.bounds.top && cube.top < this.bounds.top) {
-                    //  cube fits into -x-y-z octant
-                    index = 0;
-                } else if (cube.z > this.bounds.top) {
-                    //  cube fits into -x-y+z octant
-                    index = 4;
-                }
-            } else if (cube.y > this.bounds.frontY) {
-                if (cube.z < this.bounds.top && cube.top < this.bounds.top) {
-                    //  cube fits into -x+y-z octant
-                    index = 2;
-                } else if (cube.z > this.bounds.top) {
-                    //  cube fits into -x+y+z octant
-                    index = 6;
-                }
-            }
-        } else if (cube.x > this.bounds.frontX) {
-            if (cube.y < this.bounds.frontY && cube.frontY < this.bounds.frontY) {
-                if (cube.z < this.bounds.top && cube.top < this.bounds.top) {
-                    //  cube fits into +x-y-z octant
-                    index = 1;
-                } else if (cube.z > this.bounds.top) {
-                    //  cube fits into +x-y+z octant
-                    index = 5;
-                }
-            } else if (cube.y > this.bounds.frontY) {
-                if (cube.z < this.bounds.top && cube.top < this.bounds.top) {
-                    //  cube fits into +x+y-z octant
-                    index = 3;
-                } else if (cube.z > this.bounds.top) {
-                    //  cube fits into +x+y+z octant
-                    index = 7;
-                }
-            }
-        }
-
-
-        return index;
-
-    },
-
-    /**
-     * Return all objects that could collide with the given IsoSprite or Cube.
-     *
-     * @method Phaser.Plugin.Isometric.Octree#retrieve
-     * @param {Phaser.Plugin.Isometric.IsoSprite|Phaser.Plugin.Isometric.Cube} source - The source object to check the Octree against. Either a IsoSprite or Cube.
-     * @return {array} - Array with all detected objects.
-     */
-    retrieve: function (source) {
-
-        var returnObjects, index;
-
-        if (source instanceof Phaser.Plugin.Isometric.Cube) {
-            returnObjects = this.objects;
-
-            index = this.getIndex(source);
-        } else {
-            if (!source.body) {
-                return this._empty;
-            }
-
-            returnObjects = this.objects;
-
-            index = this.getIndex(source.body);
-        }
-
-        if (this.nodes[0]) {
-            //  If cube fits into a subnode ..
-            if (index !== -1) {
-                returnObjects = returnObjects.concat(this.nodes[index].retrieve(source));
-            } else {
-                //  If cube does not fit into a subnode, check it against all subnodes (unrolled for speed)
-                returnObjects = returnObjects.concat(this.nodes[0].retrieve(source));
-                returnObjects = returnObjects.concat(this.nodes[1].retrieve(source));
-                returnObjects = returnObjects.concat(this.nodes[2].retrieve(source));
-                returnObjects = returnObjects.concat(this.nodes[3].retrieve(source));
-                returnObjects = returnObjects.concat(this.nodes[4].retrieve(source));
-                returnObjects = returnObjects.concat(this.nodes[5].retrieve(source));
-                returnObjects = returnObjects.concat(this.nodes[6].retrieve(source));
-                returnObjects = returnObjects.concat(this.nodes[7].retrieve(source));
-            }
-        }
-
-        return returnObjects;
-
-    },
-
-    /**
-     * Clear the octree.
-     * @method Phaser.Plugin.Isometric.Octree#clear
-     */
-    clear: function () {
-
-        this.objects.length = 0;
-
-        var i = this.nodes.length;
-
-        while (i--) {
-            this.nodes[i].clear();
-            this.nodes.splice(i, 1);
-        }
-
-        this.nodes.length = 0;
-    }
-
-};
-
-Phaser.Plugin.Isometric.Octree.prototype.constructor = Phaser.Plugin.Isometric.Octree;
-
-/**
- * Visually renders an Octree to the display.
- *
- * @method Phaser.Utils.Debug#octree
- * @param {Phaser.Plugin.Isometric.Octree} octree - The octree to render.
- * @param {string} color - The color of the lines in the quadtree.
- */
-Phaser.Utils.Debug.prototype.octree = function (octree, color) {
-
-    color = color || 'rgba(255,0,0,0.3)';
-
-    this.start();
-
-    var bounds = octree.bounds,
-        i, points;
-
-    if (octree.nodes.length === 0) {
-
-        this.context.strokeStyle = color;
-
-        var cube = new Phaser.Plugin.Isometric.Cube(bounds.x, bounds.y, bounds.z, bounds.widthX, bounds.widthY, bounds.height);
-        var corners = cube.getCorners();
-
-        points = corners.slice(0, corners.length);
-        points = points.map(function (p) {
-            return this.game.iso.project(p);
-        });
-
-        this.context.moveTo(points[0].x, points[0].y);
-        this.context.beginPath();
-        this.context.strokeStyle = color;
-
-        this.context.lineTo(points[1].x, points[1].y);
-        this.context.lineTo(points[3].x, points[3].y);
-        this.context.lineTo(points[2].x, points[2].y);
-        this.context.lineTo(points[6].x, points[6].y);
-        this.context.lineTo(points[4].x, points[4].y);
-        this.context.lineTo(points[5].x, points[5].y);
-        this.context.lineTo(points[1].x, points[1].y);
-        this.context.lineTo(points[0].x, points[0].y);
-        this.context.lineTo(points[4].x, points[4].y);
-        this.context.moveTo(points[0].x, points[0].y);
-        this.context.lineTo(points[2].x, points[2].y);
-        this.context.moveTo(points[3].x, points[3].y);
-        this.context.lineTo(points[7].x, points[7].y);
-        this.context.lineTo(points[6].x, points[6].y);
-        this.context.moveTo(points[7].x, points[7].y);
-        this.context.lineTo(points[5].x, points[5].y);
-        this.context.stroke();
-        this.context.closePath();
-
-        for (i = 0; i < octree.objects.length; i++) {
-            this.body(octree.objects[i].sprite, 'rgb(0,255,0)', false);
-        }
-    } else {
-        for (i = 0; i < octree.nodes.length; i++) {
-            this.octree(octree.nodes[i]);
-        }
-    }
-
-    this.stop();
-
-};
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/Phaser.Plugin.Isometric.Arcade.html b/doc/Phaser.Plugin.Isometric.Arcade.html deleted file mode 100644 index 852fc5b..0000000 --- a/doc/Phaser.Plugin.Isometric.Arcade.html +++ /dev/null @@ -1,4178 +0,0 @@ - - - - - - Phaser Isometric Class: Arcade - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: Arcade

-
- -
-

- .Isometric. - - Arcade -

- -

IsoArcade Physics Constructor

- -
- -
-
- - - - -
-

new Arcade(game)

- - -
-
- - -
-

IsoArcade Physics constructor.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
game - - -Phaser.Game - - - -

reference to the current game instance.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - -

Members

- -
- -
-

bounds

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
bounds - - -Phaser.Plugin.Isometric.Cube - - - -

The bounds inside of which the physics world exists. Defaults to match the world bounds relatively closely given the isometric projection.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

checkCollision

- - -
-
- -
-

Set the checkCollision properties to control for which bounds collision is processed. -For example checkCollision.down = false means Bodies cannot collide with the World.bounds.bottom.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
checkCollision - - -object - - - -

An object containing allowed collision flags.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

forceXY

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
forceX - - -boolean - - - -

If true World.separate will always separate on the X and Y axes before Z. Otherwise it will check gravity totals first.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

game

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
game - - -Phaser.Game - - - -

Local reference to game.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

gravity

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
gravity - - -Phaser.Plugin.Isometric.Point3 - - - -

The World gravity setting. Defaults to x: 0, y: 0, z: 0 or no gravity.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

maxLevels

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
maxLevels - - -number - - - -

Used by the QuadTree/Octree to set the maximum number of iteration levels.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

maxObjects

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
maxObjects - - -number - - - -

Used by the QuadTree/Octree to set the maximum number of objects per quad.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

octree

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
octree - - -Phaser.Plugin.Isometric.Octree - - - -

The world Octree.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

OVERLAP_BIAS

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
OVERLAP_BIAS - - -number - - - -

A value added to the delta values during collision checks.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

quadTree

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
quadTree - - -Phaser.QuadTree - - - -

The world QuadTree.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

skipTree

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
skipTree - - -boolean - - - -

If true an Octree/QuadTree will never be used for any collision. Handy for tightly packed games. See also Body.skipTree.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

useQuadTree

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
useQuadTree - - -boolean - - - -

If true, the collision/overlap routines will use a QuadTree, which will ignore the z position of objects when determining potential collisions. This will be faster if you don't do a lot of stuff on the z-axis.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- -
- - - -

Methods

- -
- -
-

collide(object1, object2, collideCallback, processCallback, callbackContext) → {boolean}

- - -
-
- - -
-

Checks for collision between two game objects. You can perform IsoSprite vs. IsoSprite, IsoSprite vs. Group or Group vs. Group collisions. -The second parameter can be an array of objects, of differing types. -The objects are also automatically separated. If you don't require separation then use IsoArcade.overlap instead. -An optional processCallback can be provided. If given this function will be called when two sprites are found to be colliding. It is called before any separation takes place, -giving you the chance to perform additional checks. If the function returns true then the collision and separation is carried out. If it returns false it is skipped. -The collideCallback is an optional function that is only called if two sprites collide. If a processCallback has been set then it needs to return true for collideCallback to be called. -NOTE: This function is not recursive, and will not test against children of objects passed (i.e. Groups within Groups).

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
object1 - - -Phaser.Plugin.Isometric.IsoSprite -| - -Phaser.Group - - - - - - - - - - - -

The first object to check. Can be an instance of Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.

object2 - - -Phaser.Plugin.Isometric.IsoSprite -| - -Phaser.Group -| - -array - - - - - - - - - - - -

The second object or array of objects to check. Can be Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.

collideCallback - - -function - - - - - - <optional>
- - - - - -
- - null - -

An optional callback function that is called if the objects collide. The two objects will be passed to this function in the same order in which you specified them, unless you are colliding Group vs. Sprite, in which case Sprite will always be the first parameter.

processCallback - - -function - - - - - - <optional>
- - - - - -
- - null - -

A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then collision will only happen if processCallback returns true. The two objects will be passed to this function in the same order in which you specified them.

callbackContext - - -object - - - - - - <optional>
- - - - - -
- -

The context in which to run the callbacks.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

True if a collision occured otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

computeVelocity(axis, body, velocity, acceleration, drag, max) → {number}

- - -
-
- - -
-

A tween-like function that takes a starting velocity and some other factors and returns an altered velocity. -Based on a function in Flixel by @ADAMATOMIC

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
axis - - -number - - - - - - - - - - - -

0 for nothing, 1 for X-axis, 2 for Y-axis, 3 for vertical (Z-axis).

body - - -Phaser.Plugin.Isometric.Body - - - - - - - - - - - -

The Body object to be updated.

velocity - - -number - - - - - - - - - - - -

Any component of velocity (e.g. 20).

acceleration - - -number - - - - - - - - - - - -

Rate at which the velocity is changing.

drag - - -number - - - - - - - - - - - -

Really kind of a deceleration, this is how much the velocity changes if Acceleration is not set.

max - - -number - - - - - - <optional>
- - - - - -
- - 10000 - -

An absolute value cap for the velocity.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The altered Velocity value.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

distanceBetween(source, target) → {number}

- - -
-
- - -
-

Find the distance between two display objects (like Sprites).

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
source - - -any - - - -

The Display Object to test from.

target - - -any - - - -

The Display Object to test to.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The distance between the source and target objects.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

distanceToXY(displayObject, x, y) → {number}

- - -
-
- - -
-

Find the distance between a display object (like a Sprite) and the given x/y coordinates only (ignore z). -The calculation is made from the display objects x/y coordinate. This may be the top-left if its anchor hasn't been changed. -If you need to calculate from the center of a display object instead use the method distanceBetweenCenters()

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
displayObject - - -any - - - -

The Display Object to test from.

x - - -number - - - -

The x coordinate to test to.

y - - -number - - - -

The y coordinate to test to.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The distance between the object and the x/y coordinates.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

distanceToXYZ(displayObject, x, y, z) → {number}

- - -
-
- - -
-

Find the distance between a display object (like a Sprite) and the given x/y/z coordinates. -The calculation is made from the display objects x/y/z coordinate. This may be the top-left if its anchor hasn't been changed. -If you need to calculate from the center of a display object instead use the method distanceBetweenCenters()

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
displayObject - - -any - - - -

The Display Object to test from.

x - - -number - - - -

The x coordinate to test to.

y - - -number - - - -

The y coordinate to test to.

z - - -number - - - -

The y coordinate to test to

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The distance between the object and the x/y coordinates.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

enable(object, children)

- - -
-
- - -
-

This will create an IsoArcade Physics body on the given game object or array of game objects. -A game object can only have 1 physics body active at any one time, and it can't be changed until the object is destroyed.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
object - - -object -| - -array -| - -Phaser.Group - - - - - - - - - - - -

The game object to create the physics body on. Can also be an array or Group of objects, a body will be created on every child that has a body property.

children - - -boolean - - - - - - <optional>
- - - - - -
- - true - -

Should a body be created on all children of this object? If true it will recurse down the display list as far as it can go.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

enableBody(object)

- - -
-
- - -
-

Creates an IsoArcade Physics body on the given game object. -A game object can only have 1 physics body active at any one time, and it can't be changed until the body is nulled.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
object - - -object - - - -

The game object to create the physics body on. A body will only be created if this object has a null body property.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

intersects(body1, body2) → {boolean}

- - -
-
- - -
-

Check for intersection against two bodies.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
body1 - - -Phaser.Plugin.Isometric.Body - - - -

The Body object to check.

body2 - - -Phaser.Plugin.Isometric.Body - - - -

The Body object to check.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

True if they intersect, otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

overlap(object1, object2, overlapCallback, processCallback, callbackContext) → {boolean}

- - -
-
- - -
-

Checks for overlaps between two game objects. The objects can be IsoSprites or Groups. -You can perform IsoSprite vs. IsoSprite, IsoSprite vs. Group and Group vs. Group overlap checks. -Unlike collide the objects are NOT automatically separated or have any physics applied, they merely test for overlap results. -The second parameter can be an array of objects, of differing types. -NOTE: This function is not recursive, and will not test against children of objects passed (i.e. Groups within Groups).

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
object1 - - -Phaser.Plugin.Isometric.IsoSprite -| - -Phaser.Group - - - - - - - - - - - -

The first object to check. Can be an instance of Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.

object2 - - -Phaser.Plugin.Isometric.IsoSprite -| - -Phaser.Group -| - -array - - - - - - - - - - - -

The second object or array of objects to check. Can be Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.

overlapCallback - - -function - - - - - - <optional>
- - - - - -
- - null - -

An optional callback function that is called if the objects overlap. The two objects will be passed to this function in the same order in which you specified them.

processCallback - - -function - - - - - - <optional>
- - - - - -
- - null - -

A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then overlapCallback will only be called if processCallback returns true.

callbackContext - - -object - - - - - - <optional>
- - - - - -
- -

The context in which to run the callbacks.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

True if an overlap occured otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

setBounds(x, y, z, widthX, widthY, height)

- - -
-
- - -
-

Updates the size of this physics world.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

Bottom rear most corner of the world.

y - - -number - - - -

Bottom rear most corner of the world.

z - - -number - - - -

Bottom rear most corner of the world.

widthX - - -number - - - -

New X width (breadth) of the world. Can never be smaller than the Game.width.

widthY - - -number - - - -

New Y width (depth) of the world. Can never be smaller than the Game.width.

height - - -number - - - -

New height of the world. Can never be smaller than the Game.height.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

setBoundsToWorld()

- - -
-
- - -
-

Updates the size of this physics world to match the size of the game world.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

updateMotion(body)

- - -
-
- - -
-

Called automatically by a Physics body, it updates all motion related values on the Body.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
body - - -Phaser.Plugin.Isometric.Body - - - -

The Body object to be updated.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- -
- - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Phaser.Plugin.Isometric.Body.html b/doc/Phaser.Plugin.Isometric.Body.html deleted file mode 100644 index f95fc8c..0000000 --- a/doc/Phaser.Plugin.Isometric.Body.html +++ /dev/null @@ -1,9688 +0,0 @@ - - - - - - Phaser Isometric Class: Body - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: Body

-
- -
-

- .Isometric. - - Body -

- -

The Physics Body is linked to a single IsoSprite. All physics operations should be performed against the body rather than -the IsoSprite itself. For example you can set the velocity, acceleration, bounce values etc all on the Body.

- -
- -
-
- - - - -
-

new Body(sprite)

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
sprite - - -Phaser.Plugin.Isometric.IsoSprite - - - -

The IsoSprite object this physics body belongs to.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - -

Members

- -
- -
-

acceleration

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
acceleration - - -Phaser.Plugin.Isometric.Point3 - - - -

The velocity in pixels per second sq. of the Body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

allowGravity

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
allowGravity - - -boolean - - - -

Allow this Body to be influenced by gravity? Either world or local.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • true
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

allowRotation

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
allowRotation - - -boolean - - - -

Allow this Body to be rotated? (via angularVelocity, etc)

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • true
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> angle

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
angle - - -number - - - -

The angle of the Body in radians as calculated by its velocity, rather than its visual angle.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

angularAcceleration

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
angularAcceleration - - -number - - - -

The angular acceleration in pixels per second sq. of the Body.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 0
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

angularDrag

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
angularDrag - - -number - - - -

The angular drag applied to the rotation of the Body.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 0
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

angularVelocity

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
angularVelocity - - -number - - - -

The angular velocity in pixels per second sq. of the Body.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 0
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

blocked

- - -
-
- -
-

This object is populated with boolean values when the Body collides with the World bounds or a Tile. -For example if blocked.up is true then the Body cannot move up.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
blocked - - -object - - - -

An object containing on which faces this Body is blocked from moving, if any.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> bottom

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
right - - -number - - - -

The front Y value of this Body (same as Body.y + Body.widthY) - alias used for QuadTree

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

bounce

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
bounce - - -Phaser.Plugin.Isometric.Point3 - - - -

The elasticitiy of the Body when colliding. bounce.x/y/z = 1 means full rebound, bounce.x/y/z = 0.5 means 50% rebound velocity.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

center

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
center - - -Phaser.Plugin.Isometric.Point3 - - - -

The center coordinate of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

checkCollision

- - -
-
- -
-

Set the checkCollision properties to control which directions collision is processed for this Body. -For example checkCollision.up = false means it won't collide when the collision happened while moving up.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
checkCollision - - -object - - - -

An object containing allowed collision.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

collideWorldBounds

- - -
-
- -
-

A Body can be set to collide against the World bounds automatically and rebound back into the World if this is set to true. Otherwise it will leave the World.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
collideWorldBounds - - -boolean - - - -

Should the Body collide with the World bounds?

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

customSeparateX

- - -
-
- -
-

This flag allows you to disable the custom x separation that takes place by Physics.IsoArcade.separate. -Used in combination with your own collision processHandler you can create whatever type of collision response you need.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
customSeparateX - - -boolean - - - -

Use a custom separation system or the built-in one?

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • false
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

customSeparateY

- - -
-
- -
-

This flag allows you to disable the custom y separation that takes place by Physics.IsoArcade.separate. -Used in combination with your own collision processHandler you can create whatever type of collision response you need.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
customSeparateY - - -boolean - - - -

Use a custom separation system or the built-in one?

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • false
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

customSeparateZ

- - -
-
- -
-

This flag allows you to disable the custom z separation that takes place by Physics.IsoArcade.separate. -Used in combination with your own collision processHandler you can create whatever type of collision response you need.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
customSeparateZ - - -boolean - - - -

Use a custom separation system or the built-in one?

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • false
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

deltaMax

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
deltaMax - - -Phaser.Plugin.Isometric.Point3 - - - -

The Sprite position is updated based on the delta x/y values. You can set a cap on those (both +-) using deltaMax.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

drag

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
drag - - -Phaser.Plugin.Isometric.Point3 - - - -

The drag applied to the motion of the Body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

embedded

- - -
-
- -
-

If a body is overlapping with another body, but neither of them are moving (maybe they spawned on-top of each other?) this is set to true.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
embedded - - -boolean - - - -

Body embed value.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

enable

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
enable - - -boolean - - - -

A disabled body won't be checked for any form of collision or overlap or have its pre/post updates run.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • true
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

facing

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
facing - - -number - - - -

A const reference to the direction the Body is traveling or facing.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> frontX

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
right - - -number - - - -

The front X value of this Body (same as Body.x + Body.widthX)

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> frontY

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
right - - -number - - - -

The front Y value of this Body (same as Body.y + Body.widthY)

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

game

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
game - - -Phaser.Game - - - -

Local reference to game.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

gravity

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
gravity - - -Phaser.Plugin.Isometric.Point3 - - - -

A local gravity applied to this Body. If non-zero this over rides any world gravity, unless Body.allowGravity is set to false.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

halfHeight

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
halfHeight - - -number - - - -

The calculated height / 2 of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

halfWidthX

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
halfWidthX - - -number - - - -

The calculated X width / 2 of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

halfWidthY

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
halfWidthX - - -number - - - -

The calculated X width / 2 of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

height

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
height - - -number - - - -

The calculated height of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

immovable

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
immovable - - -boolean - - - -

An immovable Body will not receive any impacts from other bodies.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • false
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

mass

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
mass - - -number - - - -

The mass of the Body.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 1
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

maxAngular

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
maxAngular - - -number - - - -

The maximum angular velocity in pixels per second sq. that the Body can reach.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 1000
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

maxVelocity

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
maxVelocity - - -Phaser.Plugin.Isometric.Point3 - - - -

The maximum velocity in pixels per second sq. that the Body can reach.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

moves

- - -
-
- -
-

If you have a Body that is being moved around the world via a tween or a Group motion, but its local x/y position never -actually changes, then you should set Body.moves = false. Otherwise it will most likely fly off the screen. -If you want the physics system to move the body around, then set moves to true.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
moves - - -boolean - - - -

Set to true to allow the Physics system to move this Body, other false to move it manually.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • true
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> newVelocity

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
newVelocity - - -Phaser.Plugin.Isometric.Point3 - - - -

New velocity.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

offset

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
offset - - -Phaser.Point - - - -

The offset of the Physics Body from the IsoSprite x/y/z position.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

overlapX

- - -
-
- -
-

When this body collides with another, the amount of overlap is stored here.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
overlapX - - -number - - - -

The amount of horizontal overlap during the collision.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

overlapY

- - -
-
- -
-

When this body collides with another, the amount of overlap is stored here.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
overlapY - - -number - - - -

The amount of vertical overlap during the collision.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

overlapZ

- - -
-
- -
-

When this body collides with another, the amount of overlap is stored here.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
overlapY - - -number - - - -

The amount of vertical overlap during the collision.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

phase

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
phase - - -number - - - -

Is this Body in a preUpdate (1) or postUpdate (2) state?

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> position

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
position - - -Phaser.Plugin.Isometric.Point3 - - - -

The position of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> preRotation

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
preRotation - - -number - - - -

The previous rotation of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> prev

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
prev - - -Phaser.Point - - - -

The previous position of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - - -
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
right - - -number - - - -

The front X value of this Body (same as Body.x + Body.widthX) - alias used for QuadTree

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

rotation

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
rotation - - -number - - - -

The amount the Body is rotated.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

skipTree

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
skipTree - - -boolean - - - -

If true and you collide this IsoSprite against a Group, it will disable the collision check from using a QuadTree/Octree.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> sourceHeight

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
sourceHeight - - -number - - - -

The un-scaled original size.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> sourceWidthX

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
sourceWidthX - - -number - - - -

The un-scaled original size.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> sourceWidthY

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
sourceWidthY - - -number - - - -

The un-scaled original size.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> speed

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
speed - - -number - - - -

The speed of the Body as calculated by its velocity.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

sprite

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
sprite - - -Phaser.Plugin.Isometric.IsoSprite - - - -

Reference to the parent IsoSprite.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> top

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
bottom - - -number - - - -

The top value of this Body (same as Body.z + Body.height)

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

touching

- - -
-
- -
-

This object is populated with boolean values when the Body collides with another. -touching.up = true means the collision happened to the top of this Body for example.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
touching - - -object - - - -

An object containing touching results.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

type

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
type - - -number - - - -

The type of physics system this body belongs to.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

velocity

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
velocity - - -Phaser.Plugin.Isometric.Point3 - - - -

The velocity in pixels per second sq. of the Body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

wasTouching

- - -
-
- -
-

This object is populated with previous touching values from the bodies previous collision.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
wasTouching - - -object - - - -

An object containing previous touching results.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

widthX

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
widthX - - -number - - - -

The calculated X width (breadth) of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

widthY

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
widthY - - -number - - - -

The calculated Y width (depth) of the physics body.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

x

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The x position.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

y

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
y - - -number - - - -

The y position.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

z

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
z - - -number - - - -

The z position.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- -
- - - -

Methods

- -
- -
-

<protected> checkWorldBounds()

- - -
-
- - -
-

Internal method.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

deltaAbsX() → {number}

- - -
-
- - -
-

Returns the absolute delta x value.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The absolute delta value.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

deltaAbsY() → {number}

- - -
-
- - -
-

Returns the absolute delta y value.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The absolute delta value.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

deltaAbsZ() → {number}

- - -
-
- - -
-

Returns the absolute delta z value.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The absolute delta value.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

deltaR() → {number}

- - -
-
- - -
-

Returns the delta r value. The difference between Body.rotation now and in the previous step.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The delta value. Positive if the motion was clockwise, negative if anti-clockwise.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

deltaX() → {number}

- - -
-
- - -
-

Returns the delta x value. The difference between Body.x now and in the previous step.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The delta value. Positive if the motion was to the right, negative if to the left.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

deltaY() → {number}

- - -
-
- - -
-

Returns the delta y value. The difference between Body.y now and in the previous step.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The delta value. Positive if the motion was downwards, negative if upwards.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

deltaZ() → {number}

- - -
-
- - -
-

Returns the delta z value. The difference between Body.z now and in the previous step.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The delta value. Positive if the motion was downwards, negative if upwards.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

destroy()

- - -
-
- - -
-

Removes this body's reference to its parent sprite, freeing it up for gc.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

getCorners() → {Array.<Phaser.Plugin.Isometric.Point3>}

- - -
-
- - -
-

Returns the 8 corners that make up the body's bounding cube.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

An array of Phaser.Plugin.Isometric.Point3 values specifying each corner co-ordinate.

-
- - - -
-
- Type -
-
- -Array.<Phaser.Plugin.Isometric.Point3> - - -
-
- - - - - -
- - - -
-

hitTest(x, y, z) → {boolean}

- - -
-
- - -
-

Tests if a world point lies within this Body.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The world x coordinate to test.

y - - -number - - - -

The world y coordinate to test.

z - - -number - - - -

The world z coordinate to test.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

True if the given coordinates are inside this Body, otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

onFloor() → {boolean}

- - -
-
- - -
-

Returns true if the bottom of this Body is in contact with either the world bounds.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

True if in contact with either the world bounds.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

onWall() → {boolean}

- - -
-
- - -
-

Returns true if either side of this Body is in contact with either the world bounds.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

True if in contact with world bounds.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

<protected> postUpdate()

- - -
-
- - -
-

Internal method.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

<protected> preUpdate()

- - -
-
- - -
-

Internal method.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

render(context, body, color, filled)

- - -
-
- - -
-

Render IsoSprite Body.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
context - - -object - - - - - - - - - - - -

The context to render to.

body - - -Phaser.Plugin.Isometric.Body - - - - - - - - - - - -

The Body to render the info of.

color - - -string - - - - - - <optional>
- - - - - -
- - 'rgba(0,255,0,0.4)' - -

color of the debug info to be rendered. (format is css color string).

filled - - -boolean - - - - - - <optional>
- - - - - -
- - true - -

Render the objected as a filled (default, true) or a stroked (false)

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

renderBodyInfo(body, x, y, color)

- - -
-
- - -
-

Render IsoSprite Body Physics Data as text.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
body - - -Phaser.Plugin.Isometric.Body - - - - - - - - - - - -

The Body to render the info of.

x - - -number - - - - - - - - - - - -

X position of the debug info to be rendered.

y - - -number - - - - - - - - - - - -

Y position of the debug info to be rendered.

color - - -string - - - - - - <optional>
- - - - - -
- - 'rgb(255,255,255)' - -

color of the debug info to be rendered. (format is css color string).

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

reset(x, y, z)

- - -
-
- - -
-

Resets all Body values (velocity, acceleration, rotation, etc)

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The new x position of the Body.

y - - -number - - - -

The new y position of the Body.

z - - -number - - - -

The new z position of the Body.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

setSize(widthX, widthY, height, offsetX, offsetY, offsetY)

- - -
-
- - -
-

You can modify the size of the physics Body to be any dimension you need. -So it could be smaller or larger than the parent Sprite. You can also control the x, y and z offset, which -is the position of the Body relative to the center of the Sprite.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
widthX - - -number - - - - - - - - - -

The X width (breadth) of the Body.

widthY - - -number - - - - - - - - - -

The Y width (depth) of the Body.

height - - -number - - - - - - - - - -

The height of the Body.

offsetX - - -number - - - - - - <optional>
- - - - - -

The X offset of the Body from the Sprite position.

offsetY - - -number - - - - - - <optional>
- - - - - -

The Y offset of the Body from the Sprite position.

offsetY - - -number - - - - - - <optional>
- - - - - -

The Z offset of the Body from the Sprite position.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

<protected> updateBounds()

- - -
-
- - -
-

Internal method.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- -
- - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Phaser.Plugin.Isometric.Cube.html b/doc/Phaser.Plugin.Isometric.Cube.html deleted file mode 100644 index 4bb4c07..0000000 --- a/doc/Phaser.Plugin.Isometric.Cube.html +++ /dev/null @@ -1,5385 +0,0 @@ - - - - - - Phaser Isometric Class: Cube - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: Cube

-
- -
-

- .Isometric. - - Cube -

- -

Creates a new Cube object with the bottom-back corner specified by the x, y and z parameters, with the specified breadth (widthX), depth (widthY) and height parameters. If you call this function without parameters, a Cube with x, y, z, breadth, depth and height properties set to 0 is created.

- -
- -
-
- - - - -
-

new Cube(x, y, z, widthX, widthY, height) → {Phaser.Plugin.Isometric.Cube}

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The x coordinate of the bottom-back corner of the Cube.

y - - -number - - - -

The y coordinate of the bottom-back corner of the Cube.

z - - -number - - - -

The z coordinate of the bottom-back corner of the Cube.

widthX - - -number - - - -

The X axis width (breadth) of the Cube. Should always be either zero or a positive value.

widthY - - -number - - - -

The Y axis width (depth) of the Cube. Should always be either zero or a positive value.

height - - -number - - - -

The Z axis height of the Cube. Should always be either zero or a positive value.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Cube object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Cube - - -
-
- - - - - -
- - -
- - - - - - - - - - - - -

Members

- -
- -
-

backX

- - -
-
- -
-

The x coordinate of the back of the Cube. Changing the backX property of a Cube object has no effect on the y, z, widthY and height properties. However it does affect the widthX property, whereas changing the x value does not affect the width property.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
backX - - -number - - - -

The x coordinate of the left of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

backY

- - -
-
- -
-

The y coordinate of the back of the Cube. Changing the backY property of a Cube object has no effect on the x, z, widthX and height properties. However it does affect the widthY property, whereas changing the y value does not affect the width property.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
backY - - -number - - - -

The x coordinate of the left of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

bottom

- - -
-
- -
-

The z coordinate of the bottom of the Cube. Changing the bottom property of a Cube object has no effect on the x, y, widthX and widthY properties. -However it does affect the height property, whereas changing the z value does not affect the height property.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
bottom - - -number - - - -

The z coordinate of the bottom of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

centerX

- - -
-
- -
-

The x coordinate of the center of the Cube.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
centerX - - -number - - - -

The x coordinate of the center of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

centerY

- - -
-
- -
-

The y coordinate of the center of the Cube.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
centerY - - -number - - - -

The y coordinate of the center of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

centerZ

- - -
-
- -
-

The z coordinate of the center of the Cube.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
centerZ - - -number - - - -

The z coordinate of the center of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

empty

- - -
-
- -
-

Determines whether or not this Cube object is empty. A Cube object is empty if its widthX, widthY or height is less than or equal to 0. -If set to true then all of the Cube properties are set to 0.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
empty - - -boolean - - - -

Gets or sets the Cube's empty state.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

frontX

- - -
-
- -
-

The sum of the x and widthX properties. Changing the frontX property of a Cube object has no effect on the x, y, z, widthY and height properties, however it does affect the widthX property.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
frontX - - -number - - - -

The sum of the x and widthX properties.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

frontY

- - -
-
- -
-

The sum of the y and widthY properties. Changing the frontY property of a Cube object has no effect on the x, y, z, widthX and height properties, however it does affect the widthY property.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
frontY - - -number - - - -

The sum of the y and widthY properties.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> halfHeight

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
halfHeight - - -number - - - -

Half of the height of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> halfWidthX

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
halfWidthX - - -number - - - -

Half of the widthX of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> halfWidthY

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
halfWidthY - - -number - - - -

Half of the widthY of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

height

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
height - - -number - - - -

The Z axis height of the Cube. This value should never be set to a negative.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

randomX

- - -
-
- -
-

A random value between the frontX and backX values (inclusive) of the Cube.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
randomX - - -number - - - -

A random value between the frontX and backX values (inclusive) of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

randomY

- - -
-
- -
-

A random value between the frontY and backY values (inclusive) of the Cube.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
randomY - - -number - - - -

A random value between the frontY and backY values (inclusive) of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

randomZ

- - -
-
- -
-

A random value between the bottom and top values (inclusive) of the Cube.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
randomZ - - -number - - - -

A random value between the bottom and top values (inclusive) of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

top

- - -
-
- -
-

The sum of the z and height properties. Changing the top property of a Cube object has no effect on the x, y, z, widthX and widthY properties, but does change the height property.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
top - - -number - - - -

The sum of the z and height properties.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> volume

- - -
-
- -
-

The volume of the Cube derived from widthX widthY height.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
volume - - -number - - - -

The volume of the Cube derived from widthX widthY height.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

widthX

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
widthX - - -number - - - -

The X axis width (breadth) of the Cube. This value should never be set to a negative.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

widthY

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
widthY - - -number - - - -

The Y axis width (depth) of the Cube. This value should never be set to a negative.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

x

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The x coordinate of the bottom-back corner of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

y

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
y - - -number - - - -

The y coordinate of the bottom-back corner of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

z

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
z - - -number - - - -

The z coordinate of the bottom-back corner of the Cube.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- -
- - - -

Methods

- -
- -
-

<static> clone(a, output) → {Phaser.Plugin.Isometric.Cube}

- - -
-
- - -
-

Returns a new Cube object with the same values for the x, y, z, widthX, widthY, and height properties as the original Cube object.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
a - - -Phaser.Plugin.Isometric.Cube - - - - - - - - - -

The Cube object.

output - - -Phaser.Plugin.Isometric.Cube - - - - - - <optional>
- - - - - -

Optional Cube object. If given the values will be set into the object, otherwise a brand new Cube object will be created and returned.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Cube - - -
-
- - - - - -
- - - -
-

<static> contains(a, x, y, z) → {boolean}

- - -
-
- - -
-

Determines whether the specified coordinates are contained within the region defined by this Cube object.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
a - - -Phaser.Plugin.Isometric.Cube - - - -

The Cube object.

x - - -number - - - -

The x coordinate of the point to test.

y - - -number - - - -

The y coordinate of the point to test.

z - - -number - - - -

The z coordinate of the point to test.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A value of true if the Cube object contains the specified point; otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

<static> containsCube(a, b) → {boolean}

- - -
-
- - -
-

Determines whether the first Cube object is fully contained within the second Cube object. -A Cube object is said to contain another if the second Cube object falls entirely within the boundaries of the first.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
a - - -Phaser.Plugin.Isometric.Cube - - - -

The first Cube object.

b - - -Phaser.Plugin.Isometric.Cube - - - -

The second Cube object.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A value of true if the Cube object contains the specified point; otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

<static> containsPoint3(a, point3) → {boolean}

- - -
-
- - -
-

Determines whether the specified point is contained within the cubic region defined by this Cube object. This method is similar to the Cube.contains() method, except that it takes a Point3 object as a parameter.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
a - - -Phaser.Plugin.Isometric.Cube - - - -

The Cube object.

point3 - - -Phaser.Plugin.Isometric.Point3 - - - -

The Point3 object being checked. Can be Point3 or any object with .x, .y and .z values.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A value of true if the Cube object contains the specified point; otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

<static> intersects(a, b) → {boolean}

- - -
-
- - -
-

Determines whether the two Cubes intersect with each other. -This method checks the x, y, z, widthX, widthY, and height properties of the Cubes.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
a - - -Phaser.Plugin.Isometric.Cube - - - -

The first Cube object.

b - - -Phaser.Plugin.Isometric.Cube - - - -

The second Cube object.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A value of true if the specified object intersects with this Cube object; otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

<static> size(a, output) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

The size of the Cube object, expressed as a Point3 object with the values of the widthX, widthY and height properties.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
a - - -Phaser.Plugin.Isometric.Cube - - - - - - - - - -

The Cube object.

output - - -Phaser.Plugin.Isometric.Point3 - - - - - - <optional>
- - - - - -

Optional Point3 object. If given the values will be set into the object, otherwise a brand new Point3 object will be created and returned.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The size of the Cube object

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

clone(output) → {Phaser.Plugin.Isometric.Cube}

- - -
-
- - -
-

Returns a new Cube object with the same values for the x, y, z, widthX, widthY and height properties as the original Cube object.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
output - - -Phaser.Plugin.Isometric.Cube - - - - - - <optional>
- - - - - -

Optional Cube object. If given the values will be set into the object, otherwise a brand new Cube object will be created and returned.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Cube - - -
-
- - - - - -
- - - -
-

copyFrom(source) → {Phaser.Plugin.Isometric.Cube}

- - -
-
- - -
-

Copies the x, y, z, widthX, widthY and height properties from any given object to this Cube.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
source - - -any - - - -

The object to copy from.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Cube object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Cube - - -
-
- - - - - -
- - - -
-

copyTo(dest) → {Phaser.Plugin.Isometric.Cube}

- - -
-
- - -
-

Copies the x, y, z, widthX, widthY and height properties from this Cube to any given object.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
dest - - -any - - - -

The object to copy to.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Cube object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Cube - - -
-
- - - - - -
- - - -
-

getCorners() → {Array.<Phaser.Plugin.Isometric.Point3>}

- - -
-
- - -
-

Updates and returns an Array of eight Point3 objects containing the corners of this Cube.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The corners of this Cube expressed as an Array of eight Point3 objects.

-
- - - -
-
- Type -
-
- -Array.<Phaser.Plugin.Isometric.Point3> - - -
-
- - - - - -
- - - -
-

intersects(b) → {boolean}

- - -
-
- - -
-

Determines whether the two Cubes intersect with each other. -This method checks the x, y, z, widthX, widthY, and height properties of the Cubes.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
b - - -Phaser.Plugin.Isometric.Cube - - - -

The second Cube object.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A value of true if the specified object intersects with this Cube object; otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

setTo(x, y, z, widthX, widthY, height) → {Phaser.Plugin.Isometric.Cube}

- - -
-
- - -
-

Sets the members of Cube to the specified values.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The x coordinate of the bottom-back corner of the Cube.

y - - -number - - - -

The y coordinate of the bottom-back corner of the Cube.

z - - -number - - - -

The z coordinate of the bottom-back corner of the Cube.

widthX - - -number - - - -

The X axis width (breadth) of the Cube. This value should never be set to a negative.

widthY - - -number - - - -

The Y axis width (depth) of the Cube. This value should never be set to a negative.

height - - -number - - - -

The Z axis height of the Cube. This value should never be set to a negative.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Cube object

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Cube - - -
-
- - - - - -
- - - -
-

size(output) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

The size of the Cube object, expressed as a Point3 object with the values of the widthX, widthY and height properties.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
output - - -Phaser.Plugin.Isometric.Point3 - - - - - - <optional>
- - - - - -

Optional Point3 object. If given the values will be set into the object, otherwise a brand new Point3 object will be created and returned.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The size of the Cube object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

toString() → {string}

- - -
-
- - -
-

Returns a string representation of this object.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A string representation of the instance.

-
- - - -
-
- Type -
-
- -string - - -
-
- - - - - -
- -
- - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Phaser.Plugin.Isometric.IsoSprite.html b/doc/Phaser.Plugin.Isometric.IsoSprite.html deleted file mode 100644 index 7ce3fde..0000000 --- a/doc/Phaser.Plugin.Isometric.IsoSprite.html +++ /dev/null @@ -1,1351 +0,0 @@ - - - - - - Phaser Isometric Class: IsoSprite - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: IsoSprite

-
- -
-

- .Isometric. - - IsoSprite -

- -

Create a new IsoSprite object. IsoSprites are extended versions of standard Sprites that are suitable for axonometric positioning.

-

IsoSprites are simply Sprites that have three new position properties (isoX, isoY and isoZ) and ask the instance of Phaser.Plugin.Isometric.Projector what their position should be in a 2D scene whenever these properties are changed. -The IsoSprites retain their 2D position property to prevent any problems and allow you to interact with them as you would a normal Sprite. The upside of this simplicity is that things should behave predictably for those already used to Phaser.

- -
- -
-
- - - - -
-

new IsoSprite(game, x, y, z, key, frame)

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
game - - -Phaser.Game - - - -

A reference to the currently running game.

x - - -number - - - -

The x coordinate (in 3D space) to position the IsoSprite at.

y - - -number - - - -

The y coordinate (in 3D space) to position the IsoSprite at.

z - - -number - - - -

The z coordinate (in 3D space) to position the IsoSprite at.

key - - -string -| - -Phaser.RenderTexture -| - -Phaser.BitmapData -| - -PIXI.Texture - - - -

This is the image or texture used by the IsoSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture.

frame - - -string -| - -number - - - -

If this IsoSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - -
- - -

Extends

- -
    -
  • Phaser.Sprite
  • -
- - - - - - - - - - - -

Members

- -
- -
-

<readonly> depth

- - -
-
- -
-

The non-unit distance of the IsoSprite from the 'front' of the scene. Used to correctly depth sort a group of IsoSprites.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
depth - - -number - - - -

A calculated value used for depth sorting.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> isoPosition

- - -
-
- -
-

A Point3 object representing the axonometric position of the IsoSprite.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
isoPosition - - -Point3 - - - -

The axonometric position of the IsoSprite on the z axis.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

isoX

- - -
-
- -
-

The axonometric position of the IsoSprite on the x axis. Increasing the x coordinate will move the object down and to the right on the screen.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
isoX - - -number - - - -

The axonometric position of the IsoSprite on the x axis.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

isoY

- - -
-
- -
-

The axonometric position of the IsoSprite on the y axis. Increasing the y coordinate will move the object down and to the left on the screen.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
isoY - - -number - - - -

The axonometric position of the IsoSprite on the y axis.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

isoZ

- - -
-
- -
-

The axonometric position of the IsoSprite on the z axis. Increasing the z coordinate will move the object directly upwards on the screen.

-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
isoZ - - -number - - - -

The axonometric position of the IsoSprite on the z axis.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

snap

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
snap - - -number - - - -

Snap this IsoSprite's position to the specified value; handy for keeping pixel art snapped to whole pixels.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 0
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

<readonly> type

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
type - - -number - - - -

The const type of this object.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- -
- - - -

Methods

- -
- -
-

postUpdate()

- - -
-
- - -
-

Internal function called by the World postUpdate cycle.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- -
- - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Phaser.Plugin.Isometric.Octree.html b/doc/Phaser.Plugin.Isometric.Octree.html deleted file mode 100644 index 0d80abf..0000000 --- a/doc/Phaser.Plugin.Isometric.Octree.html +++ /dev/null @@ -1,2604 +0,0 @@ - - - - - - Phaser Isometric Class: Octree - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: Octree

-
- -
-

- .Isometric. - - Octree -

- -

A Octree implementation based on Phaser.QuadTree. -Original version at https://github.com/timohausmann/quadtree-js/

- -
- -
-
- - - - -
-

new Octree(x, y, z, widthX, widthY, height, maxObjects, maxLevels, level)

- - -
-
- - -
-

Octree Constructor

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
x - - -number - - - - - - - - - - - -

The bottom-back coordinate of the octree.

y - - -number - - - - - - - - - - - -

The bottom-back coordinate of the octree.

z - - -number - - - - - - - - - - - -

The bottom-back coordinate of the octree.

widthX - - -number - - - - - - - - - - - -

The width X (breadth) of the octree.

widthY - - -number - - - - - - - - - - - -

The width Y (depth) of the octree.

height - - -number - - - - - - - - - - - -

The height (Z) of the octree.

maxObjects - - -number - - - - - - <optional>
- - - - - -
- - 10 - -

The maximum number of objects per node.

maxLevels - - -number - - - - - - <optional>
- - - - - -
- - 4 - -

The maximum number of levels to iterate to.

level - - -number - - - - - - <optional>
- - - - - -
- - 0 - -

Which level is this?

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - -

Members

- -
- -
-

bounds

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
bounds - - -object - - - -

Object that contains the octree bounds.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

level

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
level - - -number - - - -

The current level.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

maxLevels

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
maxLevels - - -number - - - -

The maximum number of levels to break down to.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 4
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

maxObjects

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
maxObjects - - -number - - - -

The maximum number of objects per node.

-
- - - - - - - - - - - - - - - - - - -
Default Value:
-
-
    -
  • 10
  • -
-
- - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

nodes

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
nodes - - -array - - - -

Array of associated child nodes.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

objects

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
objects - - -array - - - -

Array of octree children.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- -
- - - -

Methods

- -
- -
-

clear()

- - -
-
- - -
-

Clear the octree.

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

getIndex(cube) → {number}

- - -
-
- - -
-

Determine which node the object belongs to.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
cube - - -Phaser.Plugin.Isometric.Cube -| - -object - - - -

The bounds in which to check.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

index - Index of the subnode (0-7), or -1 if cube cannot completely fit within a subnode and is part of the parent node.

-
- - - -
-
- Type -
-
- -number - - -
-
- - - - - -
- - - -
-

insert(body)

- - -
-
- - -
-

Insert the object into the node. If the node exceeds the capacity, it will split and add all objects to their corresponding subnodes.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
body - - -Phaser.Plugin.Isometric.Body -| - -Phaser.Plugin.Isometric.Cube -| - -object - - - -

The Body object to insert into the octree. Can be any object so long as it exposes x, y, z, frontX, frontY and top properties.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

populate(group)

- - -
-
- - -
-

Populates this octree with the children of the given Group. In order to be added the child must exist and have a body property.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
group - - -Phaser.Group - - - -

The Group to add to the octree.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

populateHandler(sprite)

- - -
-
- - -
-

Handler for the populate method.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
sprite - - -Phaser.Plugin.Isometric.IsoSprite -| - -object - - - -

The Sprite to check.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

reset(x, y, z, widthX, widthY, height, maxObjects, maxLevels, level)

- - -
-
- - -
-

Resets the QuadTree.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
x - - -number - - - - - - - - - - - -

The bottom-back coordinate of the octree.

y - - -number - - - - - - - - - - - -

The bottom-back coordinate of the octree.

z - - -number - - - - - - - - - - - -

The bottom-back coordinate of the octree.

widthX - - -number - - - - - - - - - - - -

The width X (breadth) of the octree.

widthY - - -number - - - - - - - - - - - -

The width Y (depth) of the octree.

height - - -number - - - - - - - - - - - -

The height (Z) of the octree.

maxObjects - - -number - - - - - - <optional>
- - - - - -
- - 10 - -

The maximum number of objects per node.

maxLevels - - -number - - - - - - <optional>
- - - - - -
- - 4 - -

The maximum number of levels to iterate to.

level - - -number - - - - - - <optional>
- - - - - -
- - 0 - -

Which level is this?

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - - -
-

retrieve(source) → {array}

- - -
-
- - -
-

Return all objects that could collide with the given IsoSprite or Cube.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
source - - -Phaser.Plugin.Isometric.IsoSprite -| - -Phaser.Plugin.Isometric.Cube - - - -

The source object to check the Octree against. Either a IsoSprite or Cube.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-
    -
  • Array with all detected objects.
  • -
-
- - - -
-
- Type -
-
- -array - - -
-
- - - - - -
- - - -
-

split()

- - -
-
- - -
-

Split the node into 8 subnodes

-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- -
- - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Phaser.Plugin.Isometric.Point3.html b/doc/Phaser.Plugin.Isometric.Point3.html deleted file mode 100644 index 6469d28..0000000 --- a/doc/Phaser.Plugin.Isometric.Point3.html +++ /dev/null @@ -1,3515 +0,0 @@ - - - - - - Phaser Isometric Class: Point3 - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: Point3

-
- -
-

- .Isometric. - - Point3 -

- -

The Point3 object represents a location in a three-dimensional coordinate system, -where x and y represent the horizontal axes and z represents the vertical axis. -The following code creates a point at (0,0,0): -var myPoint = new Phaser.Plugin.Isometric.Point3();

-

Creates a new Point3 object. If you pass no parameters a Point3 is created set to (0, 0, 0).

- -
- -
-
- - - - -
-

new Point3(x, y, z)

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
x - - -number - - - - - - <optional>
- - - - - -
- - 0 - -

The horizontal X position of this Point.

y - - -number - - - - - - <optional>
- - - - - -
- - 0 - -

The horizontal Y position of this Point.

z - - -number - - - - - - <optional>
- - - - - -
- - 0 - -

The vertical position of this Point.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - -

Members

- -
- -
-

x

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The x value of the point.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

y

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
y - - -number - - - -

The y value of the point.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

z

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
z - - -number - - - -

The z value of the point.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- -
- - - -

Methods

- -
- -
-

add(x, y, z) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Adds the given x, y and z values to this Point3.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The value to add to Point3.x.

y - - -number - - - -

The value to add to Point3.y.

z - - -number - - - -

The value to add to Point3.z.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Point3 object. Useful for chaining method calls.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

copyFrom(source) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Copies the x, y and z properties from any given object to this Point3.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
source - - -any - - - -

The object to copy from.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Point3 object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

copyTo(dest) → {Object}

- - -
-
- - -
-

Copies the x, y and z properties from this Point3 to any given object.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
dest - - -any - - - -

The object to copy to.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The dest object.

-
- - - -
-
- Type -
-
- -Object - - -
-
- - - - - -
- - - -
-

divide(x, y, z) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Divides Point3.x, Point3.y and Point3.z by the given x, y and z values.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The value to divide Point3.x by.

y - - -number - - - -

The value to divide Point3.y by.

z - - -number - - - -

The value to divide Point3.z by.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Point3 object. Useful for chaining method calls.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

equals(a) → {boolean}

- - -
-
- - -
-

Determines whether the given object's x/y/z values are equal to this Point3 object.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
a - - -Phaser.Plugin.Isometric.Point3 -| - -any - - - -

The object to compare with this Point3.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A value of true if the x and y points are equal, otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

multiply(x, y, z) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Multiplies Point3.x, Point3.y and Point3.z by the given x and y values. Sometimes known as Scale.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The value to multiply Point3.x by.

y - - -number - - - -

The value to multiply Point3.y by.

z - - -number - - - -

The value to multiply Point3.z by.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Point3 object. Useful for chaining method calls.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

set(x, y, z) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Sets the x, y and z values of this Point3 object to the given values. -If you omit the y and z value then the x value will be applied to all three, for example: -Point3.set(2) is the same as Point3.set(2, 2, 2) -If however you set both x and y, but no z, the z value will be set to 0.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
x - - -number - - - - - - - - - -

The x value of this point.

y - - -number - - - - - - <optional>
- - - - - -

The y value of this point. If not given the x value will be used in its place.

z - - -number - - - - - - <optional>
- - - - - -

The z value of this point. If not given and the y value is also not given, the x value will be used in its place.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Point3 object. Useful for chaining method calls.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

setTo(x, y, z) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Sets the x, y and z values of this Point3 object to the given values. -If you omit the y and z value then the x value will be applied to all three, for example: -Point3.setTo(2) is the same as Point3.setTo(2, 2, 2) -If however you set both x and y, but no z, the z value will be set to 0.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
x - - -number - - - - - - - - - -

The x value of this point.

y - - -number - - - - - - <optional>
- - - - - -

The y value of this point. If not given the x value will be used in its place.

z - - -number - - - - - - <optional>
- - - - - -

The z value of this point. If not given and the y value is also not given, the x value will be used in its place.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Point3 object. Useful for chaining method calls.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

subtract(x, y, z) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Subtracts the given x, y and z values from this Point3.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
x - - -number - - - -

The value to subtract from Point3.x.

y - - -number - - - -

The value to subtract from Point3.y.

z - - -number - - - -

The value to subtract from Point3.z.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Point3 object. Useful for chaining method calls.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

<static> add(a, b, out) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Adds the coordinates of two points together to create a new point.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
a - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The first Point3 object.

b - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The second Point3 object.

out - - -Phaser.Plugin.Isometric.Point3 - - - - - - <optional>
- - - - - -

Optional Point3 to store the value in, if not supplied a new Point3 object will be created.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The new Point3 object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

<static> divide(a, b, out) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Divides the coordinates of two points to create a new point.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
a - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The first Point3 object.

b - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The second Point3 object.

out - - -Phaser.Plugin.Isometric.Point3 - - - - - - <optional>
- - - - - -

Optional Point3 to store the value in, if not supplied a new Point3 object3 will be created.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The new Point3 object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

<static> equals(a, b) → {boolean}

- - -
-
- - -
-

Determines whether the two given Point3 objects are equal. They are considered equal if they have the same x, y and z values.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
a - - -Phaser.Plugin.Isometric.Point3 - - - -

The first Point3 object.

b - - -Phaser.Plugin.Isometric.Point3 - - - -

The second Point3 object.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

A value of true if the Points3 are equal, otherwise false.

-
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - - -
- - - -
-

<static> multiply(a, b, out) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Multiplies the coordinates of two points to create a new point.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
a - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The first Point3 object.

b - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The second Point3 object.

out - - -Phaser.Plugin.Isometric.Point3 - - - - - - <optional>
- - - - - -

Optional Point3 to store the value in, if not supplied a new Point3 object will be created.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The new Point3 object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- - - -
-

<static> subtract(a, b, out) → {Phaser.Plugin.Isometric.Point3}

- - -
-
- - -
-

Subtracts the coordinates of two points to create a new point.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
a - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The first Point3 object.

b - - -Phaser.Plugin.Isometric.Point3 - - - - - - - - - -

The second Point3 object.

out - - -Phaser.Plugin.Isometric.Point3 - - - - - - <optional>
- - - - - -

Optional Point3 to store the value in, if not supplied a new Point3 object will be created.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The new Point3 object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Point3 - - -
-
- - - - - -
- -
- - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Phaser.Plugin.Isometric.Projector.html b/doc/Phaser.Plugin.Isometric.Projector.html deleted file mode 100644 index d16ad65..0000000 --- a/doc/Phaser.Plugin.Isometric.Projector.html +++ /dev/null @@ -1,1065 +0,0 @@ - - - - - - Phaser Isometric Class: Projector - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: Projector

-
- -
-

- .Isometric. - - Projector -

- -

Creates a new Isometric Projector object, which has helpers for projecting x, y and z coordinates into axonometric x and y equivalents.

- -
- -
-
- - - - -
-

new Projector(game, projectionRatio) → {Phaser.Plugin.Isometric.Cube}

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
game - - -Phaser.Game - - - -

The current game object.

projectionRatio - - -number - - - -

The ratio of the axonometric projection.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

This Cube object.

-
- - - -
-
- Type -
-
- -Phaser.Plugin.Isometric.Cube - - -
-
- - - - - -
- - -
- - - - - - - - - - - - -

Members

- -
- -
-

anchor

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
anchor - - -Phaser.Point - - - -

The x and y offset multipliers as a ratio of the game world size.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

game

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
game - - -Phaser.Game - - - -

The current game object.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- - - -
-

projectionRatio

- - -
-
- - - - - -
- - -
Properties:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
projectionRatio - - -number - - - -

The ratio of the axonometric projection.

-
- - - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - -
- -
- - - -

Methods

- -
- -
-

project(point3, out) → {Phaser.Point}

- - -
-
- - -
-

Use axonometric projection to transform a 3D Point3 coordinate to a 2D Point coordinate. If given the coordinates will be set into the object, otherwise a brand new Point object will be created and returned.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
point3 - - -Phaser.Plugin.Isometric.Point3 - - - -

The Point3 to project from.

out - - -Phaser.Point - - - -

The Point to project to.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The transformed Point.

-
- - - -
-
- Type -
-
- -Phaser.Point - - -
-
- - - - - -
- - - -
-

projectXY(point3, out) → {Phaser.Point}

- - -
-
- - -
-

Use axonometric projection to transform a 3D Point3 coordinate to a 2D Point coordinate, ignoring the z-axis. If given the coordinates will be set into the object, otherwise a brand new Point object will be created and returned.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
point3 - - -Phaser.Plugin.Isometric.Point3 - - - -

The Point3 to project from.

out - - -Phaser.Point - - - -

The Point to project to.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - -
Returns:
- - -
-

The transformed Point.

-
- - - -
-
- Type -
-
- -Phaser.Point - - -
-
- - - - - -
- -
- - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Phaser.Plugin.Isometric.html b/doc/Phaser.Plugin.Isometric.html deleted file mode 100644 index 77ea6d7..0000000 --- a/doc/Phaser.Plugin.Isometric.html +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - Phaser Isometric Class: Isometric - - - - - - - - - -
- - -
- - -
- -
- - - -

Class: Isometric

-
- -
-

- Isometric -

- -

Isometric is a comprehensive axonometric plugin for Phaser which provides an API for handling axonometric projection of assets in 3D space to the screen. -The goal has been to mimic as closely as possible the existing APIs provided by Phaser for standard orthogonal 2D projection, but add a third dimension. -Also included is an Arcade-based 3D AABB physics engine, which again is closely equivalent in functionality and its API.

- -
- -
-
- - - - -
-

new Isometric(game)

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
game - - -Phaser.Game - - - -

The current game instance.

- - - - -
- - - - - - - - - - - - - - - - - - - - - -
Source:
-
- -
- - - - - - - -
- - - - - - - - - - - - - -
- - -
- - - - - - - - -

Classes

- -
-
Arcade
-
- -
Body
-
- -
Cube
-
- -
IsoSprite
-
- -
Octree
-
- -
Point3
-
- -
Projector
-
-
- - - - - - - - - - - -
- -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/Point3.js.html b/doc/Point3.js.html deleted file mode 100644 index aa93921..0000000 --- a/doc/Point3.js.html +++ /dev/null @@ -1,484 +0,0 @@ - - - - - - Phaser Isometric Source: Point3.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: Point3.js

- -
-
-
/**
- * @class Phaser.Plugin.Isometric.Point3
- * 
- * @classdesc
- * The Point3 object represents a location in a three-dimensional coordinate system,
- * where x and y represent the horizontal axes and z represents the vertical axis.
- * The following code creates a point at (0,0,0):
- * `var myPoint = new Phaser.Plugin.Isometric.Point3();`
- * 
- * Creates a new Point3 object. If you pass no parameters a Point3 is created set to (0, 0, 0).
- *
- * @constructor
- * @param {number} [x=0] - The horizontal X position of this Point.
- * @param {number} [y=0] - The horizontal Y position of this Point.
- * @param {number} [z=0] - The vertical position of this Point.
- */
-Phaser.Plugin.Isometric.Point3 = function (x, y, z) {
-    x = x || 0;
-    y = y || 0;
-    z = z || 0;
-
-    /**
-     * @property {number} x - The x value of the point.
-     */
-    this.x = x;
-
-    /**
-     * @property {number} y - The y value of the point.
-     */
-    this.y = y;
-
-    /**
-     * @property {number} z - The z value of the point.
-     */
-    this.z = z;
-};
-
-Phaser.Plugin.Isometric.Point3.prototype = {
-    /**
-     * Copies the x, y and z properties from any given object to this Point3.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#copyFrom
-     * @param {any} source - The object to copy from.
-     * @return {Phaser.Plugin.Isometric.Point3} This Point3 object.
-     */
-    copyFrom: function (source) {
-
-        return this.setTo(source.x, source.y, source.z);
-
-    },
-
-    /**
-     * Copies the x, y and z properties from this Point3 to any given object.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#copyTo
-     * @param {any} dest - The object to copy to.
-     * @return {Object} The dest object.
-     */
-    copyTo: function (dest) {
-
-        dest.x = this.x;
-        dest.y = this.y;
-        dest.z = this.z;
-
-        return dest;
-
-    },
-
-    /**
-     * Determines whether the given object's x/y/z values are equal to this Point3 object.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#equals
-     * @param {Phaser.Plugin.Isometric.Point3|any} a - The object to compare with this Point3.
-     * @return {boolean} A value of true if the x and y points are equal, otherwise false.
-     */
-    equals: function (a) {
-
-        return (a.x === this.x && a.y === this.y && a.z === this.z);
-
-    },
-
-    /**
-     * Sets the x, y and z values of this Point3 object to the given values.
-     * If you omit the y and z value then the x value will be applied to all three, for example:
-     * `Point3.set(2)` is the same as `Point3.set(2, 2, 2)`
-     * If however you set both x and y, but no z, the z value will be set to 0.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#set
-     * @param {number} x - The x value of this point.
-     * @param {number} [y] - The y value of this point. If not given the x value will be used in its place.
-     * @param {number} [z] - The z value of this point. If not given and the y value is also not given, the x value will be used in its place.
-     * @return {Phaser.Plugin.Isometric.Point3} This Point3 object. Useful for chaining method calls.
-     */
-    set: function (x, y, z) {
-        this.x = x || 0;
-        this.y = y || ((y !== 0) ? this.x : 0);
-        this.z = z || ((typeof y === "undefined") ? this.x : 0);
-
-        return this;
-    },
-
-    /**
-     * Sets the x, y and z values of this Point3 object to the given values.
-     * If you omit the y and z value then the x value will be applied to all three, for example:
-     * `Point3.setTo(2)` is the same as `Point3.setTo(2, 2, 2)`
-     * If however you set both x and y, but no z, the z value will be set to 0.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#setTo
-     * @param {number} x - The x value of this point.
-     * @param {number} [y] - The y value of this point. If not given the x value will be used in its place.
-     * @param {number} [z] - The z value of this point. If not given and the y value is also not given, the x value will be used in its place.
-     * @return {Phaser.Plugin.Isometric.Point3} This Point3 object. Useful for chaining method calls.
-     */
-    setTo: function (x, y, z) {
-        return this.set(x, y, z);
-    },
-
-    /**
-     * Adds the given x, y and z values to this Point3.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#add
-     * @param {number} x - The value to add to Point3.x.
-     * @param {number} y - The value to add to Point3.y.
-     * @param {number} z - The value to add to Point3.z.
-     * @return {Phaser.Plugin.Isometric.Point3} This Point3 object. Useful for chaining method calls.
-     */
-    add: function (x, y) {
-
-        this.x += x || 0;
-        this.y += y || 0;
-        return this;
-
-    },
-
-    /**
-     * Subtracts the given x, y and z values from this Point3.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#subtract
-     * @param {number} x - The value to subtract from Point3.x.
-     * @param {number} y - The value to subtract from Point3.y.
-     * @param {number} z - The value to subtract from Point3.z.
-     * @return {Phaser.Plugin.Isometric.Point3} This Point3 object. Useful for chaining method calls.
-     */
-    subtract: function (x, y, z) {
-
-        this.x -= x || 0;
-        this.y -= y || 0;
-        this.z -= z || 0;
-
-        return this;
-
-    },
-
-    /**
-     * Multiplies Point3.x, Point3.y and Point3.z by the given x and y values. Sometimes known as `Scale`.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#multiply
-     * @param {number} x - The value to multiply Point3.x by.
-     * @param {number} y - The value to multiply Point3.y by.
-     * @param {number} z - The value to multiply Point3.z by.
-     * @return {Phaser.Plugin.Isometric.Point3} This Point3 object. Useful for chaining method calls.
-     */
-    multiply: function (x, y, z) {
-
-        this.x *= x || 1;
-        this.y *= y || 1;
-        this.z *= z || 1;
-
-        return this;
-
-    },
-
-    /**
-     * Divides Point3.x, Point3.y and Point3.z by the given x, y and z values.
-     *
-     * @method Phaser.Plugin.Isometric.Point3#divide
-     * @param {number} x - The value to divide Point3.x by.
-     * @param {number} y - The value to divide Point3.y by.
-     * @param {number} z - The value to divide Point3.z by.
-     * @return {Phaser.Plugin.Isometric.Point3} This Point3 object. Useful for chaining method calls.
-     */
-    divide: function (x, y, z) {
-
-        this.x /= x || 1;
-        this.y /= y || 1;
-        this.z /= z || 1;
-
-        return this;
-
-    }
-};
-
-Phaser.Plugin.Isometric.Point3.prototype.constructor = Phaser.Plugin.Isometric.Point3;
-
-/**
- * Adds the coordinates of two points together to create a new point.
- *
- * @method Phaser.Plugin.Isometric.Point3.add
- * @param {Phaser.Plugin.Isometric.Point3} a - The first Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} b - The second Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} [out] - Optional Point3 to store the value in, if not supplied a new Point3 object will be created.
- * @return {Phaser.Plugin.Isometric.Point3} The new Point3 object.
- */
-Phaser.Plugin.Isometric.Point3.add = function (a, b, out) {
-
-    if (typeof out === "undefined") {
-        out = new Phaser.Plugin.Isometric.Point3();
-    }
-
-    out.x = a.x + b.x;
-    out.y = a.y + b.y;
-    out.z = a.z + b.z;
-
-    return out;
-
-};
-
-/**
- * Subtracts the coordinates of two points to create a new point.
- *
- * @method Phaser.Plugin.Isometric.Point3.subtract
- * @param {Phaser.Plugin.Isometric.Point3} a - The first Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} b - The second Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} [out] - Optional Point3 to store the value in, if not supplied a new Point3 object will be created.
- * @return {Phaser.Plugin.Isometric.Point3} The new Point3 object.
- */
-Phaser.Plugin.Isometric.Point3.subtract = function (a, b, out) {
-
-    if (typeof out === "undefined") {
-        out = new Phaser.Plugin.Isometric.Point3();
-    }
-
-    out.x = a.x - b.x;
-    out.y = a.y - b.y;
-    out.z = a.z - b.z;
-
-    return out;
-
-};
-
-/**
- * Multiplies the coordinates of two points to create a new point.
- *
- * @method Phaser.Plugin.Isometric.Point3.multiply
- * @param {Phaser.Plugin.Isometric.Point3} a - The first Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} b - The second Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} [out] - Optional Point3 to store the value in, if not supplied a new Point3 object will be created.
- * @return {Phaser.Plugin.Isometric.Point3} The new Point3 object.
- */
-Phaser.Plugin.Isometric.Point3.multiply = function (a, b, out) {
-
-    if (typeof out === "undefined") {
-        out = new Phaser.Plugin.Isometric.Point3();
-    }
-
-    out.x = a.x * b.x;
-    out.y = a.y * b.y;
-    out.z = a.z * b.z;
-
-    return out;
-
-};
-
-/**
- * Divides the coordinates of two points to create a new point.
- *
- * @method Phaser.Plugin.Isometric.Point3.divide
- * @param {Phaser.Plugin.Isometric.Point3} a - The first Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} b - The second Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} [out] - Optional Point3 to store the value in, if not supplied a new Point3 object3 will be created.
- * @return {Phaser.Plugin.Isometric.Point3} The new Point3 object.
- */
-Phaser.Plugin.Isometric.Point3.divide = function (a, b, out) {
-
-    if (typeof out === "undefined") {
-        out = new Phaser.Plugin.Isometric.Point3();
-    }
-
-    out.x = a.x / b.x;
-    out.y = a.y / b.y;
-    out.z = a.z / b.z;
-
-    return out;
-
-};
-
-/**
- * Determines whether the two given Point3 objects are equal. They are considered equal if they have the same x, y and z values.
- *
- * @method Phaser.Plugin.Isometric.Point3.equals
- * @param {Phaser.Plugin.Isometric.Point3} a - The first Point3 object.
- * @param {Phaser.Plugin.Isometric.Point3} b - The second Point3 object.
- * @return {boolean} A value of true if the Points3 are equal, otherwise false.
- */
-Phaser.Plugin.Isometric.Point3.equals = function (a, b) {
-
-    return (a.x === b.x && a.y === b.y && a.z === b.z);
-
-};
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/Projector.js.html b/doc/Projector.js.html deleted file mode 100644 index f84319a..0000000 --- a/doc/Projector.js.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - Phaser Isometric Source: Projector.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: Projector.js

- -
-
-
/**
- * @class Phaser.Plugin.Isometric.Projector
- * 
- * @classdesc
- * Creates a new Isometric Projector object, which has helpers for projecting x, y and z coordinates into axonometric x and y equivalents.
- * 
- * @constructor
- * @param {Phaser.Game} game - The current game object.
- * @param {number} projectionRatio - The ratio of the axonometric projection.
- * @return {Phaser.Plugin.Isometric.Cube} This Cube object.
- */
-Phaser.Plugin.Isometric.Projector = function (game, projectionRatio) {
-
-    /**
-     * @property {Phaser.Game} game - The current game object.
-     */
-    this.game = game;
-
-    /**
-     * @property {number} projectionRatio - The ratio of the axonometric projection.
-     * @default
-     */
-    this.projectionRatio = projectionRatio || Phaser.Plugin.Isometric.CLASSIC;
-
-    /**
-     * @property {Phaser.Point} anchor - The x and y offset multipliers as a ratio of the game world size.
-     * @default
-     */
-    this.anchor = new Phaser.Point(0.5, 0);
-};
-
-Phaser.Plugin.Isometric.Projector.prototype = {
-
-    /**
-     * Use axonometric projection to transform a 3D Point3 coordinate to a 2D Point coordinate. If given the coordinates will be set into the object, otherwise a brand new Point object will be created and returned.
-     * @method Phaser.Plugin.Isometric.Projector#project
-     * @param {Phaser.Plugin.Isometric.Point3} point3 - The Point3 to project from.
-     * @param {Phaser.Point} out - The Point to project to.
-     * @return {Phaser.Point} The transformed Point.
-     */
-    project: function (point3, out) {
-        if (typeof out === "undefined") {
-            out = new Phaser.Point();
-        }
-
-        out.x = point3.x - point3.y;
-        out.y = ((point3.x + point3.y) * this.projectionRatio) - point3.z;
-
-
-        out.x += this.game.world.width * this.anchor.x;
-        out.y += this.game.world.height * this.anchor.y;
-
-        return out;
-    },
-
-    /**
-     * Use axonometric projection to transform a 3D Point3 coordinate to a 2D Point coordinate, ignoring the z-axis. If given the coordinates will be set into the object, otherwise a brand new Point object will be created and returned.
-     * @method Phaser.Plugin.Isometric.Projector#projectXY
-     * @param {Phaser.Plugin.Isometric.Point3} point3 - The Point3 to project from.
-     * @param {Phaser.Point} out - The Point to project to.
-     * @return {Phaser.Point} The transformed Point.
-     */
-    projectXY: function (point3, out) {
-        if (typeof out === "undefined") {
-            out = new Phaser.Point();
-        }
-
-        out.x = point3.x - point3.y;
-        out.y = ((point3.x + point3.y) * this.projectionRatio);
-
-
-        out.x += this.game.world.width * this.anchor.x;
-        out.y += this.game.world.height * this.anchor.y;
-
-        return out;
-    }
-
-};
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/World.js.html b/doc/World.js.html deleted file mode 100644 index f5d730d..0000000 --- a/doc/World.js.html +++ /dev/null @@ -1,1262 +0,0 @@ - - - - - - Phaser Isometric Source: physics/World.js - - - - - - - - - -
- - -
- - -
- -
- - - -

Source: physics/World.js

- -
-
-
/**
- * IsoArcade Physics constructor.
- *
- * @class Phaser.Plugin.Isometric.Arcade
- * @classdesc IsoArcade Physics Constructor
- * @constructor
- * @param {Phaser.Game} game reference to the current game instance.
- */
-Phaser.Plugin.Isometric.Arcade = function (game) {
-
-    /**
-     * @property {Phaser.Game} game - Local reference to game.
-     */
-    this.game = game;
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Point3} gravity - The World gravity setting. Defaults to x: 0, y: 0, z: 0 or no gravity.
-     */
-    this.gravity = new Phaser.Plugin.Isometric.Point3();
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Cube} bounds - The bounds inside of which the physics world exists. Defaults to match the world bounds relatively closely given the isometric projection.
-     */
-    this.bounds = new Phaser.Plugin.Isometric.Cube(0, 0, 0, game.world.width * 0.5, game.world.width * 0.5, game.world.height * 0.25);
-
-    /**
-     * Set the checkCollision properties to control for which bounds collision is processed.
-     * For example checkCollision.down = false means Bodies cannot collide with the World.bounds.bottom.
-     * @property {object} checkCollision - An object containing allowed collision flags.
-     */
-    this.checkCollision = {
-        up: true,
-        down: true,
-        frontX: true,
-        frontY: true,
-        backX: true,
-        backY: true
-    };
-
-    /**
-     * @property {number} maxObjects - Used by the QuadTree/Octree to set the maximum number of objects per quad.
-     */
-    this.maxObjects = 10;
-
-    /**
-     * @property {number} maxLevels - Used by the QuadTree/Octree to set the maximum number of iteration levels.
-     */
-    this.maxLevels = 4;
-
-    /**
-     * @property {number} OVERLAP_BIAS - A value added to the delta values during collision checks.
-     */
-    this.OVERLAP_BIAS = 4;
-
-    /**
-     * @property {boolean} forceX - If true World.separate will always separate on the X and Y axes before Z. Otherwise it will check gravity totals first.
-     */
-    this.forceXY = false;
-
-    /**
-     * @property {boolean} skipTree - If true an Octree/QuadTree will never be used for any collision. Handy for tightly packed games. See also Body.skipTree.
-     */
-    this.skipTree = false;
-
-    /**
-     * @property {boolean} useQuadTree - If true, the collision/overlap routines will use a QuadTree, which will ignore the z position of objects when determining potential collisions. This will be faster if you don't do a lot of stuff on the z-axis.
-     */
-    this.useQuadTree = false;
-
-    /**
-     * @property {Phaser.QuadTree} quadTree - The world QuadTree.
-     */
-    this.quadTree = new Phaser.QuadTree(this.bounds.x, this.bounds.y, this.bounds.widthX, this.bounds.widthY, this.maxObjects, this.maxLevels);
-
-    /**
-     * @property {Phaser.Plugin.Isometric.Octree} octree - The world Octree.
-     */
-    this.octree = new Phaser.Plugin.Isometric.Octree(this.bounds.x, this.bounds.y, this.bounds.z, this.bounds.widthX, this.bounds.widthY, this.bounds.height, this.maxObjects, this.maxLevels);
-
-    //  Avoid gc spikes by caching these values for re-use
-
-    /**
-     * @property {number} _overlap - Internal cache var.
-     * @private
-     */
-    this._overlap = 0;
-
-    /**
-     * @property {number} _maxOverlap - Internal cache var.
-     * @private
-     */
-    this._maxOverlap = 0;
-
-    /**
-     * @property {number} _velocity1 - Internal cache var.
-     * @private
-     */
-    this._velocity1 = 0;
-
-    /**
-     * @property {number} _velocity2 - Internal cache var.
-     * @private
-     */
-    this._velocity2 = 0;
-
-    /**
-     * @property {number} _newVelocity1 - Internal cache var.
-     * @private
-     */
-    this._newVelocity1 = 0;
-
-    /**
-     * @property {number} _newVelocity2 - Internal cache var.
-     * @private
-     */
-    this._newVelocity2 = 0;
-
-    /**
-     * @property {number} _average - Internal cache var.
-     * @private
-     */
-    this._average = 0;
-
-    /**
-     * @property {Array} _mapData - Internal cache var.
-     * @private
-     */
-    this._mapData = [];
-
-    /**
-     * @property {boolean} _result - Internal cache var.
-     * @private
-     */
-    this._result = false;
-
-    /**
-     * @property {number} _total - Internal cache var.
-     * @private
-     */
-    this._total = 0;
-
-    /**
-     * @property {number} _angle - Internal cache var.
-     * @private
-     */
-    this._angle = 0;
-
-    /**
-     * @property {number} _dx - Internal cache var.
-     * @private
-     */
-    this._dx = 0;
-
-    /**
-     * @property {number} _dy - Internal cache var.
-     * @private
-     */
-    this._dy = 0;
-
-    /**
-     * @property {number} _dz - Internal cache var.
-     * @private
-     */
-    this._dz = 0;
-
-};
-
-Phaser.Plugin.Isometric.Arcade.prototype.constructor = Phaser.Plugin.Isometric.Arcade;
-
-Phaser.Plugin.Isometric.Arcade.prototype = {
-
-    /**
-     * Updates the size of this physics world.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#setBounds
-     * @param {number} x - Bottom rear most corner of the world.
-     * @param {number} y - Bottom rear most corner of the world.
-     * @param {number} z - Bottom rear most corner of the world.
-     * @param {number} widthX - New X width (breadth) of the world. Can never be smaller than the Game.width.
-     * @param {number} widthY - New Y width (depth) of the world. Can never be smaller than the Game.width.
-     * @param {number} height - New height of the world. Can never be smaller than the Game.height.
-     */
-    setBounds: function (x, y, z, widthX, widthY, height) {
-
-        this.bounds.setTo(x, y, z, widthX, widthY, height);
-
-    },
-
-    /**
-     * Updates the size of this physics world to match the size of the game world.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#setBoundsToWorld
-     */
-    setBoundsToWorld: function () {
-
-        this.bounds.setTo(0, 0, 0, this.game.world.width * 0.5, this.game.world.width * 0.5, this.game.world.height * 0.5);
-
-    },
-
-    /**
-     * This will create an IsoArcade Physics body on the given game object or array of game objects.
-     * A game object can only have 1 physics body active at any one time, and it can't be changed until the object is destroyed.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#enable
-     * @param {object|array|Phaser.Group} object - The game object to create the physics body on. Can also be an array or Group of objects, a body will be created on every child that has a `body` property.
-     * @param {boolean} [children=true] - Should a body be created on all children of this object? If true it will recurse down the display list as far as it can go.
-     */
-    enable: function (object, children) {
-
-        if (typeof children === 'undefined') {
-            children = true;
-        }
-
-        var i = 1;
-
-        if (Array.isArray(object)) {
-            i = object.length;
-
-            while (i--) {
-                if (object[i] instanceof Phaser.Group) {
-                    //  If it's a Group then we do it on the children regardless
-                    this.enable(object[i].children, children);
-                } else {
-                    this.enableBody(object[i]);
-
-                    if (children && object[i].hasOwnProperty('children') && object[i].children.length > 0) {
-                        this.enable(object[i], true);
-                    }
-                }
-            }
-        } else {
-            if (object instanceof Phaser.Group) {
-                //  If it's a Group then we do it on the children regardless
-                this.enable(object.children, children);
-            } else {
-                this.enableBody(object);
-
-                if (children && object.hasOwnProperty('children') && object.children.length > 0) {
-                    this.enable(object.children, true);
-                }
-            }
-        }
-
-    },
-
-    /**
-     * Creates an IsoArcade Physics body on the given game object.
-     * A game object can only have 1 physics body active at any one time, and it can't be changed until the body is nulled.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#enableBody
-     * @param {object} object - The game object to create the physics body on. A body will only be created if this object has a null `body` property.
-     */
-    enableBody: function (object) {
-
-        if (object.hasOwnProperty('body') && object.body === null) {
-            object.body = new Phaser.Plugin.Isometric.Body(object);
-        }
-
-    },
-
-    /**
-     * Called automatically by a Physics body, it updates all motion related values on the Body.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#updateMotion
-     * @param {Phaser.Plugin.Isometric.Body} body - The Body object to be updated.
-     */
-    updateMotion: function (body) {
-
-        this._velocityDelta = this.computeVelocity(0, body, body.angularVelocity, body.angularAcceleration, body.angularDrag, body.maxAngular) - body.angularVelocity;
-        body.angularVelocity += this._velocityDelta;
-        body.rotation += (body.angularVelocity * this.game.time.physicsElapsed);
-
-        body.velocity.x = this.computeVelocity(1, body, body.velocity.x, body.acceleration.x, body.drag.x, body.maxVelocity.x);
-        body.velocity.y = this.computeVelocity(2, body, body.velocity.y, body.acceleration.y, body.drag.y, body.maxVelocity.y);
-        body.velocity.z = this.computeVelocity(3, body, body.velocity.z, body.acceleration.z, body.drag.z, body.maxVelocity.z);
-
-    },
-
-    /**
-     * A tween-like function that takes a starting velocity and some other factors and returns an altered velocity.
-     * Based on a function in Flixel by @ADAMATOMIC
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#computeVelocity
-     * @param {number} axis - 0 for nothing, 1 for X-axis, 2 for Y-axis, 3 for vertical (Z-axis).
-     * @param {Phaser.Plugin.Isometric.Body} body - The Body object to be updated.
-     * @param {number} velocity - Any component of velocity (e.g. 20).
-     * @param {number} acceleration - Rate at which the velocity is changing.
-     * @param {number} drag - Really kind of a deceleration, this is how much the velocity changes if Acceleration is not set.
-     * @param {number} [max=10000] - An absolute value cap for the velocity.
-     * @return {number} The altered Velocity value.
-     */
-    computeVelocity: function (axis, body, velocity, acceleration, drag, max) {
-
-        max = max || 10000;
-
-        if (axis === 1 && body.allowGravity) {
-            velocity += (this.gravity.x + body.gravity.x) * this.game.time.physicsElapsed;
-        } else if (axis === 2 && body.allowGravity) {
-            velocity += (this.gravity.y + body.gravity.y) * this.game.time.physicsElapsed;
-        } else if (axis === 3 && body.allowGravity) {
-            velocity += (this.gravity.z + body.gravity.z) * this.game.time.physicsElapsed;
-        }
-
-        if (acceleration) {
-            velocity += acceleration * this.game.time.physicsElapsed;
-        } else if (drag) {
-            this._drag = drag * this.game.time.physicsElapsed;
-
-            if (velocity - this._drag > 0) {
-                velocity -= this._drag;
-            } else if (velocity + this._drag < 0) {
-                velocity += this._drag;
-            } else {
-                velocity = 0;
-            }
-        }
-
-        if (velocity > max) {
-            velocity = max;
-        } else if (velocity < -max) {
-            velocity = -max;
-        }
-
-        return velocity;
-
-    },
-
-    /**
-     * Checks for overlaps between two game objects. The objects can be IsoSprites or Groups.
-     * You can perform IsoSprite vs. IsoSprite, IsoSprite vs. Group and Group vs. Group overlap checks.
-     * Unlike collide the objects are NOT automatically separated or have any physics applied, they merely test for overlap results.
-     * The second parameter can be an array of objects, of differing types.
-     * NOTE: This function is not recursive, and will not test against children of objects passed (i.e. Groups within Groups).
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#overlap
-     * @param {Phaser.Plugin.Isometric.IsoSprite|Phaser.Group} object1 - The first object to check. Can be an instance of Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.
-     * @param {Phaser.Plugin.Isometric.IsoSprite|Phaser.Group|array} object2 - The second object or array of objects to check. Can be Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.
-     * @param {function} [overlapCallback=null] - An optional callback function that is called if the objects overlap. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {function} [processCallback=null] - A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then overlapCallback will only be called if processCallback returns true.
-     * @param {object} [callbackContext] - The context in which to run the callbacks.
-     * @return {boolean} True if an overlap occured otherwise false.
-     */
-    overlap: function (object1, object2, overlapCallback, processCallback, callbackContext) {
-
-        overlapCallback = overlapCallback || null;
-        processCallback = processCallback || null;
-        callbackContext = callbackContext || overlapCallback;
-
-        this._result = false;
-        this._total = 0;
-
-        if (Array.isArray(object2)) {
-            for (var i = 0, len = object2.length; i < len; i++) {
-                this.collideHandler(object1, object2[i], overlapCallback, processCallback, callbackContext, true);
-            }
-        } else {
-            this.collideHandler(object1, object2, overlapCallback, processCallback, callbackContext, true);
-        }
-
-        return (this._total > 0);
-
-    },
-
-    /**
-     * Checks for collision between two game objects. You can perform IsoSprite vs. IsoSprite, IsoSprite vs. Group or Group vs. Group collisions.
-     * The second parameter can be an array of objects, of differing types.
-     * The objects are also automatically separated. If you don't require separation then use IsoArcade.overlap instead.
-     * An optional processCallback can be provided. If given this function will be called when two sprites are found to be colliding. It is called before any separation takes place,
-     * giving you the chance to perform additional checks. If the function returns true then the collision and separation is carried out. If it returns false it is skipped.
-     * The collideCallback is an optional function that is only called if two sprites collide. If a processCallback has been set then it needs to return true for collideCallback to be called.
-     * NOTE: This function is not recursive, and will not test against children of objects passed (i.e. Groups within Groups).
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#collide
-     * @param {Phaser.Plugin.Isometric.IsoSprite|Phaser.Group} object1 - The first object to check. Can be an instance of Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.
-     * @param {Phaser.Plugin.Isometric.IsoSprite|Phaser.Group|array} object2 - The second object or array of objects to check. Can be Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.
-     * @param {function} [collideCallback=null] - An optional callback function that is called if the objects collide. The two objects will be passed to this function in the same order in which you specified them, unless you are colliding Group vs. Sprite, in which case Sprite will always be the first parameter.
-     * @param {function} [processCallback=null] - A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then collision will only happen if processCallback returns true. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {object} [callbackContext] - The context in which to run the callbacks.
-     * @return {boolean} True if a collision occured otherwise false.
-     */
-    collide: function (object1, object2, collideCallback, processCallback, callbackContext) {
-
-        collideCallback = collideCallback || null;
-        processCallback = processCallback || null;
-        callbackContext = callbackContext || collideCallback;
-
-        this._result = false;
-        this._total = 0;
-
-        this.collideHandler(object1, object2, collideCallback, processCallback, callbackContext, false);
-
-        return (this._total > 0);
-
-    },
-
-    /**
-     * Internal collision handler.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#collideHandler
-     * @private
-     * @param {Phaser.Plugin.Isometric.IsoSprite|Phaser.Group} object1 - The first object to check. Can be an instance of Phaser.Plugin.Isometric.IsoSprite or Phaser.Group.
-     * @param {Phaser.Plugin.Isometric.IsoSprite|Phaser.Group} object2 - The second object to check. Can be an instance of Phaser.Plugin.Isometric.IsoSprite or Phaser.Group. Can also be an array of objects to check.
-     * @param {function} collideCallback - An optional callback function that is called if the objects collide. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {function} processCallback - A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then collision will only happen if processCallback returns true. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {object} callbackContext - The context in which to run the callbacks.
-     * @param {boolean} overlapOnly - Just run an overlap or a full collision.
-     */
-    collideHandler: function (object1, object2, collideCallback, processCallback, callbackContext, overlapOnly) {
-
-        //  Only collide valid objects
-        if (!object2 && (object1.type === Phaser.GROUP || Array.isArray(object1))) {
-            this.collideGroupVsSelf(object1, collideCallback, processCallback, callbackContext, overlapOnly);
-            return;
-        }
-
-        if (object1 && object2 && (object1.exists || object1.length) && (object2.exists || object2.length)) {
-            //  ISOSPRITES
-            if (object1.type === Phaser.Plugin.Isometric.ISOSPRITE) {
-                if (object2.type === Phaser.Plugin.Isometric.ISOSPRITE) {
-                    this.collideSpriteVsSprite(object1, object2, collideCallback, processCallback, callbackContext, overlapOnly);
-                } else if (object2.type === Phaser.GROUP || Array.isArray(object2)) {
-                    this.collideSpriteVsGroup(object1, object2, collideCallback, processCallback, callbackContext, overlapOnly);
-                }
-            }
-                //  GROUPS
-            else if (object1.type === Phaser.GROUP || Array.isArray(object1)) {
-                if (object2.type === Phaser.Plugin.Isometric.ISOSPRITE) {
-                    this.collideSpriteVsGroup(object2, object1, collideCallback, processCallback, callbackContext, overlapOnly);
-                } else if (object2.type === Phaser.GROUP || Array.isArray(object2)) {
-                    this.collideGroupVsGroup(object1, object2, collideCallback, processCallback, callbackContext, overlapOnly);
-                }
-            }
-        }
-
-    },
-
-    /**
-     * An internal function. Use Phaser.Plugin.Isometric.Arcade.collide instead.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#collideSpriteVsSprite
-     * @private
-     * @param {Phaser.Plugin.Isometric.IsoSprite} sprite1 - The first sprite to check.
-     * @param {Phaser.Plugin.Isometric.IsoSprite} sprite2 - The second sprite to check.
-     * @param {function} collideCallback - An optional callback function that is called if the objects collide. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {function} processCallback - A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then collision will only happen if processCallback returns true. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {object} callbackContext - The context in which to run the callbacks.
-     * @param {boolean} overlapOnly - Just run an overlap or a full collision.
-     * @return {boolean} True if there was a collision, otherwise false.
-     */
-    collideSpriteVsSprite: function (sprite1, sprite2, collideCallback, processCallback, callbackContext, overlapOnly) {
-
-        if (!sprite1.body || !sprite2.body) {
-            return false;
-        }
-
-        if (this.separate(sprite1.body, sprite2.body, processCallback, callbackContext, overlapOnly)) {
-            if (collideCallback) {
-                collideCallback.call(callbackContext, sprite1, sprite2);
-            }
-
-            this._total++;
-        }
-
-        return true;
-
-    },
-
-    /**
-     * An internal function. Use Phaser.Plugin.Isometric.Arcade.collide instead.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#collideSpriteVsGroup
-     * @private
-     * @param {Phaser.Plugin.Isometric.IsoSprite} sprite - The sprite to check.
-     * @param {Phaser.Group} group - The Group to check.
-     * @param {function} collideCallback - An optional callback function that is called if the objects collide. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {function} processCallback - A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then collision will only happen if processCallback returns true. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {object} callbackContext - The context in which to run the callbacks.
-     * @param {boolean} overlapOnly - Just run an overlap or a full collision.
-     */
-    collideSpriteVsGroup: function (sprite, group, collideCallback, processCallback, callbackContext, overlapOnly) {
-        var i, len;
-
-        if (group.length === 0 || !sprite.body) {
-            return;
-        }
-
-        if (sprite.body.skipTree || this.skipTree) {
-            for (i = 0, len = group.children.length; i < len; i++) {
-                if (group.children[i] && group.children[i].exists) {
-                    this.collideSpriteVsSprite(sprite, group.children[i], collideCallback, processCallback, callbackContext, overlapOnly);
-                }
-            }
-        } else {
-            if (this.useQuadTree) {
-                //  What is the sprite colliding with in the quadTree?
-                this.quadTree.clear();
-
-                this.quadTree.reset(this.bounds.x, this.bounds.y, this.bounds.widthX, this.bounds.widthY, this.maxObjects, this.maxLevels);
-
-                this.quadTree.populate(group);
-
-                this._potentials = this.quadTree.retrieve(sprite);
-            } else {
-                //  What is the sprite colliding with in the octree?
-                this.octree.clear();
-
-                this.octree.reset(this.bounds.x, this.bounds.y, this.bounds.z, this.bounds.widthX, this.bounds.widthY, this.bounds.height, this.maxObjects, this.maxLevels);
-
-                this.octree.populate(group);
-
-                this._potentials = this.octree.retrieve(sprite);
-            }
-
-            for (i = 0, len = this._potentials.length; i < len; i++) {
-                //  We have our potential suspects, are they in this group?
-                if (this.separate(sprite.body, this._potentials[i], processCallback, callbackContext, overlapOnly)) {
-                    if (collideCallback) {
-                        collideCallback.call(callbackContext, sprite, this._potentials[i].sprite);
-                    }
-
-                    this._total++;
-                }
-            }
-        }
-    },
-
-    /**
-     * An internal function. Use Phaser.Plugin.Isometric.Arcade.collide instead.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#collideGroupVsSelf
-     * @private
-     * @param {Phaser.Group} group - The Group to check.
-     * @param {function} collideCallback - An optional callback function that is called if the objects collide. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {function} processCallback - A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then collision will only happen if processCallback returns true. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {object} callbackContext - The context in which to run the callbacks.
-     * @param {boolean} overlapOnly - Just run an overlap or a full collision.
-     * @return {boolean} True if there was a collision, otherwise false.
-     */
-    collideGroupVsSelf: function (group, collideCallback, processCallback, callbackContext, overlapOnly) {
-
-        if (group.length === 0) {
-            return;
-        }
-
-        var len = group.children.length;
-
-        for (var i = 0; i < len; i++) {
-            for (var j = i + 1; j <= len; j++) {
-                if (group.children[i] && group.children[j] && group.children[i].exists && group.children[j].exists) {
-                    this.collideSpriteVsSprite(group.children[i], group.children[j], collideCallback, processCallback, callbackContext, overlapOnly);
-                }
-            }
-        }
-
-    },
-
-    /**
-     * An internal function. Use Phaser.Plugin.Isometric.Arcade.collide instead.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#collideGroupVsGroup
-     * @private
-     * @param {Phaser.Group} group1 - The first Group to check.
-     * @param {Phaser.Group} group2 - The second Group to check.
-     * @param {function} collideCallback - An optional callback function that is called if the objects collide. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {function} processCallback - A callback function that lets you perform additional checks against the two objects if they overlap. If this is set then collision will only happen if processCallback returns true. The two objects will be passed to this function in the same order in which you specified them.
-     * @param {object} callbackContext - The context in which to run the callbacks.
-     * @param {boolean} overlapOnly - Just run an overlap or a full collision.
-     */
-    collideGroupVsGroup: function (group1, group2, collideCallback, processCallback, callbackContext, overlapOnly) {
-
-        if (group1.length === 0 || group2.length === 0) {
-            return;
-        }
-
-        for (var i = 0, len = group1.children.length; i < len; i++) {
-            if (group1.children[i].exists) {
-                this.collideSpriteVsGroup(group1.children[i], group2, collideCallback, processCallback, callbackContext, overlapOnly);
-            }
-        }
-
-    },
-
-    /**
-     * The core separation function to separate two physics bodies.
-     *
-     * @private
-     * @method Phaser.Plugin.Isometric.Arcade#separate
-     * @param {Phaser.Plugin.Isometric.Body} body1 - The first Body object to separate.
-     * @param {Phaser.Plugin.Isometric.Body} body2 - The second Body object to separate.
-     * @param {function} [processCallback=null] - A callback function that lets you perform additional checks against the two objects if they overlap. If this function is set then the sprites will only be collided if it returns true.
-     * @param {object} [callbackContext] - The context in which to run the process callback.
-     * @param {boolean} overlapOnly - Just run an overlap or a full collision.
-     * @return {boolean} Returns true if the bodies collided, otherwise false.
-     */
-    separate: function (body1, body2, processCallback, callbackContext, overlapOnly) {
-
-        if (!body1.enable || !body2.enable || !this.intersects(body1, body2)) {
-            return false;
-        }
-
-        //  They overlap. Is there a custom process callback? If it returns true then we can carry on, otherwise we should abort.
-        if (processCallback && processCallback.call(callbackContext, body1.sprite, body2.sprite) === false) {
-            return false;
-        }
-
-        if (overlapOnly) {
-            //  We already know they intersect from the check above, and we don't need separation, so ...
-            return true;
-        }
-
-        //  Do we separate on X and Y first?
-        //  If we weren't having to carry around so much legacy baggage with us, we could do this properly. But alas ...
-        if (this.forceXY || Math.abs(this.gravity.z + body1.gravity.z) < Math.abs(this.gravity.x + body1.gravity.x) || Math.abs(this.gravity.z + body1.gravity.z) < Math.abs(this.gravity.y + body1.gravity.y)) {
-            this._result = (this.separateX(body1, body2, overlapOnly) || this.separateY(body1, body2, overlapOnly) || this.separateZ(body1, body2, overlapOnly));
-        } else {
-            this._result = (this.separateZ(body1, body2, overlapOnly) || this.separateX(body1, body2, overlapOnly) || this.separateY(body1, body2, overlapOnly));
-        }
-
-        return this._result;
-
-    },
-
-    /**
-     * Check for intersection against two bodies.
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#intersects
-     * @param {Phaser.Plugin.Isometric.Body} body1 - The Body object to check.
-     * @param {Phaser.Plugin.Isometric.Body} body2 - The Body object to check.
-     * @return {boolean} True if they intersect, otherwise false.
-     */
-    intersects: function (body1, body2) {
-
-        if (body1.frontX <= body2.x) {
-            return false;
-        }
-
-        if (body1.frontY <= body2.y) {
-            return false;
-        }
-
-        if (body1.x >= body2.frontX) {
-            return false;
-        }
-
-        if (body1.y >= body2.frontY) {
-            return false;
-        }
-
-        if (body1.top <= body2.z) {
-            return false;
-        }
-
-        if (body1.z >= body2.top) {
-            return false;
-        }
-
-        return true;
-
-    },
-
-    /**
-     * The core separation function to separate two physics bodies on the x axis.
-     *
-     * @private
-     * @method Phaser.Plugin.Isometric.Arcade#separateX
-     * @param {Phaser.Plugin.Isometric.Body} body1 - The Body object to separate.
-     * @param {Phaser.Plugin.Isometric.Body} body2 - The Body object to separate.
-     * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place.
-     * @return {boolean} Returns true if the bodies were separated, otherwise false.
-     */
-    separateX: function (body1, body2, overlapOnly) {
-
-        //  Can't separate two immovable bodies
-        if (body1.immovable && body2.immovable) {
-            return false;
-        }
-
-        this._overlap = 0;
-
-        //  Check if the hulls actually overlap
-        if (this.intersects(body1, body2)) {
-            this._maxOverlap = body1.deltaAbsX() + body2.deltaAbsX() + this.OVERLAP_BIAS;
-
-            if (body1.deltaX() === 0 && body2.deltaX() === 0) {
-                //  They overlap but neither of them are moving
-                body1.embedded = true;
-                body2.embedded = true;
-            } else if (body1.deltaX() > body2.deltaX()) {
-                //  Body1 is moving forward and/or Body2 is moving back
-                this._overlap = body1.frontX - body2.x;
-
-                if ((this._overlap > this._maxOverlap) || body1.checkCollision.frontX === false || body2.checkCollision.backX === false) {
-                    this._overlap = 0;
-                } else {
-                    body1.touching.none = false;
-                    body1.touching.frontX = true;
-                    body2.touching.none = false;
-                    body2.touching.backX = true;
-                }
-            } else if (body1.deltaX() < body2.deltaX()) {
-                //  Body1 is moving back and/or Body2 is moving forward
-                this._overlap = body1.x - body2.widthX - body2.x;
-
-                if ((-this._overlap > this._maxOverlap) || body1.checkCollision.backX === false || body2.checkCollision.frontX === false) {
-                    this._overlap = 0;
-                } else {
-                    body1.touching.none = false;
-                    body1.touching.backX = true;
-                    body2.touching.none = false;
-                    body2.touching.frontX = true;
-                }
-            }
-
-            //  Then adjust their positions and velocities accordingly (if there was any overlap)
-            if (this._overlap !== 0) {
-                body1.overlapX = this._overlap;
-                body2.overlapX = this._overlap;
-
-                if (overlapOnly || body1.customSeparateX || body2.customSeparateX) {
-                    return true;
-                }
-
-                this._velocity1 = body1.velocity.x;
-                this._velocity2 = body2.velocity.x;
-
-                if (!body1.immovable && !body2.immovable) {
-                    this._overlap *= 0.5;
-
-                    body1.x = body1.x - this._overlap;
-                    body2.x += this._overlap;
-
-                    this._newVelocity1 = Math.sqrt((this._velocity2 * this._velocity2 * body2.mass) / body1.mass) * ((this._velocity2 > 0) ? 1 : -1);
-                    this._newVelocity2 = Math.sqrt((this._velocity1 * this._velocity1 * body1.mass) / body2.mass) * ((this._velocity1 > 0) ? 1 : -1);
-                    this._average = (this._newVelocity1 + this._newVelocity2) * 0.5;
-                    this._newVelocity1 -= this._average;
-                    this._newVelocity2 -= this._average;
-
-                    body1.velocity.x = this._average + this._newVelocity1 * body1.bounce.x;
-                    body2.velocity.x = this._average + this._newVelocity2 * body2.bounce.x;
-                } else if (!body1.immovable) {
-                    body1.x = body1.x - this._overlap;
-                    body1.velocity.x = this._velocity2 - this._velocity1 * body1.bounce.x;
-                } else if (!body2.immovable) {
-                    body2.x += this._overlap;
-                    body2.velocity.x = this._velocity1 - this._velocity2 * body2.bounce.x;
-                }
-
-                return true;
-            }
-        }
-
-        return false;
-
-    },
-
-    /**
-     * The core separation function to separate two physics bodies on the x axis.
-     *
-     * @private
-     * @method Phaser.Plugin.Isometric.Arcade#separateY
-     * @param {Phaser.Plugin.Isometric.Body} body1 - The Body object to separate.
-     * @param {Phaser.Plugin.Isometric.Body} body2 - The Body object to separate.
-     * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place.
-     * @return {boolean} Returns true if the bodies were separated, otherwise false.
-     */
-    separateY: function (body1, body2, overlapOnly) {
-
-        //  Can't separate two immovable bodies
-        if (body1.immovable && body2.immovable) {
-            return false;
-        }
-
-        this._overlap = 0;
-
-        //  Check if the hulls actually overlap
-        if (this.intersects(body1, body2)) {
-            this._maxOverlap = body1.deltaAbsY() + body2.deltaAbsY() + this.OVERLAP_BIAS;
-
-            if (body1.deltaY() === 0 && body2.deltaY() === 0) {
-                //  They overlap but neither of them are moving
-                body1.embedded = true;
-                body2.embedded = true;
-            } else if (body1.deltaY() > body2.deltaY()) {
-                //  Body1 is moving forward and/or Body2 is moving back
-                this._overlap = body1.frontY - body2.y;
-
-                if ((this._overlap > this._maxOverlap) || body1.checkCollision.frontY === false || body2.checkCollision.backY === false) {
-                    this._overlap = 0;
-                } else {
-                    body1.touching.none = false;
-                    body1.touching.frontY = true;
-                    body2.touching.none = false;
-                    body2.touching.backY = true;
-                }
-            } else if (body1.deltaY() < body2.deltaY()) {
-                //  Body1 is moving back and/or Body2 is moving forward
-                this._overlap = body1.y - body2.widthY - body2.y;
-
-                if ((-this._overlap > this._maxOverlap) || body1.checkCollision.backY === false || body2.checkCollision.frontY === false) {
-                    this._overlap = 0;
-                } else {
-                    body1.touching.none = false;
-                    body1.touching.backY = true;
-                    body2.touching.none = false;
-                    body2.touching.frontY = true;
-                }
-            }
-
-            //  Then adjust their positions and velocities accordingly (if there was any overlap)
-            if (this._overlap !== 0) {
-                body1.overlapY = this._overlap;
-                body2.overlapY = this._overlap;
-
-                if (overlapOnly || body1.customSeparateY || body2.customSeparateY) {
-                    return true;
-                }
-
-                this._velocity1 = body1.velocity.y;
-                this._velocity2 = body2.velocity.y;
-
-                if (!body1.immovable && !body2.immovable) {
-                    this._overlap *= 0.5;
-
-                    body1.y = body1.y - this._overlap;
-                    body2.y += this._overlap;
-
-                    this._newVelocity1 = Math.sqrt((this._velocity2 * this._velocity2 * body2.mass) / body1.mass) * ((this._velocity2 > 0) ? 1 : -1);
-                    this._newVelocity2 = Math.sqrt((this._velocity1 * this._velocity1 * body1.mass) / body2.mass) * ((this._velocity1 > 0) ? 1 : -1);
-                    this._average = (this._newVelocity1 + this._newVelocity2) * 0.5;
-                    this._newVelocity1 -= this._average;
-                    this._newVelocity2 -= this._average;
-
-                    body1.velocity.y = this._average + this._newVelocity1 * body1.bounce.y;
-                    body2.velocity.y = this._average + this._newVelocity2 * body2.bounce.y;
-                } else if (!body1.immovable) {
-                    body1.y = body1.y - this._overlap;
-                    body1.velocity.y = this._velocity2 - this._velocity1 * body1.bounce.y;
-                } else if (!body2.immovable) {
-                    body2.y += this._overlap;
-                    body2.velocity.y = this._velocity1 - this._velocity2 * body2.bounce.y;
-                }
-
-                return true;
-            }
-        }
-
-        return false;
-
-    },
-
-    /**
-     * The core separation function to separate two physics bodies on the z axis.
-     *
-     * @private
-     * @method Phaser.Plugin.Isometric.Arcade#separateZ
-     * @param {Phaser.Plugin.Isometric.Body} body1 - The Body object to separate.
-     * @param {Phaser.Plugin.Isometric.Body} body2 - The Body object to separate.
-     * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place.
-     * @return {boolean} Returns true if the bodies were separated, otherwise false.
-     */
-    separateZ: function (body1, body2, overlapOnly) {
-
-        //  Can't separate two immovable or non-existing bodys
-        if (body1.immovable && body2.immovable) {
-            return false;
-        }
-
-        this._overlap = 0;
-
-        //  Check if the hulls actually overlap
-        if (this.intersects(body1, body2)) {
-            this._maxOverlap = body1.deltaAbsZ() + body2.deltaAbsZ() + this.OVERLAP_BIAS;
-
-            if (body1.deltaZ() === 0 && body2.deltaZ() === 0) {
-                //  They overlap but neither of them are moving
-                body1.embedded = true;
-                body2.embedded = true;
-            } else if (body1.deltaZ() > body2.deltaZ()) {
-                //  Body1 is moving down and/or Body2 is moving up
-                this._overlap = body1.top - body2.z;
-
-                if ((this._overlap > this._maxOverlap) || body1.checkCollision.down === false || body2.checkCollision.up === false) {
-                    this._overlap = 0;
-                } else {
-                    body1.touching.none = false;
-                    body1.touching.down = true;
-                    body2.touching.none = false;
-                    body2.touching.up = true;
-                }
-            } else if (body1.deltaZ() < body2.deltaZ()) {
-                //  Body1 is moving up and/or Body2 is moving down
-                this._overlap = body1.z - body2.top;
-
-                if ((-this._overlap > this._maxOverlap) || body1.checkCollision.up === false || body2.checkCollision.down === false) {
-                    this._overlap = 0;
-                } else {
-                    body1.touching.none = false;
-                    body1.touching.up = true;
-                    body2.touching.none = false;
-                    body2.touching.down = true;
-                }
-            }
-
-            //  Then adjust their positions and velocities accordingly (if there was any overlap)
-            if (this._overlap !== 0) {
-                body1.overlapZ = this._overlap;
-                body2.overlapZ = this._overlap;
-
-                if (overlapOnly || body1.customSeparateY || body2.customSeparateZ) {
-                    return true;
-                }
-
-                this._velocity1 = body1.velocity.z;
-                this._velocity2 = body2.velocity.z;
-
-                if (!body1.immovable && !body2.immovable) {
-                    this._overlap *= 0.5;
-
-                    body1.z = body1.z - this._overlap;
-                    body2.z += this._overlap;
-
-                    this._newVelocity1 = Math.sqrt((this._velocity2 * this._velocity2 * body2.mass) / body1.mass) * ((this._velocity2 > 0) ? 1 : -1);
-                    this._newVelocity2 = Math.sqrt((this._velocity1 * this._velocity1 * body1.mass) / body2.mass) * ((this._velocity1 > 0) ? 1 : -1);
-                    this._average = (this._newVelocity1 + this._newVelocity2) * 0.5;
-                    this._newVelocity1 -= this._average;
-                    this._newVelocity2 -= this._average;
-
-                    body1.velocity.z = this._average + this._newVelocity1 * body1.bounce.z;
-                    body2.velocity.z = this._average + this._newVelocity2 * body2.bounce.z;
-                } else if (!body1.immovable) {
-                    body1.z = body1.z - this._overlap;
-                    body1.velocity.z = this._velocity2 - this._velocity1 * body1.bounce.z;
-
-                    //  This is special case code that handles things like moving platforms you can ride
-                    if (body2.moves) {
-                        body1.x += body2.x - body2.prev.x;
-                        body1.y += body2.y - body2.prev.y;
-                    }
-                } else if (!body2.immovable) {
-                    body2.z += this._overlap;
-                    body2.velocity.z = this._velocity1 - this._velocity2 * body2.bounce.z;
-
-                    //  This is special case code that handles things like moving platforms you can ride
-                    if (body1.moves) {
-                        body2.x += body1.x - body1.prev.x;
-                        body1.y += body2.y - body2.prev.y;
-                    }
-                }
-
-                return true;
-            }
-
-        }
-
-        return false;
-
-    },
-
-    /**
-     * Find the distance between two display objects (like Sprites).
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#distanceBetween
-     * @param {any} source - The Display Object to test from.
-     * @param {any} target - The Display Object to test to.
-     * @return {number} The distance between the source and target objects.
-     */
-    distanceBetween: function (source, target) {
-
-        this._dx = source.x - target.x;
-        this._dy = source.y - target.y;
-        this._dz = source.z - target.z;
-
-        return Math.sqrt(this._dx * this._dx + this._dy * this._dy + this._dz * this._dz);
-
-    },
-
-    /**
-     * Find the distance between a display object (like a Sprite) and the given x/y coordinates only (ignore z).
-     * The calculation is made from the display objects x/y coordinate. This may be the top-left if its anchor hasn't been changed.
-     * If you need to calculate from the center of a display object instead use the method distanceBetweenCenters()
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#distanceToXY
-     * @param {any} displayObject - The Display Object to test from.
-     * @param {number} x - The x coordinate to test to.
-     * @param {number} y - The y coordinate to test to.
-     * @return {number} The distance between the object and the x/y coordinates.
-     */
-    distanceToXY: function (displayObject, x, y) {
-
-        this._dx = displayObject.x - x;
-        this._dy = displayObject.y - y;
-
-        return Math.sqrt(this._dx * this._dx + this._dy * this._dy);
-
-    },
-
-
-    /**
-     * Find the distance between a display object (like a Sprite) and the given x/y/z coordinates.
-     * The calculation is made from the display objects x/y/z coordinate. This may be the top-left if its anchor hasn't been changed.
-     * If you need to calculate from the center of a display object instead use the method distanceBetweenCenters()
-     *
-     * @method Phaser.Plugin.Isometric.Arcade#distanceToXYZ
-     * @param {any} displayObject - The Display Object to test from.
-     * @param {number} x - The x coordinate to test to.
-     * @param {number} y - The y coordinate to test to.
-     * @param {number} z - The y coordinate to test to
-     * @return {number} The distance between the object and the x/y coordinates.
-     */
-    distanceToXYZ: function (displayObject, x, y, z) {
-
-        this._dx = displayObject.x - x;
-        this._dy = displayObject.y - y;
-        this._dz = displayObject.y - z;
-
-        return Math.sqrt(this._dx * this._dx + this._dy * this._dy + this._dz * this._dz);
-
-    }
-
-};
-
-Phaser.Physics.prototype.isoArcade = null;
-
-Phaser.Physics.prototype.parseConfig = (function (_super) {
-
-    return function () {
-        if (this.config.hasOwnProperty('isoArcade') && this.config['isoArcade'] === true && Phaser.Plugin.Isometric.hasOwnProperty('IsoArcade')) {
-            this.isoArcade = new Phaser.Plugin.Isometric(this.game, this.config);
-        }
-        return _super.call(this);
-    };
-
-})(Phaser.Physics.prototype.parseConfig);
-
-Phaser.Physics.prototype.startSystem = (function (_super) {
-
-    return function (system) {
-        if (system === Phaser.Plugin.Isometric.ISOARCADE && this.isoArcade === null) {
-            this.isoArcade = new Phaser.Plugin.Isometric.Arcade(this.game);
-            this.setBoundsToWorld();
-        }
-        return _super.call(this, system);
-    };
-
-})(Phaser.Physics.prototype.startSystem);
-
-Phaser.Physics.prototype.enable = (function (_super) {
-
-    return function (sprite, system) {
-        if (system === Phaser.Plugin.Isometric.ISOARCADE && this.isoArcade) {
-            this.isoArcade.enable(sprite);
-        }
-        return _super.call(this, sprite, system);
-    };
-
-})(Phaser.Physics.prototype.enable);
-
-Phaser.Physics.prototype.setBoundsToWorld = (function (_super) {
-
-    return function () {
-        if (this.isoArcade) {
-            this.isoArcade.setBoundsToWorld();
-        }
-        return _super.call(this);
-    };
-
-})(Phaser.Physics.prototype.setBoundsToWorld);
-
-Phaser.Physics.prototype.destroy = (function (_super) {
-
-    return function () {
-        this.isoArcade = null;
-
-        return _super.call(this);
-    };
-
-})(Phaser.Physics.prototype.destroy);
-
-
-
- - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
- -
- - - - - - - - - - - - - - - - - - diff --git a/doc/classes.list.html b/doc/classes.list.html deleted file mode 100644 index 3d97d14..0000000 --- a/doc/classes.list.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - Phaser Isometric Classes - - - - - - - - - -
- - -
- - -
- -
- - - -

Classes

-
- -
-

- -

- -
- - - -
- - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/img/glyphicons-halflings-white.png b/doc/img/glyphicons-halflings-white.png deleted file mode 100644 index 3bf6484a29d8da269f9bc874b25493a45fae3bae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8777 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 B7G?kd diff --git a/doc/img/glyphicons-halflings.png b/doc/img/glyphicons-halflings.png deleted file mode 100644 index a9969993201f9cee63cf9f49217646347297b643..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12799 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 diff --git a/doc/index.html b/doc/index.html deleted file mode 100644 index 49f0144..0000000 --- a/doc/index.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - Phaser Isometric Index - - - - - - - - - -
- - -
- - -
- -
- - - - - Index - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - - Copyright © 2014 Lewis Lane - Rotates.org - -
- - - Documentation generated by JSDoc 3.2.2 - on Thu Aug 7th 2014 using the DocStrap template. - -
-
- - -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/scripts/URI.js b/doc/scripts/URI.js deleted file mode 100644 index 91b01ee..0000000 --- a/doc/scripts/URI.js +++ /dev/null @@ -1,1429 +0,0 @@ -/*! - * URI.js - Mutating URLs - * - * Version: 1.8.3 - * - * Author: Rodney Rehm - * Web: http://medialize.github.com/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * GPL v3 http://opensource.org/licenses/GPL-3.0 - * - */ -(function(root, factory) { - // https://github.com/umdjs/umd/blob/master/returnExports.js - if (typeof exports === 'object') { - // Node - module.exports = factory(require('./punycode'), require('./IPv6'), require('./SecondLevelDomains')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['./punycode', './IPv6', './SecondLevelDomains'], factory); - } else { - // Browser globals (root is window) - root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains); - } -}(this, function(punycode, IPv6, SLD) { - "use strict"; - - function URI(url, base) { - // Allow instantiation without the 'new' keyword - if (!(this instanceof URI)) { - return new URI(url, base); - } - if (url === undefined) { - if (typeof location !== 'undefined') { - url = location.href + ""; - } else { - url = ""; - } - } - this.href(url); - // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor - if (base !== undefined) { - return this.absoluteTo(base); - } - return this; - }; - var p = URI.prototype; - var hasOwn = Object.prototype.hasOwnProperty; - - function escapeRegEx(string) { - // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963 - return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); - } - - function isArray(obj) { - return String(Object.prototype.toString.call(obj)) === "[object Array]"; - } - - function filterArrayValues(data, value) { - var lookup = {}; - var i, length; - if (isArray(value)) { - for (i = 0, length = value.length; i < length; i++) { - lookup[value[i]] = true; - } - } else { - lookup[value] = true; - } - for (i = 0, length = data.length; i < length; i++) { - if (lookup[data[i]] !== undefined) { - data.splice(i, 1); - length--; - i--; - } - } - return data; - } - URI._parts = function() { - return { - protocol: null, - username: null, - password: null, - hostname: null, - urn: null, - port: null, - path: null, - query: null, - fragment: null, - // state - duplicateQueryParameters: URI.duplicateQueryParameters - }; - }; - // state: allow duplicate query parameters (a=1&a=1) - URI.duplicateQueryParameters = false; - // static properties - URI.protocol_expression = /^[a-z][a-z0-9-+-]*$/i; - URI.idn_expression = /[^a-z0-9\.-]/i; - URI.punycode_expression = /(xn--)/i; - // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care? - URI.ip4_expression = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; - // credits to Rich Brown - // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096 - // specification: http://www.ietf.org/rfc/rfc4291.txt - URI.ip6_expression = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/; - // gruber revised expression - http://rodneyrehm.de/t/url-regex.html - URI.find_uri_expression = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig; - // http://www.iana.org/assignments/uri-schemes.html - // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports - URI.defaultPorts = { - http: "80", - https: "443", - ftp: "21", - gopher: "70", - ws: "80", - wss: "443" - }; - // allowed hostname characters according to RFC 3986 - // ALPHA DIGIT "-" "." "_" "~" "!" "$" "&" "'" "(" ")" "*" "+" "," ";" "=" %encoded - // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - - URI.invalid_hostname_characters = /[^a-zA-Z0-9\.-]/; - // encoding / decoding according to RFC3986 - - function strictEncodeURIComponent(string) { - // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent - return encodeURIComponent(string).replace(/[!'()*]/g, escape).replace(/\*/g, "%2A"); - } - URI.encode = strictEncodeURIComponent; - URI.decode = decodeURIComponent; - URI.iso8859 = function() { - URI.encode = escape; - URI.decode = unescape; - }; - URI.unicode = function() { - URI.encode = strictEncodeURIComponent; - URI.decode = decodeURIComponent; - }; - URI.characters = { - pathname: { - encode: { - // RFC3986 2.1: For consistency, URI producers and normalizers should - // use uppercase hexadecimal digits for all percent-encodings. - expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig, - map: { - // -._~!'()* - "%24": "$", - "%26": "&", - "%2B": "+", - "%2C": ",", - "%3B": ";", - "%3D": "=", - "%3A": ":", - "%40": "@" - } - }, - decode: { - expression: /[\/\?#]/g, - map: { - "/": "%2F", - "?": "%3F", - "#": "%23" - } - } - }, - reserved: { - encode: { - // RFC3986 2.1: For consistency, URI producers and normalizers should - // use uppercase hexadecimal digits for all percent-encodings. - expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig, - map: { - // gen-delims - "%3A": ":", - "%2F": "/", - "%3F": "?", - "%23": "#", - "%5B": "[", - "%5D": "]", - "%40": "@", - // sub-delims - "%21": "!", - "%24": "$", - "%26": "&", - "%27": "'", - "%28": "(", - "%29": ")", - "%2A": "*", - "%2B": "+", - "%2C": ",", - "%3B": ";", - "%3D": "=" - } - } - } - }; - URI.encodeQuery = function(string) { - return URI.encode(string + "").replace(/%20/g, '+'); - }; - URI.decodeQuery = function(string) { - return URI.decode((string + "").replace(/\+/g, '%20')); - }; - URI.recodePath = function(string) { - var segments = (string + "").split('/'); - for (var i = 0, length = segments.length; i < length; i++) { - segments[i] = URI.encodePathSegment(URI.decode(segments[i])); - } - return segments.join('/'); - }; - URI.decodePath = function(string) { - var segments = (string + "").split('/'); - for (var i = 0, length = segments.length; i < length; i++) { - segments[i] = URI.decodePathSegment(segments[i]); - } - return segments.join('/'); - }; - // generate encode/decode path functions - var _parts = { - 'encode': 'encode', - 'decode': 'decode' - }; - var _part; - var generateAccessor = function(_group, _part) { - return function(string) { - return URI[_part](string + "").replace(URI.characters[_group][_part].expression, function(c) { - return URI.characters[_group][_part].map[c]; - }); - }; - }; - for (_part in _parts) { - URI[_part + "PathSegment"] = generateAccessor("pathname", _parts[_part]); - } - URI.encodeReserved = generateAccessor("reserved", "encode"); - URI.parse = function(string, parts) { - var pos, t; - if (!parts) { - parts = {}; - } - // [protocol"://"[username[":"password]"@"]hostname[":"port]"/"?][path]["?"querystring]["#"fragment] - // extract fragment - pos = string.indexOf('#'); - if (pos > -1) { - // escaping? - parts.fragment = string.substring(pos + 1) || null; - string = string.substring(0, pos); - } - // extract query - pos = string.indexOf('?'); - if (pos > -1) { - // escaping? - parts.query = string.substring(pos + 1) || null; - string = string.substring(0, pos); - } - // extract protocol - if (string.substring(0, 2) === '//') { - // relative-scheme - parts.protocol = ''; - string = string.substring(2); - // extract "user:pass@host:port" - string = URI.parseAuthority(string, parts); - } else { - pos = string.indexOf(':'); - if (pos > -1) { - parts.protocol = string.substring(0, pos); - if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) { - // : may be within the path - parts.protocol = undefined; - } else if (parts.protocol === 'file') { - // the file scheme: does not contain an authority - string = string.substring(pos + 3); - } else if (string.substring(pos + 1, pos + 3) === '//') { - string = string.substring(pos + 3); - // extract "user:pass@host:port" - string = URI.parseAuthority(string, parts); - } else { - string = string.substring(pos + 1); - parts.urn = true; - } - } - } - // what's left must be the path - parts.path = string; - // and we're done - return parts; - }; - URI.parseHost = function(string, parts) { - // extract host:port - var pos = string.indexOf('/'); - var bracketPos; - var t; - if (pos === -1) { - pos = string.length; - } - if (string[0] === "[") { - // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6 - // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts - // IPv6+port in the format [2001:db8::1]:80 (for the time being) - bracketPos = string.indexOf(']'); - parts.hostname = string.substring(1, bracketPos) || null; - parts.port = string.substring(bracketPos + 2, pos) || null; - } else if (string.indexOf(':') !== string.lastIndexOf(':')) { - // IPv6 host contains multiple colons - but no port - // this notation is actually not allowed by RFC 3986, but we're a liberal parser - parts.hostname = string.substring(0, pos) || null; - parts.port = null; - } else { - t = string.substring(0, pos).split(':'); - parts.hostname = t[0] || null; - parts.port = t[1] || null; - } - if (parts.hostname && string.substring(pos)[0] !== '/') { - pos++; - string = "/" + string; - } - return string.substring(pos) || '/'; - }; - URI.parseAuthority = function(string, parts) { - string = URI.parseUserinfo(string, parts); - return URI.parseHost(string, parts); - }; - URI.parseUserinfo = function(string, parts) { - // extract username:password - var pos = string.indexOf('@'); - var firstSlash = string.indexOf('/'); - var t; - // authority@ must come before /path - if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) { - t = string.substring(0, pos).split(':'); - parts.username = t[0] ? URI.decode(t[0]) : null; - t.shift(); - parts.password = t[0] ? URI.decode(t.join(':')) : null; - string = string.substring(pos + 1); - } else { - parts.username = null; - parts.password = null; - } - return string; - }; - URI.parseQuery = function(string) { - if (!string) { - return {}; - } - // throw out the funky business - "?"[name"="value"&"]+ - string = string.replace(/&+/g, '&').replace(/^\?*&*|&+$/g, ''); - if (!string) { - return {}; - } - var items = {}; - var splits = string.split('&'); - var length = splits.length; - var v, name, value; - for (var i = 0; i < length; i++) { - v = splits[i].split('='); - name = URI.decodeQuery(v.shift()); - // no "=" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters - value = v.length ? URI.decodeQuery(v.join('=')) : null; - if (items[name]) { - if (typeof items[name] === "string") { - items[name] = [items[name]]; - } - items[name].push(value); - } else { - items[name] = value; - } - } - return items; - }; - URI.build = function(parts) { - var t = ""; - if (parts.protocol) { - t += parts.protocol + ":"; - } - if (!parts.urn && (t || parts.hostname)) { - t += '//'; - } - t += (URI.buildAuthority(parts) || ''); - if (typeof parts.path === "string") { - if (parts.path[0] !== '/' && typeof parts.hostname === "string") { - t += '/'; - } - t += parts.path; - } - if (typeof parts.query === "string" && parts.query) { - t += '?' + parts.query; - } - if (typeof parts.fragment === "string" && parts.fragment) { - t += '#' + parts.fragment; - } - return t; - }; - URI.buildHost = function(parts) { - var t = ""; - if (!parts.hostname) { - return ""; - } else if (URI.ip6_expression.test(parts.hostname)) { - if (parts.port) { - t += "[" + parts.hostname + "]:" + parts.port; - } else { - // don't know if we should always wrap IPv6 in [] - // the RFC explicitly says SHOULD, not MUST. - t += parts.hostname; - } - } else { - t += parts.hostname; - if (parts.port) { - t += ':' + parts.port; - } - } - return t; - }; - URI.buildAuthority = function(parts) { - return URI.buildUserinfo(parts) + URI.buildHost(parts); - }; - URI.buildUserinfo = function(parts) { - var t = ""; - if (parts.username) { - t += URI.encode(parts.username); - if (parts.password) { - t += ':' + URI.encode(parts.password); - } - t += "@"; - } - return t; - }; - URI.buildQuery = function(data, duplicates) { - // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html - // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed - // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax! - // URI.js treats the query string as being application/x-www-form-urlencoded - // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type - var t = ""; - var unique, key, i, length; - for (key in data) { - if (hasOwn.call(data, key) && key) { - if (isArray(data[key])) { - unique = {}; - for (i = 0, length = data[key].length; i < length; i++) { - if (data[key][i] !== undefined && unique[data[key][i] + ""] === undefined) { - t += "&" + URI.buildQueryParameter(key, data[key][i]); - if (duplicates !== true) { - unique[data[key][i] + ""] = true; - } - } - } - } else if (data[key] !== undefined) { - t += '&' + URI.buildQueryParameter(key, data[key]); - } - } - } - return t.substring(1); - }; - URI.buildQueryParameter = function(name, value) { - // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded - // don't append "=" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization - return URI.encodeQuery(name) + (value !== null ? "=" + URI.encodeQuery(value) : ""); - }; - URI.addQuery = function(data, name, value) { - if (typeof name === "object") { - for (var key in name) { - if (hasOwn.call(name, key)) { - URI.addQuery(data, key, name[key]); - } - } - } else if (typeof name === "string") { - if (data[name] === undefined) { - data[name] = value; - return; - } else if (typeof data[name] === "string") { - data[name] = [data[name]]; - } - if (!isArray(value)) { - value = [value]; - } - data[name] = data[name].concat(value); - } else { - throw new TypeError("URI.addQuery() accepts an object, string as the name parameter"); - } - }; - URI.removeQuery = function(data, name, value) { - var i, length, key; - if (isArray(name)) { - for (i = 0, length = name.length; i < length; i++) { - data[name[i]] = undefined; - } - } else if (typeof name === "object") { - for (key in name) { - if (hasOwn.call(name, key)) { - URI.removeQuery(data, key, name[key]); - } - } - } else if (typeof name === "string") { - if (value !== undefined) { - if (data[name] === value) { - data[name] = undefined; - } else if (isArray(data[name])) { - data[name] = filterArrayValues(data[name], value); - } - } else { - data[name] = undefined; - } - } else { - throw new TypeError("URI.addQuery() accepts an object, string as the first parameter"); - } - }; - URI.commonPath = function(one, two) { - var length = Math.min(one.length, two.length); - var pos; - // find first non-matching character - for (pos = 0; pos < length; pos++) { - if (one[pos] !== two[pos]) { - pos--; - break; - } - } - if (pos < 1) { - return one[0] === two[0] && one[0] === '/' ? '/' : ''; - } - // revert to last / - if (one[pos] !== '/') { - pos = one.substring(0, pos).lastIndexOf('/'); - } - return one.substring(0, pos + 1); - }; - URI.withinString = function(string, callback) { - // expression used is "gruber revised" (@gruber v2) determined to be the best solution in - // a regex sprint we did a couple of ages ago at - // * http://mathiasbynens.be/demo/url-regex - // * http://rodneyrehm.de/t/url-regex.html - return string.replace(URI.find_uri_expression, callback); - }; - URI.ensureValidHostname = function(v) { - // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986) - // they are not part of DNS and therefore ignored by URI.js - if (v.match(URI.invalid_hostname_characters)) { - // test punycode - if (!punycode) { - throw new TypeError("Hostname '" + v + "' contains characters other than [A-Z0-9.-] and Punycode.js is not available"); - } - if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) { - throw new TypeError("Hostname '" + v + "' contains characters other than [A-Z0-9.-]"); - } - } - }; - p.build = function(deferBuild) { - if (deferBuild === true) { - this._deferred_build = true; - } else if (deferBuild === undefined || this._deferred_build) { - this._string = URI.build(this._parts); - this._deferred_build = false; - } - return this; - }; - p.clone = function() { - return new URI(this); - }; - p.valueOf = p.toString = function() { - return this.build(false)._string; - }; - // generate simple accessors - _parts = { - protocol: 'protocol', - username: 'username', - password: 'password', - hostname: 'hostname', - port: 'port' - }; - generateAccessor = function(_part) { - return function(v, build) { - if (v === undefined) { - return this._parts[_part] || ""; - } else { - this._parts[_part] = v; - this.build(!build); - return this; - } - }; - }; - for (_part in _parts) { - p[_part] = generateAccessor(_parts[_part]); - } - // generate accessors with optionally prefixed input - _parts = { - query: '?', - fragment: '#' - }; - generateAccessor = function(_part, _key) { - return function(v, build) { - if (v === undefined) { - return this._parts[_part] || ""; - } else { - if (v !== null) { - v = v + ""; - if (v[0] === _key) { - v = v.substring(1); - } - } - this._parts[_part] = v; - this.build(!build); - return this; - } - }; - }; - for (_part in _parts) { - p[_part] = generateAccessor(_part, _parts[_part]); - } - // generate accessors with prefixed output - _parts = { - search: ['?', 'query'], - hash: ['#', 'fragment'] - }; - generateAccessor = function(_part, _key) { - return function(v, build) { - var t = this[_part](v, build); - return typeof t === "string" && t.length ? (_key + t) : t; - }; - }; - for (_part in _parts) { - p[_part] = generateAccessor(_parts[_part][1], _parts[_part][0]); - } - p.pathname = function(v, build) { - if (v === undefined || v === true) { - var res = this._parts.path || (this._parts.urn ? '' : '/'); - return v ? URI.decodePath(res) : res; - } else { - this._parts.path = v ? URI.recodePath(v) : "/"; - this.build(!build); - return this; - } - }; - p.path = p.pathname; - p.href = function(href, build) { - var key; - if (href === undefined) { - return this.toString(); - } - this._string = ""; - this._parts = URI._parts(); - var _URI = href instanceof URI; - var _object = typeof href === "object" && (href.hostname || href.path); - // window.location is reported to be an object, but it's not the sort - // of object we're looking for: - // * location.protocol ends with a colon - // * location.query != object.search - // * location.hash != object.fragment - // simply serializing the unknown object should do the trick - // (for location, not for everything...) - if (!_URI && _object && Object.prototype.toString.call(href) !== "[object Object]") { - href = href.toString(); - } - if (typeof href === "string") { - this._parts = URI.parse(href, this._parts); - } else if (_URI || _object) { - var src = _URI ? href._parts : href; - for (key in src) { - if (hasOwn.call(this._parts, key)) { - this._parts[key] = src[key]; - } - } - } else { - throw new TypeError("invalid input"); - } - this.build(!build); - return this; - }; - // identification accessors - p.is = function(what) { - var ip = false; - var ip4 = false; - var ip6 = false; - var name = false; - var sld = false; - var idn = false; - var punycode = false; - var relative = !this._parts.urn; - if (this._parts.hostname) { - relative = false; - ip4 = URI.ip4_expression.test(this._parts.hostname); - ip6 = URI.ip6_expression.test(this._parts.hostname); - ip = ip4 || ip6; - name = !ip; - sld = name && SLD && SLD.has(this._parts.hostname); - idn = name && URI.idn_expression.test(this._parts.hostname); - punycode = name && URI.punycode_expression.test(this._parts.hostname); - } - switch (what.toLowerCase()) { - case 'relative': - return relative; - case 'absolute': - return !relative; - // hostname identification - case 'domain': - case 'name': - return name; - case 'sld': - return sld; - case 'ip': - return ip; - case 'ip4': - case 'ipv4': - case 'inet4': - return ip4; - case 'ip6': - case 'ipv6': - case 'inet6': - return ip6; - case 'idn': - return idn; - case 'url': - return !this._parts.urn; - case 'urn': - return !!this._parts.urn; - case 'punycode': - return punycode; - } - return null; - }; - // component specific input validation - var _protocol = p.protocol; - var _port = p.port; - var _hostname = p.hostname; - p.protocol = function(v, build) { - if (v !== undefined) { - if (v) { - // accept trailing :// - v = v.replace(/:(\/\/)?$/, ''); - if (v.match(/[^a-zA-z0-9\.+-]/)) { - throw new TypeError("Protocol '" + v + "' contains characters other than [A-Z0-9.+-]"); - } - } - } - return _protocol.call(this, v, build); - }; - p.scheme = p.protocol; - p.port = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v !== undefined) { - if (v === 0) { - v = null; - } - if (v) { - v += ""; - if (v[0] === ":") { - v = v.substring(1); - } - if (v.match(/[^0-9]/)) { - throw new TypeError("Port '" + v + "' contains characters other than [0-9]"); - } - } - } - return _port.call(this, v, build); - }; - p.hostname = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v !== undefined) { - var x = {}; - URI.parseHost(v, x); - v = x.hostname; - } - return _hostname.call(this, v, build); - }; - // compound accessors - p.host = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v === undefined) { - return this._parts.hostname ? URI.buildHost(this._parts) : ""; - } else { - URI.parseHost(v, this._parts); - this.build(!build); - return this; - } - }; - p.authority = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v === undefined) { - return this._parts.hostname ? URI.buildAuthority(this._parts) : ""; - } else { - URI.parseAuthority(v, this._parts); - this.build(!build); - return this; - } - }; - p.userinfo = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v === undefined) { - if (!this._parts.username) { - return ""; - } - var t = URI.buildUserinfo(this._parts); - return t.substring(0, t.length - 1); - } else { - if (v[v.length - 1] !== '@') { - v += '@'; - } - URI.parseUserinfo(v, this._parts); - this.build(!build); - return this; - } - }; - p.resource = function(v, build) { - var parts; - if (v === undefined) { - return this.path() + this.search() + this.hash(); - } - parts = URI.parse(v); - this._parts.path = parts.path; - this._parts.query = parts.query; - this._parts.fragment = parts.fragment; - this.build(!build); - return this; - }; - // fraction accessors - p.subdomain = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - // convenience, return "www" from "www.example.org" - if (v === undefined) { - if (!this._parts.hostname || this.is('IP')) { - return ""; - } - // grab domain and add another segment - var end = this._parts.hostname.length - this.domain().length - 1; - return this._parts.hostname.substring(0, end) || ""; - } else { - var e = this._parts.hostname.length - this.domain().length; - var sub = this._parts.hostname.substring(0, e); - var replace = new RegExp('^' + escapeRegEx(sub)); - if (v && v[v.length - 1] !== '.') { - v += "."; - } - if (v) { - URI.ensureValidHostname(v); - } - this._parts.hostname = this._parts.hostname.replace(replace, v); - this.build(!build); - return this; - } - }; - p.domain = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (typeof v === 'boolean') { - build = v; - v = undefined; - } - // convenience, return "example.org" from "www.example.org" - if (v === undefined) { - if (!this._parts.hostname || this.is('IP')) { - return ""; - } - // if hostname consists of 1 or 2 segments, it must be the domain - var t = this._parts.hostname.match(/\./g); - if (t && t.length < 2) { - return this._parts.hostname; - } - // grab tld and add another segment - var end = this._parts.hostname.length - this.tld(build).length - 1; - end = this._parts.hostname.lastIndexOf('.', end - 1) + 1; - return this._parts.hostname.substring(end) || ""; - } else { - if (!v) { - throw new TypeError("cannot set domain empty"); - } - URI.ensureValidHostname(v); - if (!this._parts.hostname || this.is('IP')) { - this._parts.hostname = v; - } else { - var replace = new RegExp(escapeRegEx(this.domain()) + "$"); - this._parts.hostname = this._parts.hostname.replace(replace, v); - } - this.build(!build); - return this; - } - }; - p.tld = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (typeof v === 'boolean') { - build = v; - v = undefined; - } - // return "org" from "www.example.org" - if (v === undefined) { - if (!this._parts.hostname || this.is('IP')) { - return ""; - } - var pos = this._parts.hostname.lastIndexOf('.'); - var tld = this._parts.hostname.substring(pos + 1); - if (build !== true && SLD && SLD.list[tld.toLowerCase()]) { - return SLD.get(this._parts.hostname) || tld; - } - return tld; - } else { - var replace; - if (!v) { - throw new TypeError("cannot set TLD empty"); - } else if (v.match(/[^a-zA-Z0-9-]/)) { - if (SLD && SLD.is(v)) { - replace = new RegExp(escapeRegEx(this.tld()) + "$"); - this._parts.hostname = this._parts.hostname.replace(replace, v); - } else { - throw new TypeError("TLD '" + v + "' contains characters other than [A-Z0-9]"); - } - } else if (!this._parts.hostname || this.is('IP')) { - throw new ReferenceError("cannot set TLD on non-domain host"); - } else { - replace = new RegExp(escapeRegEx(this.tld()) + "$"); - this._parts.hostname = this._parts.hostname.replace(replace, v); - } - this.build(!build); - return this; - } - }; - p.directory = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v === undefined || v === true) { - if (!this._parts.path && !this._parts.hostname) { - return ''; - } - if (this._parts.path === '/') { - return '/'; - } - var end = this._parts.path.length - this.filename().length - 1; - var res = this._parts.path.substring(0, end) || (this._parts.hostname ? "/" : ""); - return v ? URI.decodePath(res) : res; - } else { - var e = this._parts.path.length - this.filename().length; - var directory = this._parts.path.substring(0, e); - var replace = new RegExp('^' + escapeRegEx(directory)); - // fully qualifier directories begin with a slash - if (!this.is('relative')) { - if (!v) { - v = '/'; - } - if (v[0] !== '/') { - v = "/" + v; - } - } - // directories always end with a slash - if (v && v[v.length - 1] !== '/') { - v += '/'; - } - v = URI.recodePath(v); - this._parts.path = this._parts.path.replace(replace, v); - this.build(!build); - return this; - } - }; - p.filename = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v === undefined || v === true) { - if (!this._parts.path || this._parts.path === '/') { - return ""; - } - var pos = this._parts.path.lastIndexOf('/'); - var res = this._parts.path.substring(pos + 1); - return v ? URI.decodePathSegment(res) : res; - } else { - var mutatedDirectory = false; - if (v[0] === '/') { - v = v.substring(1); - } - if (v.match(/\.?\//)) { - mutatedDirectory = true; - } - var replace = new RegExp(escapeRegEx(this.filename()) + "$"); - v = URI.recodePath(v); - this._parts.path = this._parts.path.replace(replace, v); - if (mutatedDirectory) { - this.normalizePath(build); - } else { - this.build(!build); - } - return this; - } - }; - p.suffix = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - if (v === undefined || v === true) { - if (!this._parts.path || this._parts.path === '/') { - return ""; - } - var filename = this.filename(); - var pos = filename.lastIndexOf('.'); - var s, res; - if (pos === -1) { - return ""; - } - // suffix may only contain alnum characters (yup, I made this up.) - s = filename.substring(pos + 1); - res = (/^[a-z0-9%]+$/i).test(s) ? s : ""; - return v ? URI.decodePathSegment(res) : res; - } else { - if (v[0] === '.') { - v = v.substring(1); - } - var suffix = this.suffix(); - var replace; - if (!suffix) { - if (!v) { - return this; - } - this._parts.path += '.' + URI.recodePath(v); - } else if (!v) { - replace = new RegExp(escapeRegEx("." + suffix) + "$"); - } else { - replace = new RegExp(escapeRegEx(suffix) + "$"); - } - if (replace) { - v = URI.recodePath(v); - this._parts.path = this._parts.path.replace(replace, v); - } - this.build(!build); - return this; - } - }; - p.segment = function(segment, v, build) { - var separator = this._parts.urn ? ':' : '/'; - var path = this.path(); - var absolute = path.substring(0, 1) === '/'; - var segments = path.split(separator); - if (typeof segment !== 'number') { - build = v; - v = segment; - segment = undefined; - } - if (segment !== undefined && typeof segment !== 'number') { - throw new Error("Bad segment '" + segment + "', must be 0-based integer"); - } - if (absolute) { - segments.shift(); - } - if (segment < 0) { - // allow negative indexes to address from the end - segment = Math.max(segments.length + segment, 0); - } - if (v === undefined) { - return segment === undefined ? segments : segments[segment]; - } else if (segment === null || segments[segment] === undefined) { - if (isArray(v)) { - segments = v; - } else if (v || (typeof v === "string" && v.length)) { - if (segments[segments.length - 1] === "") { - // empty trailing elements have to be overwritten - // to prefent results such as /foo//bar - segments[segments.length - 1] = v; - } else { - segments.push(v); - } - } - } else { - if (v || (typeof v === "string" && v.length)) { - segments[segment] = v; - } else { - segments.splice(segment, 1); - } - } - if (absolute) { - segments.unshift(""); - } - return this.path(segments.join(separator), build); - }; - // mutating query string - var q = p.query; - p.query = function(v, build) { - if (v === true) { - return URI.parseQuery(this._parts.query); - } else if (v !== undefined && typeof v !== "string") { - this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters); - this.build(!build); - return this; - } else { - return q.call(this, v, build); - } - }; - p.addQuery = function(name, value, build) { - var data = URI.parseQuery(this._parts.query); - URI.addQuery(data, name, value === undefined ? null : value); - this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters); - if (typeof name !== "string") { - build = value; - } - this.build(!build); - return this; - }; - p.removeQuery = function(name, value, build) { - var data = URI.parseQuery(this._parts.query); - URI.removeQuery(data, name, value); - this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters); - if (typeof name !== "string") { - build = value; - } - this.build(!build); - return this; - }; - p.addSearch = p.addQuery; - p.removeSearch = p.removeQuery; - // sanitizing URLs - p.normalize = function() { - if (this._parts.urn) { - return this.normalizeProtocol(false).normalizeQuery(false).normalizeFragment(false).build(); - } - return this.normalizeProtocol(false).normalizeHostname(false).normalizePort(false).normalizePath(false).normalizeQuery(false).normalizeFragment(false).build(); - }; - p.normalizeProtocol = function(build) { - if (typeof this._parts.protocol === "string") { - this._parts.protocol = this._parts.protocol.toLowerCase(); - this.build(!build); - } - return this; - }; - p.normalizeHostname = function(build) { - if (this._parts.hostname) { - if (this.is('IDN') && punycode) { - this._parts.hostname = punycode.toASCII(this._parts.hostname); - } else if (this.is('IPv6') && IPv6) { - this._parts.hostname = IPv6.best(this._parts.hostname); - } - this._parts.hostname = this._parts.hostname.toLowerCase(); - this.build(!build); - } - return this; - }; - p.normalizePort = function(build) { - // remove port of it's the protocol's default - if (typeof this._parts.protocol === "string" && this._parts.port === URI.defaultPorts[this._parts.protocol]) { - this._parts.port = null; - this.build(!build); - } - return this; - }; - p.normalizePath = function(build) { - if (this._parts.urn) { - return this; - } - if (!this._parts.path || this._parts.path === '/') { - return this; - } - var _was_relative; - var _was_relative_prefix; - var _path = this._parts.path; - var _parent, _pos; - // handle relative paths - if (_path[0] !== '/') { - if (_path[0] === '.') { - _was_relative_prefix = _path.substring(0, _path.indexOf('/')); - } - _was_relative = true; - _path = '/' + _path; - } - // resolve simples - _path = _path.replace(/(\/(\.\/)+)|\/{2,}/g, '/'); - // resolve parents - while (true) { - _parent = _path.indexOf('/../'); - if (_parent === -1) { - // no more ../ to resolve - break; - } else if (_parent === 0) { - // top level cannot be relative... - _path = _path.substring(3); - break; - } - _pos = _path.substring(0, _parent).lastIndexOf('/'); - if (_pos === -1) { - _pos = _parent; - } - _path = _path.substring(0, _pos) + _path.substring(_parent + 3); - } - // revert to relative - if (_was_relative && this.is('relative')) { - if (_was_relative_prefix) { - _path = _was_relative_prefix + _path; - } else { - _path = _path.substring(1); - } - } - _path = URI.recodePath(_path); - this._parts.path = _path; - this.build(!build); - return this; - }; - p.normalizePathname = p.normalizePath; - p.normalizeQuery = function(build) { - if (typeof this._parts.query === "string") { - if (!this._parts.query.length) { - this._parts.query = null; - } else { - this.query(URI.parseQuery(this._parts.query)); - } - this.build(!build); - } - return this; - }; - p.normalizeFragment = function(build) { - if (!this._parts.fragment) { - this._parts.fragment = null; - this.build(!build); - } - return this; - }; - p.normalizeSearch = p.normalizeQuery; - p.normalizeHash = p.normalizeFragment; - p.iso8859 = function() { - // expect unicode input, iso8859 output - var e = URI.encode; - var d = URI.decode; - URI.encode = escape; - URI.decode = decodeURIComponent; - this.normalize(); - URI.encode = e; - URI.decode = d; - return this; - }; - p.unicode = function() { - // expect iso8859 input, unicode output - var e = URI.encode; - var d = URI.decode; - URI.encode = strictEncodeURIComponent; - URI.decode = unescape; - this.normalize(); - URI.encode = e; - URI.decode = d; - return this; - }; - p.readable = function() { - var uri = this.clone(); - // removing username, password, because they shouldn't be displayed according to RFC 3986 - uri.username("").password("").normalize(); - var t = ''; - if (uri._parts.protocol) { - t += uri._parts.protocol + '://'; - } - if (uri._parts.hostname) { - if (uri.is('punycode') && punycode) { - t += punycode.toUnicode(uri._parts.hostname); - if (uri._parts.port) { - t += ":" + uri._parts.port; - } - } else { - t += uri.host(); - } - } - if (uri._parts.hostname && uri._parts.path && uri._parts.path[0] !== '/') { - t += '/'; - } - t += uri.path(true); - if (uri._parts.query) { - var q = ''; - for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) { - var kv = (qp[i] || "").split('='); - q += '&' + URI.decodeQuery(kv[0]).replace(/&/g, '%26'); - if (kv[1] !== undefined) { - q += "=" + URI.decodeQuery(kv[1]).replace(/&/g, '%26'); - } - } - t += '?' + q.substring(1); - } - t += uri.hash(); - return t; - }; - // resolving relative and absolute URLs - p.absoluteTo = function(base) { - var resolved = this.clone(); - var properties = ['protocol', 'username', 'password', 'hostname', 'port']; - var basedir, i, p; - if (this._parts.urn) { - throw new Error('URNs do not have any generally defined hierachical components'); - } - if (this._parts.hostname) { - return resolved; - } - if (!(base instanceof URI)) { - base = new URI(base); - } - for (i = 0, p; p = properties[i]; i++) { - resolved._parts[p] = base._parts[p]; - } - properties = ['query', 'path']; - for (i = 0, p; p = properties[i]; i++) { - if (!resolved._parts[p] && base._parts[p]) { - resolved._parts[p] = base._parts[p]; - } - } - if (resolved.path()[0] !== '/') { - basedir = base.directory(); - resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path; - resolved.normalizePath(); - } - resolved.build(); - return resolved; - }; - p.relativeTo = function(base) { - var relative = this.clone(); - var properties = ['protocol', 'username', 'password', 'hostname', 'port']; - var common, _base, _this, _base_diff, _this_diff; - if (this._parts.urn) { - throw new Error('URNs do not have any generally defined hierachical components'); - } - if (!(base instanceof URI)) { - base = new URI(base); - } - if (this.path()[0] !== '/' || base.path()[0] !== '/') { - throw new Error('Cannot calculate common path from non-relative URLs'); - } - // determine common sub path - common = URI.commonPath(relative.path(), base.path()); - // no relation if there's nothing in common - if (!common || common === '/') { - return relative; - } - // relative paths don't have authority - for (var i = 0, p; p = properties[i]; i++) { - relative._parts[p] = null; - } - _base = base.directory(); - _this = this.directory(); - // base and this are on the same level - if (_base === _this) { - relative._parts.path = './' + relative.filename(); - return relative.build(); - } - _base_diff = _base.substring(common.length); - _this_diff = _this.substring(common.length); - // this is a descendant of base - if (_base + '/' === common) { - if (_this_diff) { - _this_diff += '/'; - } - relative._parts.path = './' + _this_diff + relative.filename(); - return relative.build(); - } - // this is a descendant of base - var parents = '../'; - var _common = new RegExp('^' + escapeRegEx(common)); - var _parents = _base.replace(_common, '/').match(/\//g).length - 1; - while (_parents--) { - parents += '../'; - } - relative._parts.path = relative._parts.path.replace(_common, parents); - return relative.build(); - }; - // comparing URIs - p.equals = function(uri) { - var one = this.clone(); - var two = new URI(uri); - var one_map = {}; - var two_map = {}; - var checked = {}; - var one_query, two_query, key; - one.normalize(); - two.normalize(); - // exact match - if (one.toString() === two.toString()) { - return true; - } - // extract query string - one_query = one.query(); - two_query = two.query(); - one.query(""); - two.query(""); - // definitely not equal if not even non-query parts match - if (one.toString() !== two.toString()) { - return false; - } - // query parameters have the same length, even if they're permutated - if (one_query.length !== two_query.length) { - return false; - } - one_map = URI.parseQuery(one_query); - two_map = URI.parseQuery(two_query); - for (key in one_map) { - if (hasOwn.call(one_map, key)) { - if (!isArray(one_map[key])) { - if (one_map[key] !== two_map[key]) { - return false; - } - } else { - if (!isArray(two_map[key])) { - return false; - } - // arrays can't be equal if they have different amount of content - if (one_map[key].length !== two_map[key].length) { - return false; - } - one_map[key].sort(); - two_map[key].sort(); - for (var i = 0, l = one_map[key].length; i < l; i++) { - if (one_map[key][i] !== two_map[key][i]) { - return false; - } - } - } - checked[key] = true; - } - } - for (key in two_map) { - if (hasOwn.call(two_map, key)) { - if (!checked[key]) { - // two contains a parameter not present in one - return false; - } - } - } - return true; - }; - // state - p.duplicateQueryParameters = function(v) { - this._parts.duplicateQueryParameters = !! v; - return this; - }; - return URI; -})); \ No newline at end of file diff --git a/doc/scripts/bootstrap-dropdown.js b/doc/scripts/bootstrap-dropdown.js deleted file mode 100644 index d04da5d..0000000 --- a/doc/scripts/bootstrap-dropdown.js +++ /dev/null @@ -1,169 +0,0 @@ -/* ============================================================ - * bootstrap-dropdown.js v2.3.2 - * http://getbootstrap.com/2.3.2/javascript.html#dropdowns - * ============================================================ - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* DROPDOWN CLASS DEFINITION - * ========================= */ - - var toggle = '[data-toggle=dropdown]' - , Dropdown = function (element) { - var $el = $(element).on('click.dropdown.data-api', this.toggle) - $('html').on('click.dropdown.data-api', function () { - $el.parent().removeClass('open') - }) - } - - Dropdown.prototype = { - - constructor: Dropdown - - , toggle: function (e) { - var $this = $(this) - , $parent - , isActive - - if ($this.is('.disabled, :disabled')) return - - $parent = getParent($this) - - isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement) { - // if mobile we we use a backdrop because click events don't delegate - $('