Created
May 6, 2013 18:35
-
-
Save deckarep/5527100 to your computer and use it in GitHub Desktop.
PIXI rotation about the x-axis working
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PIXI.DisplayObject.prototype.updateTransform = function() | |
{ | |
// TODO OPTIMIZE THIS!! with dirty | |
if(this.rotation != this.rotationCache) | |
{ | |
this.rotationCache = this.rotation; | |
this._sr = Math.sin(this.rotation); | |
this._cr = Math.cos(this.rotation); | |
} | |
var localTransform = this.localTransform; | |
var parentTransform = this.parent.worldTransform; | |
var worldTransform = this.worldTransform; | |
//console.log(localTransform) | |
//z-axis or 2D transformation | |
/* | |
localTransform[0] = this._cr; | |
localTransform[1] = this._sr; | |
localTransform[3] = -this._sr; | |
localTransform[4] = this._cr; | |
*/ | |
//x - axis | |
localTransform[4] = this._cr; | |
localTransform[5] = -this._sr + this.position.y; | |
localTransform[7] = this._sr; | |
localTransform[8] = this._cr; | |
///AAARR GETTER SETTTER! | |
localTransform[2] = this.position.x; | |
//localTransform[5] = this.position.y; | |
// Cache the matrix values (makes for huge speed increases!) | |
var a00 = localTransform[0], a01 = localTransform[1], a02 = localTransform[2], | |
a10 = localTransform[3], a11 = localTransform[4], a12 = localTransform[5], | |
b00 = parentTransform[0], b01 = parentTransform[1], b02 = parentTransform[2], | |
b10 = parentTransform[3], b11 = parentTransform[4], b12 = parentTransform[5]; | |
worldTransform[0] = b00 * a00 + b01 * a10; | |
worldTransform[1] = b00 * a01 + b01 * a11; | |
worldTransform[2] = b00 * a02 + b01 * a12 + b02; | |
worldTransform[3] = b10 * a00 + b11 * a10; | |
worldTransform[4] = b10 * a01 + b11 * a11; | |
worldTransform[5] = b10 * a02 + b11 * a12 + b12; | |
// because we are using affine transformation, we can optimise the matrix concatenation process.. wooo! | |
// mat3.multiply(this.localTransform, this.parent.worldTransform, this.worldTransform); | |
this.worldAlpha = this.alpha * this.parent.worldAlpha; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment