var MATH_CONST = require('../../math/const'); var WrapAngle = require('../../math/angle/Wrap'); var WrapAngleDegrees = require('../../math/angle/WrapDegrees'); var _FLAG = 4; var Transform = { _scaleX: 1, _scaleY: 1, _rotation: 0, _z: 0, x: 0, y: 0, z: { get: function (){ return this._z; } , set: function (value){ this.state.sys.sortChildrenFlag = true ; this._z = value; } } , scaleX: { get: function (){ return this._scaleX; } , set: function (value){ this._scaleX = value; if (this._scaleX === 0) { this.renderFlags &= ~_FLAG; } else { this.renderFlags |= _FLAG; } } } , scaleY: { get: function (){ return this._scaleY; } , set: function (value){ this._scaleY = value; if (this._scaleY === 0) { this.renderFlags &= ~_FLAG; } else { this.renderFlags |= _FLAG; } } } , angle: { get: function (){ return WrapAngleDegrees(this._rotation * MATH_CONST.RAD_TO_DEG); } , set: function (value){ this.rotation = WrapAngleDegrees(value) * MATH_CONST.DEG_TO_RAD; } } , rotation: { get: function (){ return this._rotation; } , set: function (value){ this._rotation = WrapAngle(value); } } , setPosition: function (x, y){ if (x === undefined) { x = 0; } if (y === undefined) { y = x; } this.x = x; this.y = y; return this; } , setRotation: function (radians){ if (radians === undefined) { radians = 0; } this.rotation = radians; return this; } , setScale: function (x, y){ if (x === undefined) { x = 1; } if (y === undefined) { y = x; } this.scaleX = x; this.scaleY = y; return this; } , setZ: function (value){ if (value === undefined) { value = 0; } this.z = value; return this; } } ; module.exports = Transform;